2011-07-27 80 views
1

我再一次需要做一些聽起來很簡單但實際上令人沮喪地迴避我的事情。將JavaScript數組過濾的HTML表格數據導出爲MS Excel或CSV

在我公司的Intranet網站上,我們有一個大型的數據表,其中應用了一個JavaScript過濾器,以便經理和其他感興趣的各方可以快速找到與其相關的行。我使用的過濾器可以在http://tablefilter.free.fr/找到。

當我需要一個按鈕將過濾結果導出到Excel以便管理員可以脫機訪問數據時,出現我的問題。有很多簡單的選項可以將HTML表格導出爲ex​​cel,但我一直無法弄清楚如何獲得JUST濾出的結果導出。 (注意:這Intranet站點將僅通過IE可以訪問)

有一個功能的JavaScript表濾波器的一部分,GetFilteredData(),即將抓住過濾數據單元和輸入這些成陣列,我認爲稱爲filteredData []。這個數組是這樣形成的:[rowindex,[value1,value2,value3 ...]]。

那麼如何將這個數組放入Excel或csv文件?同樣,這隻能通過IE訪問,所以activeX對象和控件是可以接受的。

另外我也許應該注意到我不能使用服務器端技術,所以請將您的迴應限制在HTML,javascript和activeX的範圍內。謝謝!

回答

2

僅供參考:DataTables有一個名爲TableTools的漂亮插件,可以將表格導出到客戶端的csv。這是使用Flash實現的。如果您對DataTables的過濾器滿意,我認爲這將是一個很好的解決方案。

http://www.datatables.net/extras/tabletools/

0

如果您從版本8開始使用IE,則可以使用data: URL。只需生成URL並使用location.href指向那邊。 CSV中的數據可以通過javascript和base64編碼生成。

+0

你可以給這樣的一個例子。我嘗試了相同的方法,但它似乎只適用於Chrome。這是我的嘗試http://stackoverflow.com/questions/14964035/how-to-export-javascript-array-info-to-csv-on-client-side – Sam007

-1

您可能想要考慮一種依賴字符串操作的方法。

一旦你有了這個數組,你可以把它變成一個JSON字符串。試試這個流行的輕量級庫(json2.js):

https://github.com/douglascrockford/JSON-js

例子:

text = JSON.stringify(['e', {pluribus: 'unum'}]); 
// text is '["e",{"pluribus":"unum"}]' 

你應該有類似

var dataString = '["rowindex",["value1","value2","value3"]]' 

在這一點上,你可以使用一些正則表達式替換在字符串上將其格式化爲任一風格。

相關問題