我在工作表的单元格中有一个公式,如下所示. 这里的特殊之处在于,因为工作表名称是用日语编写的,所以它包含一个特殊字符:"[". 示例:Formula
当使用由ApachePoi提供的"valuateInCell(Cell)"函数时,它似乎不能处理该特殊字符.
参考代码如下.
case FORMULA: {
String formula = cell.getCellFormula();
try {
System.out.println(formula +" excute...");
evaluator.evaluateInCell(cell);
System.out.println(formula+" excute success...");
} catch (Exception e) {
System.out.println(String.format("Paste the value error in the Cell: %s", cell.getAddress()) + " :");
System.out.println(formula+" failed");
}
break;
}
运行结果示例: Result个
我try 了一些方法,如添加引号、斜杠,但似乎只是将公式转换为字符串. 我该如何处理这种问题呢?
额外:
这里的错误如果没有Have Try...Catch(或使用e.printStackTrace()):
org.apache.poi.ss.formula.FormulaParseException: Parse error near char 7 '【' in specified formula 'SUM(E4,【一日】!B2)'. Expected cell ref or constant literal
我想以某种方式在不影响Excel文件的情况下(如手动更改工作表的名称),但仍然可以在该Excel单元格中执行公式并获得结果.