[問題] 有關Java Excel
前陣子有個需求,需要將UI上顯示的資訊(ex.JTable、JLabel、JFreeChart)
輸出至Xls檔,在網路上東找西找,找到了Java Excel
包一包後使用,沒問題。
最近增加了一項需求,需要將Txt檔同樣輸出至Xls檔
但這Txt檔算是蠻大的(都是n個欄位*n萬筆資料)
於是,就造成了記憶體不足的情況(問題1)
好吧!只好尋找別的解決方法!
後來選擇了用JDBC將Excel當成資料庫來使用
很好,可以使用,但有了(問題2)
最後…(問題3)出現了!!!
問題1: 當我新增資料至Xls檔時,新增了一堆Cell至Sheet時,這些Cell都是存在記憶體
直到最後workbook.write()時,才一次寫入至檔案,只能這樣子使用嗎?
無法自己控制哪些Cell要先寫入檔案,而不放在記憶體裡嗎?
問題2: 透過JDBC將Xls當做資料庫來使用,同樣要建立Table(也就是Sheet),
並設定其欄位型態,為何設定為varchar的欄位,在用Excel開啟Xls檔後,
他的欄位資料都會多加個「'」呢?(ex.男,就會變成'男)
問題3: 當我用JDBC將n欄*n萬筆資料,全部輸出至Xls檔後,但接下來,
我在別的功能裡,需要再新增Sheet到這個Xls檔,
但…卻在createWorkbook的時候出現記憶體不足!!!
我想請問的是,Java Excel開啟一個Xls檔後,是將其內的所有資料(Sheet、Cell)
全都放到記憶體嗎…?有可能是這樣子嗎?
以上…還煩請有經驗的前輩們指點一二…頭痛啊…頭痛…
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.170.85
推
03/29 00:41, , 1F
03/29 00:41, 1F
推
03/29 01:16, , 2F
03/29 01:16, 2F
推
03/29 01:43, , 3F
03/29 01:43, 3F
→
03/29 06:52, , 4F
03/29 06:52, 4F
推
03/29 09:19, , 5F
03/29 09:19, 5F
→
03/29 10:28, , 6F
03/29 10:28, 6F
推
03/29 10:46, , 7F
03/29 10:46, 7F
推
03/29 11:05, , 8F
03/29 11:05, 8F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):