此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【vacuumboy】截止到2008-07-15 09:59:24的历史汇总数据(不包括此帖):
发帖的总数量:12                       发帖的总分数:590                      每贴平均分数:49                       
回帖的总数量:71                       得分贴总数量:38                       回帖的得分率:53%                      
结贴的总数量:12                       结贴的总分数:590                      
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:0                        未结的总分数:0                        
结贴的百分比:100.00%               结分的百分比:100.00%                  
无满意结贴率:0.00  %               无满意结分率:0.00  %                  
敬礼!

解决方案 »

  1.   

    这个是正常的啊,你的做法也没错,生成的公式POI只是按照照这种格式去生成而已,其实excel的内部机制POI是不接触的,所以这里POI只是给这个单元格生成了公式,最终计算还是要由excel自己执行。由于excel执行这个些公式的条件是必须这些单元格要有change这个事件发生,所以你必须移动上去,然后再移开才触发计算这个事件啊。
      

  2.   

    关键是只要公式不引用到其他的工作表,生成的EXCEL的那些带公式的单元格可以正确的计算出结果啊。
      

  3.   

    基于java 的poi Excel开发,poi支持的不是很好.简单的合计等等没设么问题.java的poi excel和C#的excel我都开发过.比较一下建议,是否在代码控制单元格的时候,先在excel中"定位"该输入公式的单元格,输入公式,然后转移"定位"的单元格.
    实现你说的"移开才触发"的效果.(我是基于DOTNET的C#开发Excel中的经验而谈的)
      

  4.   

    是这样的,如果公式是sum(d2,c2)导出的excel是没有问题的,但如果是sum(其他工作表!d2,其他工作表c2)那就不行了,简单的说只要公式里引用的单元格不在当前工作表就会出现这样的问题。至于模拟转移定位是没有用的,不是说简单的把焦点移上去然后移开就行了,而必须双击它,让它的公式显示出来以后再用tab键把焦点移开才行的
      

  5.   


    "至于模拟转移定位是没有用的,不是说简单的把焦点移上去然后移开就行了,而必须双击它,让它的公式显示出来以后再用tab键把焦点移开才行的"??我在C#excel开发中的这种操作不是你说的"模拟转移定位",确实是代码控制单元格的公式输出结果,相当于你双击单元格,甚至测试的时候我可以用程序控制打开excel,可视化的测试察看excel,看到在excel中如何填入数据,布局的等等.不过都是微软提供的操作excel的方法.不过java poi开发时,没试过你要的效果,而且poi的版本更新太慢了,感觉跟不上我们开发的需求.
      

  6.   

    poi没有实现微软excel的那些接口实现.
    实在不行你也可以java 调用C#处理excel来实现(用微软的office生成需要引用的包文件生成excel)
      

  7.   

    wb.getSheetAt(sheetNum).setForceFormulaRecalculation(true);