Export HTML Table to Open Formats (XML, CSV)
About
Export HTML Table to Open Formats is a collection of classes written in PHP (5.x) and JavaScript which allows to export of HTML tables into open formats such as XML or CSV files without any database. The data are taken directly from the HTML table cell and then converted to these formats. Key features are as follows:
  • direct export HTML tables to XML and CSV formats,
  • no need for a database connection,
  • supports large tables (multiple requests - AJAX),
  • supports rowspan and colspan tags,
  • easy to configure and using.
Note that this solution does not support nested tables.
Simple example
<html>

	<head>
		<-- [1] Add javascript library -->
		<script type="text/javascript" src="../script/jquery.js"></script>
		<script type="text/javascript" src="../script/jquery.callback.js"></script>
		<script type="text/javascript" src="../script/ExportHTMLTable.js"></script>		
	</head>
	
	<body>
		
		<-- [2] set the table identifier to be converted -->
		<table cellspacing="0" cellpadding="0" id="table_1">
		
			<tr>
				<td>11</td>
				<td>22</td>
				<td>33</td>
			</tr>
			
			<tr>
				<td>44</td>
				<td>55</td>
				<td>66</td>
			</tr>			

		</table>
	
		<-- [3] create object -->
		<script type="text/javascript">
			var exportTable1=new ExportHTMLTable('table_1');
		</script>
		
		<-- [4] execute functions -->
		<div>
			<input type="button" onclick="exportTable1.exportToCSV()" value="Export to CSV"/>
			<input type="button" onclick="exportTable1.exportToXML()" value="Export to XML"/>
		</div>
		
	</body>
	
</html>						
						
Result:

11 22 33
44 55 66
Folders structure
Folders and files structure:
  • /class
    • ExportHTMLTable.php - main PHP class,
    • ExportHTMLTableToCSV.php - class which allows export table do CSV,
    • ExportHTMLTableToXML.php - class which allows export table do XML.
  • /script
    • jquery.js - JQuery library,
    • jquery.callback.js - JQuery callback plugin,
    • ExportHTMLTable.js - main JS class.
  • export.php - AJAX drivers (PHP script processes requests).
Requirements
Export HTML Table to Open Formats requires enabled PHP modules as follow:
JS classes and functions
The most important class which gets the data and generates requests to the server is ExportHTMLTable. This class takes the ID table (via constructor), which must be exported to the selected format.
Key class fields are shown in the table below:
Field Default value Description
formId 'exportForm' name of auto-generated form which contains the exported data
tableId - identifier table which should be exported
blockSize 1024 size of sent data (fields) during the single request
configuration {url:'../export.php',dataType:'json'} an array contains the URL address of the script that processes the request and the type of returned data
The most important function in this class are shown in the table below:
Function name Description
exportToCSV() function exports data into a CSV format
exportToXML() function exports data into a XML format
PHP classes and functions
ExportHTMLTable
The main class that handles incoming requests, creates the session variables and collects data.
The main functions of class:
Function name Description
setData() function set variables from the request
getData() function return an array contains data from HTML table
isCSV() function is returned true if the selected format is CSV
isXML() function is returned true if the selected format is XML
isLastRequest() function is returned true if this is last request
isFirstRequest() function is returned true if this is first request
ExportHTMLTableToCSV
Class exports data to CSV format.
function __construct
($data, $headers=null, $separator=null, $inputEncoding='UTF-8', $outputEncoding='UTF-16')
Parameter Default value Description
data - array contains data from HTML table
headres null array conatains headers
separator chr(9) separator for CSV file
inputEncoding UTF-8 input encoding
outputEncoding UTF-16 encoding CSV document
The most important function in this class are shown in the table below:
Function name Description
download($filename=null) function creates a file named $filename
ExportHTMLTableToXML
Class exports data to XML format.
function __construct
($data, $rootName='table',$rowName='row',$columnName=null,$inputEncoding='UTF-8',$outputEncoding='UTF-8')
Parameter Default value Description
data - array contains data from HTML table
rootName table root name of the XML document
columnName null array conatains headers (name of cells)
inputEncoding UTF-8 input encoding
outputEncoding UTF-8 encoding XML document
The most important function in this class are shown in the table below:
Function name Description
download($filename=null) function creates a file named $filename
Examples
1. Export table with multiple request (10 column x 500 rows):

