web生成excel

2014-08-08 22:40:00
CJL
原創
11248
摘要:web導齣excel文件的幾種方法

web導齣excel文件的幾種方法(本節部分內容引自http://www.douban.com/note/204285291/  

1.服務器生成。

poi/jxl, jacob/jawin生成的是excelbiff格式。html/csv的是文本格式,不另存爲excel文件,很多excel功能是用不瞭的。jacob/jawin需要服務器端是windows繫統,且安裝瞭excel2000以上版本。poi/jxlhtml/csv方式的話,服務器端可以跨平颱。

2.瀏覽器生成。

1activex方式:使用js/vbs調用excel對象,http://setting.javaeye.com/blog/219302,有箇extjsgridpanel導齣爲excel的例子。(ie+excel)。

2ie命令方式:將html或是csv輸齣到openwindow,然後使用execCommandsaveas命令,存爲csvxls (ie6 only)。

3)服務器端中轉方式:將htmltable或是拚接的csv傳到服務器端,服務器端再按照Content-Type:application/vnd.ms-excel返迴,瀏覽器就會按excel方式處理。與服務器端拚接相比,少瞭一次取數操作。(all)。

4data協議方式:對於支持data協議的瀏覽器,可以將html或是csv先用js base64處理,然後前綴data:application/vnd.ms-excel;base64,,卽可使瀏覽器將其中的數據當做excel來處理,瀏覽器將提示下載或打開excel文件,可惜的是ie6不支持。extjs的官網有一箇gridplugin,實現導齣xhtml格式的僞excel文件,就是這麽做的。(IE 6不支持)

 

下麵介紹第四種瀏覽器生成方式。

原理:1)瀏覽器的data協議:打開 data:text/html;ascii,<html><title>hello</title><body>world</body></html> 會生成一箇網頁。詳細介紹見:http://www.keakon.net/2010/02/02/%E5%8E%9F%E6%9D%A5%E6%B5%8F%E8%A7%88%E5%99%A8%E8%BF%98%E6%94%AF%E6%8C%81dataURI%E5%8D%8F%E8%AE%AE

2JS可以根據json數據操作table對象生成包含table的網頁。詳細見:http://www.blogjava.net/caizh2009/articles/279953.html  。

3)網頁可以保存爲excel。隻包含table的網頁可以很方便的轉換爲僞excel

導齣樣例: exportToExcel.zip

在線樣例:下麵隻是一箇data協議的url在瀏覽器地址欄裡打開牠會生成一箇隻包含table的網頁併修改文件類型頭保存爲僞excel

data:application/vnd.ms-

excel;base64,PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB

4bWxuczp4PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpleGNlbCIgeG1sbnM9Imh0dHA6Ly93d3c

udzMub3JnL1RSL1JFQy1odG1sNDAiPjxoZWFkPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPjx4OkV4Y2VsV29ya2J

vb2s+PHg6RXhjZWxXb3Jrc2hlZXRzPjx4OkV4Y2VsV29ya3NoZWV0Pjx4Ok5hbWU

+V29ya3NoZWV0PC94Ok5hbWU

+PHg6V29ya3NoZWV0T3B0aW9ucz48eDpEaXNwbGF5R3JpZGxpbmVzLz48L3g6V29ya3NoZWV0T3B0aW9ucz48L3g

6RXhjZWxXb3Jrc2hlZXQ

+PC94OkV4Y2VsV29ya3NoZWV0cz48L3g6RXhjZWxXb3JrYm9vaz48L3htbD48IVtlbmRpZl0tLT48bWV0YSBodHR

wLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI

+PC9oZWFkPjxib2R5Pjx0YWJsZSBzdHlsZT0id2lkdGg6ODAwcHgiPjx0ciBpZD0iMCI

+PHRkIGlkPSIwLzAiIHN0eWxlPSJ3aWR0aDogMTAwcHg7Ij7lp5PlkI08L3RkPjx0ZCBpZD0iMC8xIiBzdHlsZT0

id2lkdGg6IDIwMHB4OyI

+5oCn5YirPC90ZD48dGQgaWQ9IjAvMiIgc3R5bGU9IndpZHRoOiAzMDBweDsiPuWHuueUn+aXpeacnzwvdGQ

+PHRkIGlkPSIwLzMiIHN0eWxlPSJ3aWR0aDogNDAwcHg7Ij7nsY3otK88L3RkPjwvdHI

+PHRyIGlkPSIxIj48dGQgaWQ9IjEvMCI+5p2O5ZubPC90ZD48dGQgaWQ9IjEvMSI

+5aWzPC90ZD48dGQgaWQ9IjEvMiI

+MjAxMS0yLTE8L3RkPjx0ZCBpZD0iMS8zIj7lsbHkuJzpnZLlsps8L3RkPjwvdHI

+PHRyIGlkPSIyIj48dGQgaWQ9IjIvMCI+546L5LqUPC90ZD48dGQgaWQ9IjIvMSI

+55S3PC90ZD48dGQgaWQ9IjIvMiI

+MjAxMi0xLTE8L3RkPjx0ZCBpZD0iMi8zIj7lsbHkuJzmtY7lroE8L3RkPjwvdHI

+PHRyIGlkPSIzIj48dGQgaWQ9IjMvMCI+6LW15YWtPC90ZD48dGQgaWQ9IjMvMSI

+5aWzPC90ZD48dGQgaWQ9IjMvMiI

+MjAxMi0yLTI8L3RkPjx0ZCBpZD0iMy8zIj7lsbHkuJznnIHmtY7ljZfluII8L3RkPjwvdHI

+PC90YWJsZT48L2JvZHk+PC9odG1sPg== 

 

發錶評論
評論通過審核後顯示。
流量統計