iT邦幫忙

0

php 將 html table 匯出成excel

各位先進好!

小弟近日做匯出excel時遇到了一些問題,在試過一些方法後還是沒辦法成功的匯出我需要的結果

還請各位先進指導或是給予意見,小弟先謝過了:D~

方法一

<script type="text/javascript">
	function exportExcel(){  
		var html = '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8" /><title>Excel</title>';  
		html += '';
		html += document.getElementById('div_excel').innerHTML + '';
		window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html));
		window.location.reload();
	}  
</script>

運用此方法是可以正常匯出excel,但是遇到資料筆數大於200筆的情況就無法匯出excel了(不知道為什麼),以上都是使用chrome才會發生的問題,但當我用safari時就可以正常匯出來@@...

方法二
我運用這套jquery http://goo.gl/P2dPN0 來做匯出excel,它一樣可以正常匯出但是還是遇到相同的問題,就是筆數大於200筆的情況無法匯出excel。

還請各位先進能給予指點,謝謝。

看更多先前的討論...收起先前的討論...
wiseguy iT邦超人 1 級 ‧ 2016-01-14 00:44:15 檢舉
標題寫【php 將 html table 匯出成excel】,但內文跟 php 一點關係也沒有耶暈
fillano iT邦超人 1 級 ‧ 2016-01-14 09:31:33 檢舉
我看到也在納悶XD,正在想php不是有PHPExcel可以用嘛...
jojolin iT邦新手 5 級 ‧ 2016-01-14 09:40:40 檢舉
各位大大抱歉 我標題下的不好...sorryOrz

程式確實是用php寫的不過...不是在匯出excel這邊...抱歉抱歉倒
外獅佬 iT邦大師 1 級 ‧ 2016-01-14 09:52:00 檢舉

data:application/vnd.ms-excel


這個遇到IE全死....

jojolin iT邦新手 5 級 ‧ 2016-01-14 10:01:40 檢舉
感謝大大回覆

恩..這部分我在其他站上看過 確實也是不可行搖頭

2 個回答

10
wiseguy
iT邦超人 1 級 ‧ 2016-01-14 10:55:00
最佳解答

這個問題我大概十年前就遇過,需求大致是:
有個資料表,既要可以在網頁上呈現,又可以匯出(下載)為 Excel 檔。
本來程序是在後端 php 從 DB 撈出資料後,即時用參數判斷該產生 html 或 CSV 就行了。不過有個問題是,萬一這個資料表是個統計資料表,查詢很操 DB,或是很慢、時間很久,那 user 頻繁地的操作很可能會把 DB 給癱瘓。
第一種想法大概就是像發問者,希望匯出動作不要再撈一次 DB,直接由 web 產生就好。但問題會卡在 javasript 能力有限,困難重重。
第二種想法是把表格html當成資料,POST 到後台的 php,由 php 將 html 轉成 CSV,再 download,這行為很簡單,也沒什麼安全問題,只不過比較蠢一點、耗一點頻寬。
第三種是 php 在 DB 撈出資料後,先暫存為 CSV (或其它格式如 XML 也行),再由 CSV 產生 html 顯示。若 user 點擊下載連結,則直接下載 CSV 即可。這方法是第二種改良版,但 CSV 暫存必須另外考量清除問題。
以上供參考。

jojolin iT邦新手 5 級 ‧ 2016-01-14 11:41:16 檢舉

感謝大大給予的意見,獲益良多! 謝謝

目前就先嘗試第二和第三種方法@@ 忙

6
fillano
iT邦超人 1 級 ‧ 2016-01-14 09:34:17
  1. where is "PHP"?
  2. 網址列有長度限制的...
  3. 既然要問PHP,請google一下PHPExcel
jojolin iT邦新手 5 級 ‧ 2016-01-14 10:07:25 檢舉

感謝大大回答!

1.標題取的不好抱歉~“~Orz
2.原來是這個問題!瞭解
3.之前有查過但是想說用看看其他方法,結果都不行...看來還是得回頭用PHPExcel

P.S請問大大除了PHPExcel之外還有其他方法可以使用嗎疑惑

感謝大大!!謝謝

fillano iT邦超人 1 級 ‧ 2016-01-14 13:12:48 檢舉

PHPExcel是最成熟的方案,使用也很簡單阿。

你用的這個方式,基本上就是...內容是html,但是騙Excel說這是Excel,只是剛好Excel吃這套。其實你把它移到後端用PHP產生也是可以的,並不是得在前端做。

我要發表回答

立即登入回答