Column 1 Column 2 Column 3 Column 4 Column 5 Column 6 Column 7 Column 8 Column 9 Column 10
3817600868446984794909481256889078462
211556467154214536189475652851154029234
9593491640326309847367851213904195935673
832383118363110615584483207747069273300
172888933966984369558187487176845194782
708383242100356867329221253483871602432
3565633228512493696448941932519950722904
45255793575736754737336292394492949629
1485772841198042662825666572818226397197
6374433505362572294622960073433006936
467171158175925088402356438247621826535
83863023710314401211270163190524499519
30318513021566357818036496152854438609
669152905302799234154793905469069875484
8894596174713266164431586397797396447
42617836452779031339649539886534636954
239043133627597374585282685860042765363
5629117156188037779749156648400978359
219767673380783171001629193022250133938
5589915379261985722570574162913249196381
7670973969232708694842670616791814998
526580627801436238678744998811581913408
420787623601448241170055003186186013680
139628287469441550638410702198985957258
3090845098106804343738677100481189231849
180720164545264815161794412786921316634
7159878045432438247178737629225124829572
52172305666618810525994313423950985705
455525039293804865617650378981950504351
41306673946593825879198787419237433869
65712792186132524843970985872869876372
26088959430613555743214668596629592281
4688694457266437811604085431438245106
16612775053512833730131897698557764
510713251980121056889149784614316387028
5786924761666851801272352457273347665
319444977643438261467214763644203925980
5672908742082744830355455582766692724
5828432836878549467206543628211380598
699146699182427567827132892180329673468
6568223653704731957874216096502993458071
7093623560566633947811286475452231756369
359394266996083874824364669831936579567
9418117577582405345713368608135196327806
60774033576598544574094246015692028718
93851441001279498621755947651354436236
475057123309569776561253225574387129977
3985505651615273104490482447599230484403
70335561661905789001236773496948789529
8299503261493953224347272767419054983651
40875937775759200213636108273058197679
9625850986423629484728956248476824524306
8264513163194055910184389521307237734909
6445402864067286769176135374679387551843
6497407347981489849960932314608461159
2724791818919700473439430637776002021
361618125149170126888222910753559094125
931670136914630828203829925942697508049
740520691302933498974481408571888283004
1520825886899305188553825742258580916767
7187556583199270356523741889356076698761
9811530964641937576424383266046143866
3323878841219133879825521197409238229532
9588772879358679630211561324062863298
20504776128500177939018531840984758763
53941212465080439121763834794365384664
8459791788604462316523102633946948561599
940339120926322421079581512487519125686
414999069843883826892034341952217839157
197255394261387566415832365972919482852
84666080628315466284152159217742906529
36424611500655915287781137292761185982
3095408829953411185928541829805645614829
6758590130551016623959245707698397992907
704622719021236153763566699436995426541
5081575054869963590751824087640499036964
178897054641700199952641863328469973400
1193251256848019813056104193791845763472
8203502096108555601589842165579532153178
7548493680805659504760910117603594170
9233866867054597260235424284545349489827
1170120487029646939295955583810340553027
3076766381727999271666977208172322791417
902154590411143777388178722671372773
100097812718127132718889585586188753671
80469279451264875896638419218843042697
1849917765699180758592861979856850282673
696019291443388255518827650394637172198
982242547185940426951379217662972488808
90251039943863565409903542713716311901
6976720817624198521312672672195910663451
150026972680190500498319307159822862285
444310537787875457040562999896271034515
9226470463242217194944424445879705176
537218415547489244763934451733439258643
6527917544436790967968959962612689499246
6542254141317726097631912926146422632
171999413163169879156929293868451314341
34988341289512444653994162668776468532
372939753570893931033565191779271068825
633576235982580811625539353902663455037
8032324284549926356830845950964251019768
7794165944889909887537277956795798058591
745385758681786184220751238660489498462
61018014778628222778193679314252221617
755217838370790693568997409516047556773
33341288238992766021934813986884575639
609968655271852296435956634538570525528
5575821757823385863889972662144151055802
95973955447761347093928387609574206837
879723328173039139280875270534694866870
7069449868846371225495558773543444558192
4093953856151747150976227681599764379997
6911808379991074162060108555294961033113
424794485767520983984135793110974552162
144254014831777424235459986833729671953
585581614798988228917754808490274268829
5797219985396823898740922992922019235038
1707887269576470682854954730994713735594
799653322855139152980314219170032297265
6721875296961264336550961800939124846564
7856834885981038278750941584309124529133
401929891167157785942551338279390131279
3099099079942551133283602093914176401
19918157525711352115097902807190599749
388343748498216289740216928993494431085
74579121478920984215852334878477538906
116034029899172628334088486646482407652
888585751738723734064068347288874932746
5845946418658254986128729690480098361779
9013598738342043658237389252204545702869
9352143566654550482632147537232128948864
100352337732506260240339231461380159141
34582763152101983484706022634744602754
5077957643024117566242592962931776395487
7521125822296297239743673807183792184965
7617587463182343153739859101096608220
18975285656550957508267198978954364266
18543319423954926727590476841929387710
160122676447618823431151988803015425397
497087392976848052085935883014413383608
964953471552462040284176992772259425717
998178902869953159327162973648774853571
196335748598912405825668678473644447
319748866785442515116404914195883593964
90648902648954913033111699341549555548
221620455687730210054073839256704787109
500285889452297770810072799154422381050
129983352048512587051809913135708281426
9822156767432724422115112372221620049147
2265606896453938444014757414567682209908
4111860337141536964960323347917998716900
9717380663878351819814702673134940812476
15266376511532059559950515715404187824
36683266693039567085883212861393514015
995173630223442952094941193464283201094
847568433697399628195927838886176469473
7026552781787603811876242470355834371357
386730514656437674889778389533089858091
377648114131299662006206358053725969778
280415754408851346748696847576019807751
120235747913167934602612144916042773725
138258986555710265566629330907064817164
7412183741026651855814992098774057371671
502959328364333386314526665342822399476
970859866307698729215245826381397718177
2558181865446843467633662142331644937
161970614228815462389748175739222225502
6343443259717690347376468225620343581380
150838965084842010784024704692023204467
196746250211910181517916990659922083693
629387021445768445277506194754173548121
6667601327902435707356145337105841223398
402967911721243794351874170121431809551
77055071188935179424048055642821295497
89347101788311931374996936601476815998
626856511268893552934869896446026262353
6232521129707846756959315784666296046632
7013704049839412156510235413427856744620
80892783375612569480275418849694292873
8236819525338751447411273690757225354227
2316378733687299467956702596692277375657
5200872564286845881387958182406721301060
8435720261684303774626367838191132021766
9633662478026457641641919055789498601763
6268763266166313577682488482291067694726
36784561596346491516254272769411833536
967947261281720352089655699881384223756
29154524733411726713686793765526960446
868856647633894577787602217840981934112
361121791647679596388611714607645731324
39582963842350472078554554051664978
167150945280903184307221825974034472079
9960182238417966195088482035417782437685
97807126465359159359867634958247238966
462640158140228763835224876655088924
810061483472596889452314690121769317346
704597739543383867918883047523714738485
8750268836368569770234939269168392601057
78562151804455423063772954877419664807
7142703166261488204567444521169730139565
8616950928995620148593249381416131892173
8946370764346294515225313337975183925
2606543066799141149512797498158782319951
682575498499952522715302833501410028708
47999614176292516521501234414724987402
793248973829237161209984853890899057994
36883165949883142364252320334992881759
1227042471136017668056692869455667153
46503424761444645778817786561270799713
8959527672659781709550168109431270249132
247714626473816674544804484653694995384
2898794715721847287635876285745132913562
1460473929032028206083203836387026401745
616529836137986561943789751102681748398
443574402524126560287037935614653073288
608958478986872382816694600729272155746
64867039403939882684652183839341974473
81301117907745477533070778495783445362
37337517778163531347821211947657032049
7996452165464879984553232768662662509171
521743805133486120232108653142591505595
17802532653811908994013419404623899024
3322855442776794956893143958138268137064
9890761784069903095401679629694312022
7775742724169823450897772693823013831252
5151892224264896872958658576911052077078
52977655013922734005952218271012181119
2018442492147990235739330911476647543
3419996453243868373635466183282490641245
192572040843101239729966324799029631407
3586430253322684477220770949457487615
56319837651429444785809305661832829612
7219511120221187719714537066672768651863
81018686546595980055423980888104315273
2859481553027092104049477076867886426
6255684842055134721860406963469836654992
18864906487982771953490196783579255914
76076530706365837603791429770285768489
397474309486628468817362790923377894409
8296700389191652173994778462245840132755
378737481749947630475183622100230453388
3077346582765074619855985747609089806354
484252752842756392247662534567446462491
472227228742284055404526257368536466178
866324616791123455608973293870161754274
8392458195182441602578907307476063963042
757351317181176680381608246715998905992
9189258191559698298479038428301470315839
26557601664312676604633136082580602054
979665574831893603789398639859809779
652711029162005462328015143409572545432
5331688486838184227682106637508025995584
74929288208107624808304376075150239174
179472738191135341685459281354948384209
860338413565627181591442643939621923930
799569117232982219388507715414920698189
3040627226286303418975532931639266957629
2670659950327418691923416000945611869053
59771546800950466628741625534020834
75738616579510489833742232327042038683
842332434556164963215604357160752037
240153674028512175268785924537571973885
1285837175261144312018339297197381646540
875783697563079754542712059771626821451
724820125915803923612851103708477137012
7699925828132210675138356997431578395713
6815127894129802252167012335898280984813
819032307401690177655971702950139194728
991023001714364768254608350943043234895
7334336768419307259370797782553367024255
5560326865822033894453718122012943887
161577537910353539069257559628248315352
207741956939737862516292510207565727267
7245729470514813851175767952177141336
7286862466142356901976938271991986182188
3740316578006501546284462682541375243847
9568891278333767373151332562870122614211
1255333529010874765203844143050999962
84092094177797912243234302952419162415
5633686385784800374970519240457241723878
3883220352553172520079272926405125153
670257228399914443877345642425265067725
851519807381650552562313788708291754304
7419544659515942373242504462648741436329
4413211959992946527568954885262826695775
184126429053233610239744700425837171214
406586416078506948367925624806950526067
7640619889114238197852564355796064554098
687733320625186253721615962862818682222
61275849932477375634577232238165569944
33866235308281496128995859147916621
850710066685676147184476138539988016465
7755390830603791522647486519159186558517
933880928365722222148197942718043855474
3612338638407810694750592598282648062177
695741979932191626177885637303689384227
4262335695848024663896127551584871109696
144327499276252434276129976425832452776
238662476744464110264228666491292542422
707482187019505349524796410409513833712
3249595475154214271573972039082705037
8619690222762103490984159094423070598926
81062189918266908860395915621772509246
190144888157876119423264712128622597655
8600361823337711203744054461203623227726
230085748865642178880971091647319887968
53386117194438059851667692345197562376
1512841590329123557470818593897666771698
88507323346624178206694037673204197952
724576269489269456340616385753730571639
876676847268629910368964923628024256888
825947712691963111795500996613829415997
93858818788799579202452289373357008491
563033425503497778814261799532189435630
619426937782052550627188268119084716028
755758218784186194895713662600671438655
836567518349295159622597518830374468822
721138847094342417272445746092672306835
1938403566174636255741485592150539760
82519959582049558868256078773705173268
11757588088884306078649279658077131554
402333997951118955621789411100030658377
198965617118840523219549197789176306184
28531209513364752440595064276348293124
3881656635102732724493014534682657613575
140942354632455237436121829736120118708
198391146363399175727551784471233976712
96036739789897125591380286957481757263
8959421769692671530484726052641277591426
4523542973931963841555264781631697572778
3727388587689229902416428431855842588
3364186981386615571234044758262750981
1210539788167315257145536622397128258074
8296535279301663599693762349687874422033
395123836782280186922556727824846695905
7485867946453345688888689548701191513095
176140303046364726199823106461223786002
614707363192717337992339402598137009215
5878342699925263875276749630716843414397
36569394655874392825864175967655601492
6531639387969561359165339199414359566650
988798893353558769388471588668526584914
19337395006661279798467474887542691998
173827063460891657657593331680884922243
265518365217777930236955427392275318981
50147895708676834651314153146214515705
6468709493288939610168466012737511412541
7077220942154432835923424688235064382298
7784460445123915538923617139702350344187
4138475279819578675045909744278318315
527432466948357915882851411133455
740239505213818211378874520905546901143
26339948603783183198910378411651587787
1534810197991504400823256289785339076888
9605322564458104849337568157775267978025
1023284182325006993196296209875462413910
470421002912553313144141404784968121926
19261785263580428567935574064653701022
7150880423394168819440148896484770267473
19983749635966680732663160252922518
2876288213605505912796606018835327826930
998239267031934823782365530637564391487
6062126331207547185552313757713057668535
86428832931270213827775205970150558538
97961672115385442935261285923998774390
90744225687028411489574672188966899
456876777602837566305781676454711672787
76533437298188463778500523170296585537
711527123581458414869523933876802239836
412722862594600936870547894139494039317
768695312145836899257472037876616505092
6863992390188633392812097580516738071218
640125838015868994503227845270074832564
5738541951521040559588091400282038433419
8437744388087329834811341676512115602
990993263169429639141639948364857796
747843645185348090776864539675311792673
614234902365498427924523780384991361763
7814663661022067346898463738690727434503
3260423517512720314717332601542694551398
102731522212115309522219965279694073174
300790678867372679214901786975585581454
237241884938208571863625771350493954827
752245941797710332152057956204547392585
915492719913248364701459824198126691607
103831272019867847789233398202233457318
5071453023567090683222382689894261813621
5478205669581521321186451408440680798
37173055600725542958566686426982804092
7304432241939935745716668165324416417050
8222117997841693221389158468695328927964
6470820416177800904326355322342440836201
816282212417145275089771818839725462792
7691452467424564100658531063743617021249
605343319200272596247946930053371835
4382259898213800156174351265858480882476
5298566646731087933936422700419464373040
1629681582439672524095678977321235354028
1467195874409841069189345850470929205
471843388335105894291438724396311429479
960310882178489537853729101984188098360
655689718402344771316419941932380578561
4444460234301994853390114502945486454711
322838216205307533254441620496081388194
2684283061963876416698542978424221307786
1664549067069133660544495723841087938925
1948750478272499436196964871128811834283
92275336798504386655162385893031429070
1566807781213796957118873751716547395097
2283746470152594803524056612497935838136
851711041671516538642894862870326522258
676356753435319915791405918821117356903
849125682415395852422198302755267367
273580919054559553467519079785049396240
7645243578175890163163996773515989283811
22648801446217991637537030733949503947
97403677743361432657189493152850046915
739399837171825797617944005170170914932
9204852345153046215915653250961942579923
3341726107868814539222752453978629363
51818343467755168492237645810885697
135869534395376090087597266406856681446
95527028428751240718556990594328689509
778398117431723863324429650356627626938
4155939601117072133828848968052593814
32611459388856661151219560581815581983
61292519618190627613227344917733247103
856325822142108216182905688556895338366
8083506321709780502461217548639076854656
786283537159229327704825705566594783835
77198552296630742329703707459022624605
63179330133748945498125188239142461868
6456985723197197507165562241319673746
44644801039221089799130693319637490191
79641301416952892752764159910344694351
2562538733743698943475241941512416174
9226253762363623441672416438904344248272
219481630162882128469542227598891007835
32219229912343825615269863625783826836
756698784595402393459183298222450008979
461524583321219432109577915868816701
2837452316422799096174674789885945522
2428134276768173100271058305640672956101
3064269226998334687316536945465030541985
61487269344193237566306385405875598649
3987363563593499644313731444874489947523
3510763194221340615695795324680251614677
371364786490925176647573035426789623555
8193385460405899950725248181061263977
3713336956349075872097678202663676783089
2496855034682078610224059937947646636302
7667195732791843871537258981854596569
2597181157438552510082371257797985757729
82932726362608594821874321930339106707
213983320185444466889394261523381212940
37393428115459128094427020384896590164
20541083696138422344084724399631657636
945978157610501541661152177953778689797
5578186931119451883648692022144859463134
1342616442253362559635073854824848885982
1586357782781376725660878745133359134572
391533784667987469866214590453941297407
843485148065671149051646026271638688364
54499596424447188624662583327621081239
7263556897221329252688989295433824099590
947318092842766430759916708787678479803
1991481839264068248619268430408693741542
594726161051191411566516296851557408337
9040869782557511687699287823973382059514
4870373938074703516743683895165493193091
3097440129717056573451803924208241253130
134330124246984430519957752313537788770
831397787943462081225461238390354274645
77261073131794777665519125848529324552
153362628445599225132988801465385218112
910402947006464294096565746861135252286
639776344338982864768123900221346244363
6985251666097927603975831670159251065018
754742323847582126056135410470032789735
333733277613328118249138144968254014
3502961126696953546581594408101761531444
291144583112239021856423903682625541439
9139988130507203644231092680416723223830
618544765910251819521243565207728667537
1572216163368805577387937496383386082734
123557878557518173277124720059276098686
234657486787548053099369582361144015907
918967649520801678249880926337449394059
2748554043385987518997137904271293504802
346836906241303179883378228991911792792
87627161668195270955412796752025389563
2108426676737866504423341396926586546979
6107876991312162434633668108288443997643
3826244877602083109333985075857153134233
99403737164610354361457629342277976795
5978832410623998113078187073246282033
6928487919127119846231654136159525458150
553938578699412177574359771779885218416
3488397975603849776062505333847863386454
2. Export table with rowspan and colspan attributes:

Column 1 Column 2 Column 3
a c
d e f
g
Support
If you have any questions, please contact me: [email protected]