用java读/写带公式的excel的问题
有一个公式逻辑很复杂的excel,现在想在页面上做成自动的,就是从页面上得到的一些值通过poi或者jxl给写进excel里,然后通过那些公式的计算,再从excel里把结果取出来,避免以前那样要自己手动打开excel来计算。
现在的问题是,服务器是linux的,JDK是1.4的,所以就不能用HSSFFormulaEvaluator.evaluateAllFormulaCells(好像是3.X以后才加上的方法)方法来实现整个工作簿公式的刷新,而一个单元格一个单元格刷新的话因为里面有IF啊这种判断的,又会报错;而用jxl呢,值放进去以后,必须要打开文件,他的公式才会去计算,否则只能取出来计算前的值。
那么如果想取出来计算后的值的话,通过poi可以实现吗?还是通过jxl赋值,然后再用程序控制打开再马上关闭那个excel文件,达到让公式运行的目的(linux下貌似不行吧)?
向各位求教了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
按LZ你的意思就是通过输入一堆值到EXCEL来计算然后得去一堆值返回..EXCEL只是起到一个如function般的作用...难道我理解有错误?
理解了作用后然后直接在java里写方法是一个最佳方法了...直接忽视掉excel...
要不你像楼上说的..把excel的公式用jxl算...你的excel模板时固定的反应了一个业务逻辑的吧?
按LZ你的意思就是通过输入一堆值到EXCEL来计算然后得去一堆值返回..EXCEL只是起到一个如function般的作用...难道我理解有错误?
理解了作用后然后直接在java里写方法是一个最佳方法了...直接忽视掉excel...
要不你像楼上说的..把excel的公式用jxl算...你的excel模板时固定的反应了一个业务逻辑的吧?
NumberFormat dp3 = new NumberFormat("#.###"); // 设置单元格里面的数字格式
WritableCellFormat dp3cell = new WritableCellFormat(dp3);
dp3cell.setWrap(true);
Formula f = new Formula(2, 9, "(a10+b10)/2", dp3cell); // 设置C10公式
sheet.addCell(f);
f = new Formula(3, 9, "SUM(A10:B10)", dp3cell);// 设置D10公式
sheet.addCell(f);
jxl.jar 有支持公式
NumberFormat dp3 = new NumberFormat("#.###"); // 设置单元格里面的数字格式
WritableCellFormat dp3cell = new WritableCellFormat(dp3);
dp3cell.setWrap(true);
Formula f = new Formula(2, 9, "(a10+b10)/2", dp3cell); // 设置C10公式
sheet.addCell(f);
f = new Formula(3, 9, "SUM(A10:B10)", dp3cell);// 设置D10公式
sheet.addCell(f);
jxl.jar 有支持公式
为何那个公式不能直接做成个function 在java里计算呢?
为何那个公式不能直接做成个function 在java里计算呢?