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
5783129846927473703189042855969027802023
4614653617625054607393811602117139646455
11008767995420686486692264839641245688
65516247959817107642979581300358796661
1453835797475348974363126528678997073976
7802348816187214893066962955895356453528
9860289649087719508494451566524283714072
9332437197053741699495454540553997085
35975847553130462267934767427572837029
7234721635198638843393579155787299654284
9815283423921815518760526348455237253643
8667581764931428803151467000245822511568
45772852368921045878483823228441853127
238793728516641604420144279215157796823
49165051164229416791297241247120389298
923398095592584382721228929398799051208
77447006237689283205338991312455042210
846414218027108347354086814867052247746
517836052282728387308832782938050409709
97976398805455833440114091205689568768
940744817222410279307108282559648684659
6806446251646790112369882129588885646709
4528170279946819701865568384125476396348
14752273169044169551358665449099016140
21268292287548675825740859985865214387
802779863583255646552249283447484626334
95558303215237141533523940891942096589
2116249667496005664570606826916058787955
8487914573285085213349495774611443685841
136585026891366867194017754592273063510
8745610218673272267721174472403575706773
7880468317738105818640364120840217076342
688960527459876527564393156972643999566
816021491179646382928782824772687701262
393157952829716597683463669605671369292
960479949856017681822765811103296325041
305111821313989226656156943118343497413
148059438072358284569266721458843822152
420482675166492836429574964900173493063
827522981976616760337560472092575968938
2600746853906716295530118936764142501029
6598827186455993743471253354321616979
23876675707810474665999934259439688383
482098863867731412057721607477801688174
1830198178796234965582162481261653149415
5622899187627334111999864286684399692356
2909774164935820108798227701565993409300
3716137875267092406298298998493672872591
20511855643555490742675103316666768726
604161293313975174797555837427012928850
2887648567540942099203943942158463291
64922833200920860928703142663764551895
9086573676654741151352612564123042688345
6886325656273414254386866796339812291491
4717444468006325130953134457652577712519
3910387333845066920536158925653214796875
347095455994570180376273553549036995007
1962124424338951217413675426257123586232
53048352248132357334358643167818635876
7989177412329042842312463077898854555369
379279184440344983259569593802132579841
32143794898166063742436975600785354785
4444182269159393126657127305743857499803
70744660725286842890703755416270733918
718547607023895819874235770231693713668
800054696392092796185552072815867376
8194918263051032369849439562436087097112
1496870553974115333485376380938698503632
819810156828934435022364293354846209126
105243601177235387671318850730599241796
1765627349396271662417777731849372095
4531886548744208889496249343326962437902
422855171921773879065789623018038007310
936637348374999563020494540711490745461
6214603547098280731611565889233338434514
813314029724175818311493521849595655879
5821770723868414870024446777348838359179
987457788079224691592279836460157514002
97459449386422988889998548973217485292
957021606557910454555156569938959628930
72887640838330432674616559384570541398
344671858137284212360143444611793606364
845488522223517184497424601296695003077
101474094996494073614061683660861468252
732856674307942244892620735358671756157
1798869741167112499498065285181845253984
82235883359589418159362076810425365074
4323540749714699153859195761660419766281
9560428472985954549272015053145542312284
458311533140355590397994195849795915420
763564299671810695678279753844755982792
214667051469677046060078155807365902960
740546423240541133603977351187684673887
367150612147122268393286128342769973520
872716598981495064754470316040934440163
961680369247959772583401501560725123247
69165324310542564089995123244218712049
18693706644147616108360774844762373851
35123739429858626996054443762343999371
3988408252792889448568472429274160457340
757361564716839353094991674784721218397
819923933583718453163942221902728645979
665868153566916440724595548294955867832
54775119577112176066697447072625766916
7839328458215148496952854940911140949901
82605833849452191439401430778742918842
185289878989180649081348044935463536521
3538282845218195493586877547954572616953
29982272555737759018929584385574276938
965056674469940562024175303249235318530
930998586115697558181634705218610184421
12199691428544596514697350255312955479
766349537434157279246024317468658581925
8396205878106031643114737036299480947
265478531713823091985251385911967205506
7112570253863755519559372043177171134148
39928774972085265891817971095324232483
5097441830272252337412684726719769782802
197965875348265803178546629958934169826
341061039506551380773604165756387592235
8033688667795017806313512556131178276947
2287146074758398205353136618398910632786
592495196800907318885388334278023979295
193563488272629213658867838567039899805
4252865650292110745429728275846918974695
2103347973846941378444666431123918134847
5196173467734492631431051254828016434
675267035352327514062546187318543691066
82542250753168514143521611327692562865
447762275844492515173978065628394398853
83821991852626050624811121030719531015
2903180458884291708938431588291045451582
149540514931499732368665050511794912813
704937567478335194162816845437924314405
7888433726707669160843733724581038933651
3987665516295004775821919208267082622452
9079824053448582731533045736355524206853
988738866081429451025624721466755735020
15592997509141185074938624215532076632
2736883611411778784572489133167907096
474969646697457099629685551663933079114
163447522938709310439159195436171443
46296313429720025845204331693014522662
273961904860933689119669377365741192712
80699154161874387254108554133676588506
3164657032999099373691381791120857931212
779758704306646610925875325375820639422
121151847116820161628806730286923168719
2141143697727151766896643314988499249375
632742855511452441721271833370318258478
375845083648098814225531774711678240
50642170672171270812123150901836194573
2420685717395924520269897164511781338262
329638728789691424632613017614466459
492939108467503416843050248445171116526
9011702512442324241078745349404531343808
4860407295276352259493329399181525213547
35582467780155332486157738960234521469
384046792865504680009437887352668923948
576743591300305447672915436659488796601
4232738433233322706788464950726790666188
60663156329640797977403034478497926015
609322253789085954819637909258374253216
7300271145393035713298867908158270444217
29225526192529173840644997808863674022
271511776575161523399394509555855077113
70751731374029238585446164226373173378
601142448134172295249522913032725619899
856482583856873970886813023566387921617
751915398788569126166804568515899849442
60415877924739637960889159960255293557
735169504274929624953122216514943207702
546941797643860510503874680783344885806
91542898801365495777352153683722598657
52041811817891815415622535734123487904
8631848779171057792726636236015299280
8734903934425790841030466527975932255
623995354187102489980806979791087703805
776359919434157147439323849259320333942
8527618523968351678893181237834070181776
58451755599978802941087908148728106671
510610715847633065835913545213166761617
844923187878643590913383142483774066345
2319293644259538714501869025252046
8628542895329102983045943697826331502710
6967682637751496974493288830349572518038
126037839441310518847797380655923934500
7962178868153795698343916595116792673950
3390828067668792396239379418153587339233
4688873823679625317529963285304634239542
167153512716578652610638530327378135570
346931475156129680827793684475991809815
43208797404047928213214791423603085286
6654520282444781942237741705935842694936
5694480230157270557141582452892864285408
8348529860756067826090663326857465903674
1438348032639432402986491062639389277629
6815203153666875371689968324892530312737
921572166437193942998480632071794168412
105664241766885991369508317387429762469
7956852316534128917123950437558515039
5349188545258766956373035696711057466682
794040529729189174441259534133913254132
474324475791931677801688267167868197351
399306141615222452667536484549143083913
8231518630455564176339395842136570861394
957344096367486978914904435117532433640
28580676071442473075688114693327875964
458612201862840451382729706156286127970
2963909131743473524555126949754681569837
70061154101633776469184673684618291237
4516169320981018977442695314832770232903
3672984698241219396531631108677026503755
14358841675019357551894612908439245741
76864491143861451749794647219465143123
5809719445723182400147053665931753181246
110953415249444154020105946582146318640
903170614930618925531158276219036048120
5922324550867296253397566014573680269121
1197215680305275623892739204361254751160
859417688368962238088050355771248047768
3846568532221200867659806605436627155552
95195419388764555696903383264051013887
231635398958328947808355690045167133138
35347822143549474831412555330687556327
797029554684269455724750980125211143969
7713663435598641578093220101415178547
5714307194469362646431982380667970171447
473290065469903145004356335854854514166
100423711068938492029618494776548525759
39616591262095627861728540401444715707
4978625744708724593244896310247562796717
8895546935611881494753556857554237509505
962680074322864784543225871872185694784
9144680115379712592766763510857528421
984572581254128236793560984382860031815
3536108033095839873917361170233052804467
8071749883091408233468357368090597675
1358613594787081154121811242699896306612
57337711193388288966981927460711982832
687050071832776294276536675755124624539
60190892599636821154584705486555708307
5758144182679244909813767181168079381620
5467268328067632442905625895671597334
895613544429821161682094410643107974230
1003269193346536807254541501545748857735
4870112989665532280044499919412955878
817255095192159797651838659519654541680
958248543360330974825852264330280898969
4397633959629012337990966280739294442124
846622247117240270357124021662482503570
43807769419703323690831980557633051603
3373490737396882860511725903962047167
90190138253292995646565847849421024277
719435386707824853322636246269645638822
7150166716408210349550676175530156061977
374820660999402959277132316206645997389
646096551982849685059529378658506635918
781062692304562377547408020871228201647
782593760835426276219382087203179969305
597034966108215690191945336274373646155
4505699857873878466331641714276447282470
848088163406358476092614024229037397557
49545682280962708320544863739757281428
3730284684521212609687502751305975761328
409282459977406229454388631139472007622
721763547345989761122308833938451802843
5804702095806268285976848647910920999146
76387271636343508696224841381803452120
1654482568448730380062008651405933616245
752634687060553862737920548961129307082
677705262879428154010908212561235525785
1453332663102686434611980210138173988
9949327852024175169680459617110866847740
5688671376817715529045438439903965873279
37632301257929580711608430174235212159
5168415454202711312053807975489456415835
32377152768650229958949897190664019513
8282276653043165785651241086680875972715
2709386866629054949383234915401670657
6180621365264048838717437608173190367602
2638498662631228878563988553657158308
546581906671992154011103992170238772195
7671560347857210751857475789894778552938
5256713928562104776676565509642636585342
388097795637933442148611920105878687950
8220634390178338578268717793563467713507
923226274868642974337689058139026811056
57346518939130871423439362976727502949
978976494987687210831852133909782014410
7365924033662532302378325291913029217896
3968573330647846352151746311853265037282
400928899727025779726569578665478877
1472784012051568544927932436413722503260
1754375575223505265570361813824215631196
155479171491278216546817485670339751507
214234506376626079797011378452029549674
289613504629556365721053490974962261353
938951666347420910047631011740286738990
93237277832401814154383389812189257899
895673014212856909359849937679610417477
7318798622918313806229924691517686218141
4555451450627950504892132015521924727250
884279617286624131295371309623031967914
1923591956348204851439408166904930729741
951793344593618955532355121930722735309
942299876238961959574013396824228456334
2365845396857837942459271682898582005681
4723565918051230996945353187413754131
8979141646198765775864269065670059148428
8007757479831544902726689029535843397286
8931898291483538311327028924183923981573
3919336280562532642922351825800670043862
678671674028688840797887571917277199798
1005758647692988487554263459338616649366
6354348344808378381932526260543930376996
8837181225877293172213221168986687499563
6522703727573769398915804667528933645091
3442799960828203246377953636770763386671
6636749314293241561286421980175479475734
115088163687027622484821839372548607112
770721682142993675278303482410787208063
713051778592499858825356542954426009156
312543526953023311815318586209734846988
62163649659145214147429315552812729693
441334387950881183065191399911279737514
91837953677967449874573496681698278746
8361778831755162609585922318548759813818
2045983185426550869250595838200776082426
7297234771554203392774613097746245924639
9535834868126181729813978761664636518
839268576026158577354115641135532724577
7265252452465943414687239925115051305
7710169264574749751623083965317402198
194851606731922896548564675314469935123
135571612962699049117238646224195541497
2351229188138511782718484820860771276463
113693715233731221333931407344170231831
65468531433343443623905839650355091109
8263438988959319550412502237680454307
4562473636916607402269404775304226585350
70029374818888345165449682192969174801
33078644781532973871841779287567449585
929217532193501135643773966595595723839
808856028635631929074603232667743686883
598858465617666853874569675651352462667
4036892775329552782275298705233936125953
527074352765406928489620692669288565667
14487844133107241694817577663614093870
7673553729795043253433950411481521124
1637164527199691091925585894213511887
2646142465781902250447384653436048467
541383057624143444939521579869318648743
930855376728612917942203736242598079935
395191719995729796934205862262775563
936898819839668542912135587724273787809
7833541296818003544659311741727421407823
912545224157951773562881884481731466907
16214245686388560819770260821648843166
8332870648127257348855538574996128768
513540213800335717053975292948397798
5586681726943078813078210937050071850
9206898989286885685243164196746284779697
196243714679652627757187669116894486232
496845565567067683405092461157320273
512576213306634861476707639610460254985
499739778825828919856115182563473075007
721690548045484468513918721725598739870
7145356324836072876526609761894859096131
3532907746172925849827256712874487994900
543690833662543864018724132325054302361
9862278796599929846718067560481685231059
217382267226992041194264718782114142969
55886625541035330194031809186477179506
9750778541685132513387769706199236521640
693385023391744884182532835526545529155
846168149257964542443536126992195435721
963275697024187033042599125420485509843
2713669919468322695669441777845442401654
9996896022893878644668834224635254
434380841251972832443914909090922035
719197824951539358165815201512482923538
5778780228275480401138906891204188493933
1064165153227291399982327123109127471548
3243890013353184300845536287508795659900
982946217077935061431904751188012567869
5901429093761925143146949409833798301065
30887610330134242903695659146092876927
186352355198987870090474526813362529669
8098471376823923405277426120857965963480
8890663668875400461298096828297555392567
55888587085286957598974767790397984230
3959239298467392286145797249868157828024
753145684615238775566145993963796541647
9480859945259721447959152454110149629202
3031668270101902328420411270152492442802
200030659763142758475198058133947898985
579834821239412771529258856204869215075
66388552711855349879621962230693293496
5395558140421258342041447624661174188082
8003549692582050992943571808714312039494
151525619867343252245066209165593244464
8905645348789490355795183427761438049757
68829051900965415709970884353723531344
9672736170825837445648537697271019037
960866705338488567479213366553138085173
140372714349607469577413795597132814154
3301453087736635241190292294111141239993
721638717140897870756092930123680112912
558212453785659249739601462737948277816
922861294347895530297446295833293689518
6601898135515728518663339202292772994
3408296663636033601553644161292737273608
70067126380485028148989814138121365672
270672517626529186685133550828915503150
457728881792496119621337941111108161
447395879158622848633971064620082338750
333735639804890857445299248913757965185
355284421930139950643079811093706696395
39304988392699315503069343081966492306
81717635754469791276338512132044882497
297519674903108423046062314453922101438
10561057496544354193728892290873533813
261882022724559432642776105393176674227
727122145872465161486325919845958933161
495643822727956562892026727393339864696
3337597478866333875568189752516141475445
82372163267189726785139615119672753903
8641687524593489132190436553749017551718
917753481607332336392267779582638419065
1022216435857382127617305394009002579
320533177839806623197314632574694538417
8211757635823933933165143005809631755834
2326304194347482927259469743203220079832
99432987843916355427944875303433305503
974973302555667791695442227862136484
32568215347244347372531702888378155163
3937519827182051472016032951929323306407
8220540414938222993898189296050458015
88128354572306215327506963755451311457
120825172683706850368569414779453791
38785195140692444701403626718147805379
7920882837651183663057434625766026146512
3865204313188936168293482617251431631894
6292912319958427279041483011579881165536
4617263061828762693969626066102951585055
80001568444503621866626251303147693993
8796320618095478465844975512583465574887
6908377242427019885805569324227432466
130424298333967473419748956745674174639
6177166535640210419204279630318617536
849352209234308087183986732148795978589
252920136854846992736746652238055659580
1487198825028920272649108125842527165329
9324361421674891913196361149627550728523
40864013295035145251214464769542363843
761032005253539171904968768855834511388
247220817464333678530594878697263809359
7284918898396516454187606433281941147643
3927130881368940636628277352736523168545
820219805364697272251179317475758999
743536922905967223265642507054747435233
9306207818477553477982202709617488655268
51797422756356180261965732982496282105
1398466087542893295797237382668381954923
985099740217330834675649763880995036883
3445930575093171829595993329524552091895
5863453390807161670927926680771822312270
5093630015183173580416792806782555051167
1897906262662148696723697220957421028436
9349919963801974338060201406998174923136
7279753287506479935270842649323980516841
895767287647361250941249872538284305049
8869159863894939488362251617388212422773
9657261031675064841854974175820517545720
15725830840954596506385278133269975758
8436331736189678691621973696961567652233
671498045708873549649078808623185154482
741197386408212764053613522541145977792
681097263837199938617384924376782999328
2196623837264235378059085547774627402775
796864856233367332252672868731199433029
3211440221563300689690389394395199337388
639098742583343185357576111638692189953
5334865232862810266943103623162197685516
71644357413445063326146788625819699454
4852201522472671787390707490704775793413
47583094402832397856316236786241695774
6410282502556356962191459795978578690
7149435968274205409426271560128861877515
576724273406351016889652631915219372313
3983259263175060857582686434551227343420
38139677503079198827521428856022628722
72891626740997533957581558813258466162
923792333534768370175847920258947576621
310937335986409798628311173942244789465
630221783223983907620151555791145946031
5910159959001450289731687597199085335280
51635612916718257975363661422333972796
34642467465419323999814813631204506463
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]