java POI导出excel表时刷新公式遇到点问题
老李王 2014-07-16 02:28:39 一:
if(row.getCell(column).getCellType() == Cell.CELL_TYPE_FORMULA){
String formula = row.getCell(column).getCellFormula();
row.getCell(column).setCellFormula(formula);
}
如果刷新公式的代码是这样的,那么生成的excel表在打开的的时候就会报excel在xxx.xlsx文件中发现不可读取的内容。请问是否需要恢复此工作簿。点击是,就会出现:
“已删除的记录: /xl/worksheets/sheet4.xml 部分的 共享公式。已删除的记录:/xl/calcChain.xml 部分的 公式 (计算属性)”
二:
XSSFFormulaEvaluator.evaluateAllFormulaCells(wk);
或者
Row r=s.getRow(row);
Cell c=null;
FormulaEcaluator eval=null;
if(wb instanceof HSSFWorkbook)
eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb);
else if(wb instanceof XSSFWorkbook)
eval=new XSSFFormulaEvaluator((XSSFWorkbook) wb);
for(int i=r.getFirstCellNum();i<r.getLastCellNum();i++){
c=r.getCell(i);
if(c.getCellType()==Cell.CELL_TYPE_FORMULA)
eval.evaluateFormulaCell(c);
}
如果是直接刷新工作簿里面的所有公式 或者 计算公式保存结果,但不改变公式。
eclipse就会报错org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell
求众大神能给出原因和解决方法。