看板 java 關於我們 聯絡資訊
前陣子有個需求,需要將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
PsMonkey:總覺得... 你的需求很... 不合理 XDXD 03/29 00:41
kyoby:拜托用一個database吧...都几千几万了...mysql不要錢的... 03/29 01:16
qrtt1:java api產生的xls通常不會格式太新,column有256欄限制.注意 03/29 01:43
kojinvhfsk:呵呵…無奈啊,這是使用者指定的需求XD 03/29 06:52
qrtt1:難道登入月球列入需求也要答應嗎@@? 03/29 09:19
kojinvhfsk:樓上…你的問題我實在不知如何回答… 03/29 10:28
godfat:qrtt1 大讓我想到發射火箭的問題... XDD 03/29 10:46
qrtt1:俺的意義是說, 要表明做不到的事. 研商雙方可接受的結果 03/29 11:05