JAVA 向带有公式的excel写入数据,获取公式计算结果
public static void main(String[] args) throws Exception {
String url = "C:\\Users\\LQT\\Desktop\\test.xlsx";
InputStream in = null;
try {
File file = new File(url);
if (!file.exists()) {
throw new Exception("文件不存在!");
}
in = new FileInputStream(file);
// 读取整个Excel
XSSFWorkbook workbook = new XSSFWorkbook(in);
// 获取第一个表单Sheet
XSSFSheet sheetAt = workbook.getSheetAt(0);
XSSFRow titleRow = sheetAt.getRow(0);
titleRow.createCell(0).setCellValue(1);
titleRow.createCell(1).setCellValue(9);
sheetAt.setForceFormulaRecalculation(true);
//后面使用它来执行计算公式 核心代码
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
CellReference cellReference = new CellReference("C1");
Row row = sheetAt.getRow(cellReference.getRow());
Cell cell = row.getCell(cellReference.getCol());
CellValue cellValue = evaluator.evaluate(cell);
System.out.println(cellValue.getNumberValue());
}catch (Exception e){
e.printStackTrace();
}finally {
try {
if(in != null){
in.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
excel 文件可以自己创建,上面示例公式为:C1=SUM(A1:B1);