作者kojinvhfsk (野炮蕃薯)
看板java
标题[问题] 有关Java Excel
时间Sat Mar 29 00:19:57 2008
前阵子有个需求,需要将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
1F:推 PsMonkey:总觉得... 你的需求很... 不合理 XDXD 03/29 00:41
2F:推 kyoby:拜托用一个database吧...都几千几万了...mysql不要钱的... 03/29 01:16
3F:推 qrtt1:java api产生的xls通常不会格式太新,column有256栏限制.注意 03/29 01:43
4F:→ kojinvhfsk:呵呵…无奈啊,这是使用者指定的需求XD 03/29 06:52
5F:推 qrtt1:难道登入月球列入需求也要答应吗@@? 03/29 09:19
6F:→ kojinvhfsk:楼上…你的问题我实在不知如何回答… 03/29 10:28
7F:推 godfat:qrtt1 大让我想到发射火箭的问题... XDD 03/29 10:46
8F:推 qrtt1:俺的意义是说, 要表明做不到的事. 研商双方可接受的结果 03/29 11:05