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
7527503596595767924322185445661785423
7681842391363626406472205294539499258
855387187625840356476371498705011659971
685980936888781985044007025871632827489
304123177368764343978258363665934833685
1073844547280690136958945683693217166
699579386532289471823809231998961748728
7728850490172361182540917654595466913
998140487404675581152612714915861054708
5667510574676418575922409881462683012519
4502225040062778904219894688894817713531
8192201718942918605327176625171454486186
177849591888620014152635237649651326631
1518189027757032575798147290570612735602
4192312495236308219525267924158212989970
856931139768725135744445876551912492124
7318374531072438862312664260450129146727
21778356874146128717515804104886416286
53859623312613233334276199104574747787
9244495994053946899448336554840014989786
438538481323871224566963637985635149997
252740963113015704860502492491810297330
2922241421155790430867942706907531378540
71212342394420921890176928681216975592
92944339394950261422861237970978847348
7670830574742729639189171714438633516
735390383385949595797347494973085105702
5594173378393731841118865258856577094705
655172379309863412663455254272299212821
814578043085316775968504859854065186451
316227853203921984763577938980678651374
72175493816940217659209926120492976159
498120650061684518372323626912612048242
27527714808836972090436342615955101272
5970693761024494864738219978600887957232
337879139410599936041715289264549032257
1318107380133262983566539947775330404174
978973876702877784125028573187106467338
8967549860753563824689351992330983452820
2876769264435847753971943294903638641336
981484902006220815821676638296668724
6742404517784692890828912724417327754260
5023593197798488762135673492795932725089
40921190677641822625859579725663946589
882911007274311586682530829633842899575
20042099683887860858365515485399094865
7889976882571874853184369257220497268038
333654351000081760507563046451163459953
266679219166425967891246265924822497499
46356911499833159333143159832281903653
1733223038639593275526857386242381836563
5342119625099577907574216362320216357712
8745200244513013523615329354505068826304
65026577626679074711722395961552238987
986651427891584150240117479661539231529
127828268828501468964579503219088670794
7837774561399668348528514515154291614770
7828788093813356973534211325397649626561
4217375829712853841514527801458365933490
7283324176179617217640728939267198092987
8744492951251354921425609502444664381529
17983234096081414548042735487350139365
83788692667865139042036314636017293342
2889796561225939818824978723688352086656
8682530734889783145183673353384391192356
441878624324177248793315327154738468374
518587723129451624398913734540288878730
2109567537547409820755734757986897716518
7293296651817370224588038021451235315624
1418187823677051797719755465757592124307
6347302611615535921260391341765954563542
752236933588785858169563899238673777495
98147277117575874509259613881571301936
256816373778811250257268832626360409265
196886322946662678914181412768062654776
3583884737011415307443706983998830253969
785649571099078943994847202857759034015
7846927171719235884764179126800594507543
63027326871270411779520930142951686006
91757082714929503652917389036933590508
5309246073692415761363513454246448156424
6103247392993082870547408660846651751468
88158693589840728169575967097392052661
844393969223688274729183828116548237801
58039275597182422557656719799527902916
49268002697965972858526270658778954708
1607648251518345109928427703310739308372
36097692838890104744248236730094447473
335380803428974206643649867755494537625
5155130746702310772638862236642471458934
2531595015979187678745061363844415073
5239498685147288756484342778194044519
512838458572430533544162284829641913890
7246481576859956593923612344423544320
1096394490715773448076773764368441315271
763372617832153578156839998701349776671
596092675744388181628361872463320732252
6888416844228051484096166309339666114348
492551874121171356256718931359351269
581743944276927117285379330359839134118
823166645851869389951879905152396625633
61637076459769721012704924784916409967
9032533826701602473769085128961866397077
994835538622922310695075051336792569424
580532525534373276884457951990462996092
2811458626404173792636453344306697344
1567824448414908906813946047107473323784
5007266536698390574850545600728021516552
68123876572653763480246982467937594424
651945963898612662179629548747581513575
1816272574456128520081695523166613604156
67724772453757676753909133822833886382
62121212389588895392234051455013258136
236090378900174989031599531319656726383
37994487886099566852393287624278968545
953040281081986877817935657380317348384
4170661542489440122668081594429993323690
3457574653555877780171037163183311327888
467851592598944836077276466879677976267
8730694088764257620704707691633168226
3591820910989785379896815575788764877384
1921733034446677883044379013934247327329
730365534708665414966079347524548493924
2888388019166518693647588197899030555057
8960932757118902206033135930320745595139
9005408587869220981644199323764655403803
481225485847771607281418105842280265884
6057832476453055706426437557409477981022
1966648541223593260132058724166228476528
95106136698745871251176659478347852508
717416857081752694265755907590518094838
9681783275496932690151225896319387408023
832648934330695824509336875479393087438
660060425069604119459042720751915856279
1645610281981866423526913191292144022
749887115043681181968433556714327596433
552960954788863815328325548911523815621
482172913012198736897304096598218232787
903313451975591298138993934405438281009
916263118164845109618205502128213477085
858262729049862811755752862767417447147
9032133197502654550236368057850471103343
753661894693272969821108975946681103532
873922538624423857896039111838205967
99184067823886242274402548369657133331
751166133241578987655354860851987296946
7630109945945173033506934968651489922
6869209655155194208574878854204261848448
1804988756854135219124965532492455963778
6450913031878196484915104439467043691
9056198051643203313362572415445323471351
4019810229451588933543272724917279392584
5482353367291541393123418314672474259662
80852485554461769380682096909349734166
36434527043424462404556770615899184893
4555780797848355978859388996952873688415
7081611788672513808228559643149852513713
8977256628724116569378618072990255846240
72768969714021536879941346936667277202
8953363331449316424034902825422488371
44837975579300476385361698700716617201
3190252768992441971668163442876135031151
35795983904183479341803890553017401854
53427835757619049878375853369043989278
4314143824935511287751688145954325682332
8177938190289444814417966398656949126569
422495947479310238964276770960785412168
9708548143325172270473187698317575775923
5039040284427716392824123534578027620
3658263195485698525771775515248945953
6174284336259997227465992979655623016936
8093939810337213115414898570621774792866
2518161685023959994168795592414067069588
8053171984281198528953425565659515743265
70785543990854678798453877333471935612
250789109114203694917743992609591135993
3580200544428895441690733732754693517467
1054698010827395922629956090344663455750
7483864355951718423319337547430233890
7235334758946791450515811447561091597005
1279736587482071234354621188664791509510
428060102031982352552947350740863428984
7733126340734226461129541850629957693
128825486891109457919508156450767284705
422516343366895340070338173214871482809
362959077435922679423636232456498103835
470616306977479768218167965812098026663
927385741922506925925468111097317093694
136248197042115849133067277881018558591
464472575562646799008749480950748947765
606760183257677458968557801856645451620
9101371736287719853563806468745968827
1281739530744122847417649134783268016583
677194152972660223224592432640632106859
53463109816563910351177777889299166345
4778906252509034109782032750186334008464
713158821967314239285554857626172865132
43648794786924444764732985486586881742
24021306567175822158819732466512019520
8329338337926878137913039206340473907244
850077217134655147067752292851811013943
494068328745828475891642594483698731438
8957198381531890326140809944613211454583
854887546596279556248304933132915915099
9422706340388288877236516288103514043376
133520883571446965453229611751564945365
79798587507066706773781583944822469305
5340267250661320468720162545325543285035
977474041417619042814533355326577026819
966753956325106432914975611671302739944
51684758239805384532062493381581775754
231494698741292497351545533978218334767
8171423835746411779314653855372710418239
799020126338808831487879768904018669460
4905523079685433002714586265272392858
7255724915968163316599336997596041802934
3886197435767208554744109165588771846724
5163302760066852582527135786419351327117
524147537286546758127574051392132843599
83784412966269394398209229905167753972
11336055469313783113289784643686277321
6751150035315574077670899981586229167
6909575506216849956853596246246674144
18574282778111055786297896460424829286
750244878452199920987698028846091319042
8975327968909163435482899519418454539265
950975427575052310443153222292594045800
626415887176165774171287363465893288376
652139581214922427025372210393050067429
827990283096143132846462532959660555432
726370221028166134578464027543697808790
183676661243247268272264727666233893929
4044754563308365946113678005876290603352
456690274314205546191597682328390075264
8235257817448034524085154762551197612429
7681142722293301347061768671144440906660
966543293228713537977776571529386448683
411723440374559185536509940783287261068
2030783987816383974171693398339895618075
811158018866900386597461529265587159754
700596734929000389074128852188047587195
6926004726853317684327423496256319964
96905199347491951885814291246631098253
5447247069234287850797104429743772263414
7628885477733769647743147138563172666415
40089533134140229643743419765150012478
841664542861473624922949968958711460321
20805144899166218064998345866130572369
895272658282957152059856174971219314541
958254805824261711287966634591182917501
139336006844111859097141107057989658295
236125161319956377837741342715176613058
3417787655662633566382277330931460569148
538085458896794634464069936251690243962
5245494597186046754463672163812427587516
358853675958131870308324707933313539277
358419883868314792182848666292231282031
6143415240362140872916502766310924513362
27196245222054841764526251158351186101
3235811705074189882284095238358279294
9298177375735078400171038267175180543448
828731443584997312417655783253389633135
68368632116668720929588151718481697798
883813576820102554285379226640848565723
2026944313872212859841467851473147581
6160625493653006277016009735363696796482
115932419513281048376192821921221148547
59377561809463331163239265643442968998
139089141372958368969154307940178503877
10643454172928020424950165910735165162
350247296947889892357631477055028985040
9401651693039245818647259384404934951362
9627679038101134615718237269380070141530
751978697062443571988928814865539094635
821686462451524361609259954529849142204
8386366732404810149411527885390434833224
83491423812626758496137722496196188
957697129900769333124097588271393379449
230556451275577605024579446686094701844
278478238448314654881583965477185531040
7047861059288891985096691002944864693740
3727730363513933739768156092711226312633
7355614558570281949532879825284295220
2494782728974148124074083395538971488879
9443355524509939402265108400881357454235
7630348279001294474441673824122970435569
9911626147924435360016152219769591801067
321444387388550486455784092145067901870
88447182539281264358943766356875204187
9889167643789186575644382595970048904294
97338577495474992927650080339364828762
7648185229928457337225759460291124961569
173448714413237321684497558958735331917
388419055886759260808669202985507554490
392566187030799827696449685125763128182
7446115418885773555781959046212839691501
8864154688144566797676628020979573906263
5647221827983302579863998832582212292157
708527521616218543496026996859536026621
8161129638077579612975682204157496395118
4350847392382744704895257936304940957199
7745864866606504773520515556236857883
69467912573688241870507179136552742711
571944211614624629996957370178096353830
5662585032776971690128849181289745159906
9606159436758406309021588946979990876581
81861492784120556375604715566687608906
4144226613685628116228724348532405343
4525605134136657619090396716449804585
386618638444497087812082918295997684223
567588019047842790312527253909710498524
615562059288504587879515438874537109451
9779486327689461887795731583776624506634
231497211993263624547926475352464832684
57206468225385054684760396177311192052
186347855732714180185236803361920061489
33989002461361133259256754583544256046
15668758758017521785155558868112805182
796067812824366171216636473053856512
305017725089615875994141298663539635
6157899492794952403161996140996765955675
1138532995925304744379902590306652216954
87824381258354057405886609612412447792
3460546584675223627328519083299312488043
392769285347043145987658056812048647802
9207314178073119148689918834279295731153
253734007007515115602799735024364766251
359520575237652222167925184454044304262
3111298330091072409323482836270026835193
1843801976159936409217148175630471259404
4087794136465353728266509542157418169157
574148488985127137557306702366228129
774219540150635848988657274954092339
2070476118464463637458798987525692325646
90439551703551388298279098420317384379
6014873081087491612765205740666114706484
480423779006647543078589432318555285791
21003132576477837923297760970523443924
4542901284983025788497173864216722698837
68616971507284287336075985288118178560
44499519316194461920244458974773249253
1861401742065915239685844744293318797050
84549605224253826260847927688119781
8560368631728762332969685138275373861432
1155136473865323873819823560157472299053
92661956632894532956979291999176233296
4190732359798938639312093058924362305356
877685039727765626558911601465953534008
4292402743465683848515464897652241869307
606796501659540180359729462731018942323
572120761996513714972848991867193355
881255768945427642427155111838466736929
919848363262807269394920159419819151954
8057440175882660194188403487759164063339
6742186580759064191735977432967912171624
31111705251212314707118288405247383432
956853139056514915974514242318095313875
34044881335853845249184279568543382461
94435988465247692621369765884479986303
718168102756827690746411128233713244525
5382810966216771904987812061783778215353
588796255657030256549621253608498974507
305665916168471639410608612229846381917
160254171193839933960848298564049739571
78793858996998855858561626297072357593
106228039277997283329555333077767609951
5837182982132102812616447520336085398966
5337567122031180637132396303774016303857
8451465149940135123797487128702374903
6695224130952382979963257639477154564
427455823038344449473587889127194835787
464736936898283033219861804446023975819
39466463813453145983098324055635947232
1171288764701858988194403770886781323407
2415756344204123505237215818739976858072
2561472466422035906468165462840016138353
7396199383689531594118586290764874722382
810243058693192334371007337189958116306
9780552557452091593668146220856752788428
6739950991851069897697304087607988749055
9138418775722760527489235855536585717
576872701834825513567857615091627935936
937110874328611593357113998274313115
1568775137821393734393265212954381664
5362606064573974706349347725511410719500
283541868644480229419698015793345735333
3146721895399838511512767076946850511867
367261216177174329321365059598365481965
20541103069215374328151725939370602480
243095341831867981262681762104928027389
649291612450788065783442108812122148603
6028328028611764878589578817476552114681
142549538987227736514279672292519828634
1948706642416084792559745210188411892276
4704494495104715498262652031836394373284
182993874271605455726056245118556271327
7835380678719324049603525995381043564
5817309245204676576168255681807751447491
72342018264088123810768479124035703069
2514408492553835156574742874513885980
4192151010937417241063725002412594791416
7586699466284028671585554842762996902362
385115704504962222607916854355765038235
8190982221732272522285047442588966725260
50381255878817593072187329876021478962
55985683366587209171503526561435466149
9561601137293995442011753079491799729
2734435123773832777343318989987073239953
227171907737881832085432759419024833473
537278429991695091399555670428021636341
6737976126408733526022988799625660018788
134773189680223399963406365837853682687
301436604944962836956358759651937822999
27419111933274723777565258857236576445
1344875838786191625381377526483816098772
13929348681985914814339604791272941435
8748227470588421845827132452197428351595
36322139529893475879372820411540072849
5659842849527381131730002463330051989254
2667856944564275679934692476124274753923
5097253473688735273351162712631030046104
6646473919769966517298905554928279393
278046391160990795082302715691769749299
5393946475939528910718312209266089298273
55314653206381244198431127165353687629
7043996179811719228298959098548621207784
1864137712145888218855683925177918134442
3255555767411506874351818935903351077331
664579321292383861718004753672571652558
428164209850145523673111656017916951784
3223735926751667992165719642818723587476
9242270789493969834185064910305739275091
81466939486892477543858422642943929289
7091856210702484242553429319877574756716
148395025718242200235719677179611373008
2378865746647889176252421529930674490
48044891877512778032658642987989054560
86791564534283725537151266808842069097
3479991740592133791822255032105774419487
234211337503046200266343110578121775994
84841017243360338577587170292397643432
1784787947017890638629297295570472728391
184765274694633911101712139527318253226
80373569492178725438573308422887422030
2996856128763946314657165675849736012626
187847150365804568414816728570773221108
998762879141479331446761825277367216481
437057197132630884884565506734171458832
4295930755698145612364438401165382884
9120638193672234805428353539205127878032
697268578375447820982749788331511571493
8500580194632496415030444018362246697790
469050125589583011716333911098187119970
373363313749560679887085274637234875144
430488878458481286553104356914748593641
915913601774266757583752248346154349622
6522732128712159689773925992752196895078
939574196686112132559551481280576586484
9475538552585745997779103296613483552
1161691389982604544930706454202126705641
9122887083898078113594177687261942207057
4724368328907281010914714467917815417
1377452567555091636254914539498836911
1793394178414996588498352138306895828
939901557575745141667772772864749823953
895072678432600820157589812030068153952
871588822907985990728667078239668251175
442936155976588990378570952145161769853
90956928942684325698604267683798903083
4494745241257055281532613320157281392973
551180474355521282131172493946287973497
2468434530996195798055919809542445281723
4900250833019321331454764656231942715264
15111358184246370027455612677730617
42314123732721806349835796479735413987
152378349867553114080542065136819605906
798993813347163418173017901137176911071
118459333902339430137789458856323984984
9428691822198944493411191443971269963214
6709224438869555617732073770306987693142
572988366823474656157107028256718672551
9706784141907144446855655588437938865
9108761811778409249455226315378130774023
243524397939644738238262526283024094659
103382817836376592659941485843742086983
7435957497231827728973525986858910299395
3682818813107647658867973319148356688
737264586174681759953102452225663849323
61911724758304923827461703473646984644
1483288141767727595744857783920575066927
37499539773325477273627116233897257
13453294542305853396573153706249749960
1214556320495374478988455640723131911719
6243852653533496367297363622486063149511
4497755699724619168584497596926319219687
9220964740686652482242724694336248849
77168473360284581758282945442033575292
637858646654396309140024939716017288498
161715962915105624766567487472626435218
9644324537081138448099114450671483135131
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]