★200分!!急★Java使用POI,读计算公式值时出现的一个问题.请各位进来看看.
有一excel文件,
A1 = 10
A2 = 20
A3 = a1+a2;
使用POI的getNumericCellValue()取得A3的值为30,没有问题.
但是现在我需要用POI向A1,A2写入值.
使用POI的setCellValue()向A1,A2分别写入20,30,
再使用getNumericCellValue()取得A3的值仍为30!也就是计算结果没有更新
只有打开Excel文件,并保存,才能取得正确的计算结果,50.
请问:
1. 有没有不用打开Excel文件,直接取得修改后计算结果的方法.
2. 或者请提供能够用Java关闭Excel并保存的方法.
3. 或者有其他的解决方法,实现下面的流程
向A1,A2写入数值,从A3取得计算结果,中途不要打开Excel.
有代码最好.
谢谢各位了,解决了另开贴放分答谢.
问题点数:200、回复次数:27Top
1 楼xch28(①日蚀)回复于 2005-01-07 10:09:26 得分 0
另外,让我解析公式,然后自己算的方法就算了,因为公式很复杂,而且将来可能会变.Top
2 楼greenmars2004(火球)(业余程序员)(我会的不多,不过都可以告诉你)回复于 2005-01-07 10:22:28 得分 15
UPTop
3 楼myth822(↑八月的吟游者↑)回复于 2005-01-07 10:47:48 得分 5
不太明白你的意思,如果只在程序上更改值,不往excel中写,你计算的时候读取的是excel的值,那肯定不会变的,要取得a3的值,干脆直接算就行了!Top
4 楼xch28(①日蚀)回复于 2005-01-07 11:05:58 得分 0
问题是要求 往Excel中写值, 并且通过Excel自己的公式计算.然后读取某一个Cell来取得计算后的值
另外,setCellValue()后,Excel中A1,A2的值已经被改变了.Top
5 楼xch28(①日蚀)回复于 2005-01-07 12:09:00 得分 0
自己up下.Top
6 楼luojx(大鱼儿)回复于 2005-01-07 12:17:08 得分 15
我觉得你应该在setCellValue()后,再将A3重新运行一下
就是A3=A1+A2
之后再getNumericCellValue()取值就行了Top
7 楼the_marine()回复于 2005-01-07 12:21:03 得分 15
gz!Top
8 楼xch28(①日蚀)回复于 2005-01-07 12:21:54 得分 0
楼上:
恩,我的意思就是想问怎么再运行一下A3的公式?
我试着向A3重新写入公式,一样不行.Top
9 楼xch28(①日蚀)回复于 2005-01-07 12:23:54 得分 0
确切的说: 向A3重新写入公式后, 取得的值就变成0.0了.Top
10 楼xch28(①日蚀)回复于 2005-01-07 13:06:12 得分 0
自己Up下,期待达人Top
11 楼kerosun()回复于 2005-01-07 13:08:54 得分 15
markTop
12 楼thomas_20(执子之手,与子偕老)回复于 2005-01-07 13:51:12 得分 15
mark
upTop
13 楼joyaga(joyaga)回复于 2005-01-07 13:58:34 得分 15
帮你 顶了 这个没研究过共同关注Top
14 楼yejian8012(晴天)回复于 2005-01-07 14:02:20 得分 15
我用过POI但是没用过公式,估计是少了一个refresh步骤吧,那你打开这个文件直接看A3的值变了吗?Top
15 楼xch28(①日蚀)回复于 2005-01-07 14:17:11 得分 0
楼上:
打开文件A3的值就变化了,但是需要点保存,才能把计算后的值保存到文件.
恩, 我也是觉得少了refresh(或叫执行公式)的步骤,
正在看文档, 不过没有线索.
期待达人Top
16 楼xch28(①日蚀)回复于 2005-01-07 14:47:53 得分 0
或者谁知道, 怎么做才能 在打开Excel时, 就执行一次保存?Top
17 楼xch28(①日蚀)回复于 2005-01-07 15:31:54 得分 0
再Up下...Top
18 楼hanbing2000()回复于 2005-01-07 17:17:35 得分 15
up........Top
19 楼hanbing2000()回复于 2005-01-07 17:18:14 得分 15
up........Top
20 楼xch28(①日蚀)回复于 2005-01-07 19:35:48 得分 0
CSDN......没人了,再upTop
21 楼xch28(①日蚀)回复于 2005-01-07 20:41:20 得分 0
再up下,走人。Top
22 楼xch28(①日蚀)回复于 2005-01-08 19:47:21 得分 0
UP!!!!!!Top
23 楼OfThOfTh(要经常思考人生)回复于 2005-01-08 19:53:07 得分 15
markTop
24 楼takecare(大厅)回复于 2005-01-10 10:59:20 得分 15
不会,帮不上忙了。呵呵Top
25 楼zsh168(zsh168)回复于 2005-01-10 11:14:35 得分 0
帮你顶Top
26 楼xch28(①日蚀)回复于 2005-01-20 10:55:28 得分 0
该贴已经转移到非技术区.
现在散分咯Top
27 楼easonfang()回复于 2005-01-20 15:58:41 得分 30
接接分Top




