Java 如何摆脱;要将更改保存到';Test.xlsx'&引用;使用POI将公式单元格插入Excel并从文件系统打开/关闭时
我正在使用POI将数字单元格写入新的excel文件“Test.xlsx”。 我首先插入两行,其中两列各有值:Java 如何摆脱;要将更改保存到';Test.xlsx'&引用;使用POI将公式单元格插入Excel并从文件系统打开/关闭时,java,excel,apache-poi,Java,Excel,Apache Poi,我正在使用POI将数字单元格写入新的excel文件“Test.xlsx”。 我首先插入两行,其中两列各有值: 第1行-->10(单元格A1),20 第2行-->15、20(单元格B2) 对于第3行第1列,我设置了公式SUM(A1:B2) 在我的实际实现中,我使用用户输入和循环动态创建这些表、行和单元格,我在这里没有使用这些循环。这是我的代码的基本版本 现在,在我运行这个程序之后,我看到文件被创建了。我打开文件,看到单元格A3(公式单元格)对应的单元格的值为65。但是,当我关闭该文件时,会得到
第1行-->10(单元格A1),20
第2行-->15、20(单元格B2)
SUM(A1:B2)
在我的实际实现中,我使用用户输入和循环动态创建这些表、行和单元格,我在这里没有使用这些循环。这是我的代码的基本版本
现在,在我运行这个程序之后,我看到文件被创建了。我打开文件,看到单元格A3(公式单元格)对应的单元格的值为65。但是,当我关闭该文件时,会得到提示“是否要将更改保存到create.xlsx?”?
我在单击上面提示的保存之前和之后解压了create.xlsx,并看到公式单元格在MySheet.xml中的标记F和V具有相同的值。
我还注意到,在手动保存excel文件之前,xml文件calcChain.xml已丢失,并且在手动保存后会出现
当我关闭excel时,是否遗漏了一些可以消除提示的内容?任何指点都将不胜感激
XSSFWorkbook wb = null;
String absPath = "C:\excel\Test.xlsx";
File f2 = createFileIfDirExist(absPath); //method will return handle if file created successfully
if (f2 != null) {
wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("MySheet");
if (sheet != null) {
XSSFRow row0 = sheet.createRow(0);
XSSFCell cell0 = row0.createCell(0);
cell0.setCellValue(10);
XSSFCell cell1 = row0.createCell(1);
cell1.setCellValue(20);
XSSFRow row1 = sheet.createRow(0);
XSSFCell cell2 = row1.createCell(0);
cell2.setCellValue(15);
XSSFCell cell3 = row1.createCell(1);
cell3.setCellValue(20);
XSSFRow row2 = sheet.createRow(0);
XSSFCell cell4 = row2.createCell(0);
cell4.setCellType(Cell.CELL_TYPE_FORMULA);
cell4.setCellFormula("SUM(A1:B2)");
FileOutputStream outFile = new FileOutputStream(new File(f2));
wb.write(outFile);
outFile.close();
f2.close();
// call method to evaluate formulaEval.evaluateFormulaCell(cell) on every cell in sheet.
}
}