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
482775366006214438688998603941755584353
3293440042219789745143451743636492037287
6949993322292817620998119733351612877223
7434206550228091939767344706554245303913
945477652399970146084215272540252944939
538495975889142387817331984429916306450
253813682254919127176248117475590326315
20368675103860401360786921275912909125
74976457955752132208525781916267479114
7887395558526445900566055844282856133730
39353839296031328048814920653893949187
348143085229344348566931969619325356872
5162274811964567530166919186584951035349
18827923658909092341262515947045846265
674080092761811400414466185748256081508
4320992039473977675882391636633129916388
2490219692138927942012097047658413201347
324620305659438694126783001803747157800
192891298265657809835732506120792285604
5631885986754018235629450159182661944
159943359808886983392649621628133911
9872139699373699683370928306398956249
758827369218296369475456395629296678475
711254668951007160578237080694091711805
869631794131326430503285789944791493218
723156836897156589696231668102635108182
4290415437498636768768959002750448073821
9394756197924193855624438387854750561237
685812042165217333381883819733513496333
216617172851927780185281385644325056
165236171476900195180806437393063514282
8307896847479382267882957635259471837
74504382244499687444254130287251338691
180664865070954268305393656146514004740
953256318996749415801447257546727265522
435663057452125950662709276623267313158
54485226886342207572528104469189035711
5158775680513676345216657476120086241878
2013653654469847378939288243203073191229
5868715591485522877385449636729019627405
5447593591581007639018984100321161191331
6865294978947636446496355245699396404591
75689798655492084197865526346079568844
94077929902870486464569168859577682655
6654689610155645149817894942149056711791
7288628391446122677329874834656376144640
13022134092700310923562123041337801345
591133235348640904768054141311262486105
5780713565578270554636087084291314453096
80883398133642336067809063916981056098
4297878361892691836335612724103161218496
919532545819465593962641899178471568
455988992587690330182634411042453214381
659360532922729319871536566056542694107
17926703861610403047166677436862592873
205426706998483164001546857652090791530
2302585359144456287063613141411867968803
5824458221751032952660102917686639735542
473686701363132579598562706805467572857
407995028488994484252912212593623633907
28013041657592298423145166090454375233
5857156373354674732575241707293222792114
5702958096346936613219596488323110638907
211772362763807171535004371620776888422
916977257448772702412831871322999504959
2310866747875519261720879176769299784
730918112026178981382604225221797787847
4380866088277106653862992721313978671387
2547644932205062732953526821197662344727
7083279797719232417994438405788954445633
71683353849177373395846609024568426269
513160652448574467902290896373929362031
568583608089996440994794478533857957716
66591192975210471436785714455103141548
838437152869313061625218376827352342951
7892450340333468959174785945228384665238
1760724446274877556489737444626488854426
17315645241659121312208301670256891233
9696935834601249962060482218385121981821
92597276353783628321366120416714065871
37778905433692939572288862973041784459
921263691104204247436408299587062527478
9400429120605175234783815216477159409757
348867371387868413223166358346516389735
39893363499741518878972173296052802799
495317081006907344128799859140011968282
2343729498964938581653626501742172689596
9153299076084131504760087783805227059636
992627899668161436849482803940460512515
8971351572029043505670796595790163249901
475325058617904961229097144881228247987
111354714999181031645381106770831026706
221646709569901397748409819644964089784
476377391369772989845492091327956176108
9836955177364901886477119684383724565681
700559256521604667282534815125790794590
91718741291391702662257254754467994384
44513427189785947386522168651692339844
5302862774744920810218888732204711862820
947032096145780661838816413767154851759
201868102193361135170942881879002776
6576731749884383415611426675124810377853
63104067962385339179110720462857674759
197657523939316279193579378655910137354
972363363269700936028005396859188703
55603132945653605841309389698227234084
874464751909366838399187740456974678204
33553109136888113415961262190925975723
7487526220346217788851825578907896699972
7667319935403295484820853228079731252
5169828099795846100174358552780152004627
8200390978129337945520167699672876074262
9867791169546925233925116342829433988
4125917374582615555063225180344442466923
6672135937055163894207849219855783247
561181549890602367758604547652274263936
858323707131947296456507804651108091328
8489652581873446948733097752469881969227
1081160763865558487444266581428103029
77175241784834205595612818457884589325
1943618297697635158386157455311138048874
557855472085110666591568154886995595105
598173742116403036111399514787597744317
1301740328127334651879523635389897648532
9721419972716283434194466895582227845609
59213423738186302052709648380965247830
3459765210892268484672695097851738714927
523469124160637947836636949220920666049
764972171138634891356962439471457851289
524223981110294985674193492702353054525
115432372331517170949747806959014763899
976976908723712345246097144037418380
572338289148504696861285455890767754365
7447265632561379388940691265470584763051
259322766212406372121092317404121506807
7523183741391377148135607947801722649643
46236164256971184946342364397033202383
8070652347555352633311778104226645409486
2251897161479910531943537075403139882864
373251287282753754085191926502183132273
5172117115726505517494906721685973999648
934690598626511848237159273648498079797
459437728505173788496874222299285248851
8720742684202960446668834987198876901702
74743199777476117536376250358268756952
76793095908719023732656825967869796454
9279796268259940845261481555982735075
25642957414693289971588486314788776122
22313664626269344624620726426461110513
8811404644227017208417249393135059609755
150935549556241128103955357476102152074
136940785113117871031030629958336453101
1192508220197637664573179385235778856537
728256546953410110166177946296920312298
6443227583795304100798321444155595183
5754700537009809143594179843388666019112
5651836734882831502415938929058345600
889534773090667830568502231360871755274
51308618012474690978423874902657658975
71366207752696552006631133889511763254
4959119753898578989442617676608782441126
171737225439935532835915310679166889641
8749200395533586417189598892739858979907
607694104305262267016377740738666626535
57754320799967302498881612163337269580
5226233484245635849610160234845951398
5890400279793676588114021939714482852645
5241698232969272439356605866244463398529
6809740438509733954598706122376478587826
94529645431197201439373134796757056626
334462721926738395447523549097439825656
2412346311593143888669275603570353103513
48787341247846233396935834591126382962
9019694751417794330113479876630033187710
778565534709407793204267005857025763643
203421206697284882498822899181514454157
944459042926397752999482942718524905896
7126691990418106302750819903805516122800
712225225474830388224626076774824987340
941967420232801883228073288360056667942
783464301852963399244173288388064322068
60985812798334629430481264876642597735
367563992133972612765654667914426362331
6780469123043661100987994516772298945436
76777766432614218349722672912486876470
7329899946293076417837529829231680424717
996168042492051063697416117265785316
51448172729337744081393438749266841370
7426652743496375308229828497778646535082
6893738695612253148236917354645168221
570518799410357573201714864009641003
373855531093968890184589554894532638352
2939168285959343221073862120308884214265
9322757665219313539864696713776727601487
117129791181240526759474217911524151818
613312966909891011646164612107371347656
68927437518337966536514936095809363855
86025809992058368863557622047043363339
841969129842939674245682730188393833878
783494423509499540328793453504974394827
879278794330572483414498433061526369291
4365874222049099976787473723911720791770
2802805710732278499895652803112193332422
959969579874973801522051239150944389193
40629644841930770554855271933580897216
78033381868769635307782254559448698380
23277222704714932749824170999610478558
544162923557975119721700184465152311779
5114985080229391568865384275938141682763
931729104731790693950508465544881043434
17376366578755406399594179849310657828
803550253828216248593007747583950928863
51244095685852373990557287203896279778
5059173037837057568238396620197235623424
995944289487613699904870048706274761
6968157157534368816055628836752979221741
4049163841354588667895969288518082421931
5215227232669014694625833268864710311479
8273706385442395253685129381605031524984
87603709589397392408541264377041124256
1705277970204412873119977330328812967618
3930301611790080014398694856363481730
501295118857184227593615352936168081727
4773945157093666334916767928962100965
597599176217646472805932590942374800
8570967062436694107164416460127956125546
77272049482675417243784103152142038416
6462204042758726441364636208216874161912
3667189223484408953991099818417933816159
5996711029333686454453637983845216265581
6291994965096952231695288616689028081991
409740922367205575901847114537911223044
8611937253609426703873723434283743796824
99994084424982017925502477288176395175
84819000664162948529311233321320435952
306612057460985395361169908347373081069
6366719740847179844851670520964805381
872678871349287863471127217203753228413
25175353308386173485733437256652464823
818736061915202391835059014693084876145
796433193707717545104382365467075019537
210022813060735121424992986279177629223
661335706294249574542787447088596486807
6715353431754478209163238666883237879359
5527427160293058598911457995651354452692
3457844631448571367442181685670298814703
342342645116307329743156984314561615388
936634225625036913926458302448296153194
5989328691587680111295767889582566906981
16843202640203333471508975322015192166
631934673749360909297498013327094319754
832173958214512592612735106839044824
22396743431051320418099877850154351232
8175530023026128264426177468803210416857
3630775691206133448466312808347019824598
55205607793655870122300961621124826659
8701341742443512876060707494372129029479
8034651394539551610418003893620332947483
632134610251501342632249560993750696156
26268624128753366231255767670422459917
687977697421808229783333648723686194723
305878732340880151368696707825603217256
8673652950092600280951395351950219642139
803876031745879363774092472557444574013
4367844381525250948627966480344513391444
655571755935648673159281307553691133809
1528638764943173959341325030325810899163
266860377795134233953272621199432203266
7608783379109287220253974021537538674776
9869835386947288625881387803184838652774
15843643584264193411571896286808482
566287238993401807140949869701292646763
32812058177799618528862869685312099159
823013126319363467099469839142493932
2528228397632642574649815877531311769328
26182102824346081353391829287775047777
293337419370402188551951003332712985449
58926662112692057644917449985786561991
8632200521104945995563155735441933367427
7055160188978688244749393299809471309359
67858133901997455263417120683551069489
23262737667400756421726329445045321452
38769881263314616459491911659485114608
4583858195908540066325693925340512
5100452928823082211842311348420429479565
9856374376097981555968913512742750168844
2549265386989633629314639040217648698833
15373167357086983554981112641577500
8000625798782549963415143550264191027013
254581513873297831748205483591060561626
7575282736158488879059944783497138552172
63915297320883112868389683176981299959
62817329028980203066891482370642943369
922586965693205357881130230198044914404
1463260964643410665628958936531016755271
86157866954529267206475924289405969949
757919452356701876222269264631121476
1418155742573407783650508958880346992316
7381402018438654691318086733571722221775
3428093486550360331143629110973997793
746240695672417682922804605203692037433
773126376015524972983781167513655075077
214455853432540964392657783248191414210
52510743662923525122681947974768877370
3142378674621871976968317262740045592369
9292408840938054244783960845566463651
9786472170112551442235851376349498207
736376441931375353145861623589349880
164867992504569968022381617242143614492
888859203982193720532142515011938984178
9172241381958516507237744036150524891915
3682603756344076399067949872162061444060
642353915095346585710964697219374048510
1204790799456025296678627576164885913026
9728583918312892911283979643421996258
23794604716507664489391780140144722863
8066218867664858266126678710196536788180
61461489060347528158700303987775351297
7640232180064434810975112244715723129687
298286422398619842447166408811004926403
7181662138198239713623953507774423248767
549929157519498261012292119945080855666
1977240491448202106832574612345683034833
7037508397517621835141650536583026877
3276259687827862419755398903977833015
1309957197163962373011943732521249889446
33403151551849675013724778692049611438
670511163700310482858909820386228613389
242666985167533568567766677169926111935
5859508783078357913238342166560385854928
54296087554062703630401070881196977932
9154820950308320681763941509758336572875
8468482954681827110934597619544180304287
536177666887162402422706287884916467805
74979868631617189665123519964106954377
828263526416134958099419251985845627729
33328634422420964424155492669350626704
5789202062711761682213473761671778545618
1341347681072691505657385311463183796837
692027651049447159135329153328154835550
42324484512688945010259284575416191004
237832207435650660283247175971690726175
877594085357894223798724771807891684147
5864504391452015166751498431290371488973
982976881225647442799476508421567413405
5182512288572906389539199520676799471089
3937932281837652565254023383365290945840
3633425578634226996486344248406026777734
215475234687819654167343930701875744824
287252386693461632058712469757227477807
1162597448198118987156807225204578055865
473868217266109581494623129397139361277
747489139960383571794789065241996011056
4250638325305804615618977898202221401263
69299031008933631263638296411234172943
26839754798395263319153792906996392601
881802271998953514412008030684136152724
685861218503044427095483935417016616708
26706642347769674733773544567195634701
147300318469058522121414410114657948846
44878886431261196357606417421829226119
7869774082567011930346659465767885391407
898851553666145242513268790743911669044
9363474854846373233154932596692374824559
6341444108601530711592350731538215615
437687061334155832414303450958733517635
206607146732775679130446478555623901398
1442809984658403605782879376237095089803
26595509131194853857480444062691592225
66536412942930968869826240418390068776
28197217497340667952463890031691894313
5258668583576498141134435331669124887302
54211201932122939299266461897736879153
8277306486840688455442890892982265189
917813499736177990166105521188772489128
9848895821658870750750681241752271206093
1715276297318092321524668345615420184103
58931027915344218123057432023693449
108027805725840654171079334209456503290
831718066802118087177022890680068864796
557173133692413952484983922285549849320
680710844933437636822057899334185497022
313190272672340024956329211219409511749
1649306120885599846242743129304589952
790715222726644170886823766847656348827
610796702877481853382764704449349166912
197820546105558219943955028857885607644
4171382043974493585225778003786622987950
442182644043458362526912235918110948719
68721303506666898756129923269352342156
9590910982753630679693249131621475557271
6864784096089645172755859217876625453068
9753339487309748154763208648735361517744
5738459773333704619448182983900283631
2155480396672405390420321099124317823966
173932218840242121561929209185315264404
95382598644343920762374849354255271473
5876245430607102515498249929204731121168
63143462745747557672874441179637743189
5071756127695181912727223422518139795767
38369594643743375630735854200145607931
358158025452868763534651484336486053085
3436484115292344538820679953051488374
81274819451437463541182897730483026373
731290502516447853731521679314324858714
152487123665896972070923796475659693206
1891891073378230906242946086874092655645
41274892574943781599023853056438000583
6677175416697362283166254814847989314935
485129538667744516797733742475113532510
576914296436118081841800861194332852140
624867754832679133439224636139699285700
326791661550229137649836786693619926
1400402689643901322135606412345474428410
626126372407212228290056274299978722724
3152632448718097824419071011764810601730
1788291098493479212348911535270623383189
775597946596344859102165671970098656339
48257635678782013126478856757477527502
4150819443132598680873926131711056499490
40174323701572548583992597898039596638
12795586700102445992302724893355067856
720289886283285046066509344288926078274
9128272813743547178677995427591473775260
485266793088578252918424786303464638096
34646167817755449953036794108699883513
5264407061237217439442903672715183743041
698689496991834480890055440355252725888
734751351133947242867176529433332493114
2746509919171029469661353534441041081999
9550517987952313274303822626405465115
121663279065188206819568355527897494037
366374944554337156193601290225334286885
75818208389872275865986212933183607011
628712414231183659422594420828535292
7105108556848225218792691913678747612
862037137596966933263498173677248607747
210364897035497288216025141615826236600
5083491044424477298667397018123812546073
61392428871490559997504645983930950
9057850341539362783939975604873737171810
1754474115761061112567276887112184577933
8479333690008128845383488814403069804867
9413938363228040794572123464705545787161
926217960067770375526292226187482041503
261314364473348234678674411489589647499
848419025732673591123939103983161203871
86939516303555980933322391733126984469
316029715496251174651258686142487455828
448620802151800880616621128459380216511
9867396590845641977727814472269750979548
8024506774156559802814784226513025614339
48208478544923821573796089751691008290
511654858032892229640413715592346416
9656168085336435730584312318106273324612
7980999373354993831419698912626832660
678847482158992973086897904937275362458
3628513298460148611522184140671173219
578259418134182757368176353843887185114
735864775712527272644607796159946794842
9761169991212304161175985830314125287662
1942573994868884761983788953493353549954
549811119155338597182452535801473975530
97563421462950089249381541150962855452
4644796139787794542885556674561319101677
160884298476304320257212715436809654981
735171509329169747433525515791624506769
9185595748116363656666843825989190009978
921362686143486442346468848040977624130
363424649833838360195319324014353597151
48769380251584786194130371732318164451
4004746032167123659885344457146392133225
991226623207443788541240878812544915209
6528785148634936591816650493268149063
4904827772072444389956367726208986622
20268438475959414000355792081821631842
13062207377544571318208637376313297198
454170112106321546101993164862161806221
563263878324197730687253227862918005276
4313627917956292233704133050851552173
57672621148497116042258466565632481622
741876474636627299901462128149856411845
38507126633656695205854596013831061019
5337847181524917295997953133945726163039
7945925735024639260670267386075325829
43993277299692957571896187575661452773
20479465280177391896877400146899104725
87686073379757380986763718664244689438
30284388425919272092329640860813051742
180739898667818182426264515479998279678
91881532170175573365213839367494569409
607998313090551676806238051973588647881
8874594686148629652534831243246928822078
6147708342773968929958811457982025664157
4243572462651090696095613602876278464910
392074693226453938065906793865048024845
921791265345808166210411999142043337777
20183839608122928679757407185839823999
645022494265756643653019993561068377541
7020480851586521724139941708009965267
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]