gpt4 book ai didi

Java/Apache POI - 单元格上的公式设置不正确

转载 作者:行者123 更新时间:2023-12-02 11:15:41 24 4
gpt4 key购买 nike

我有一个 Java 代码,我在其中创建了一个新的 .xlsm 文件,并创建了另一个空 .xlsm 文件格式的镜像。我的问题是当我在创建的新 .xlsm 的特定单元格中设置公式时。当我打开文件时,单元格显示:#NAME?。但是当我在单元格中按回车键时,公式会正确显示。当我出去时,这个公式就起作用了。

为什么会发生这种情况?

Java代码如下:

public static String main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection connect = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/database" ,
"user" ,
"password"
);

Statement statement = connect.createStatement();
ResultSet resultSet = statement.executeQuery("select * from `table`");
FileInputStream file = new FileInputStream(new File("C:\\Users\\Desktop\\Folder1.xlsm"));
XSSFWorkbook wb = new XSSFWorkbook(OPCPackage.open(file));
XSSFSheet spreadsheet = wb.getSheet("Planilha1");

XSSFRow row = spreadsheet.createRow(1);
XSSFCell cell;
int i = 1;

while(resultSet.next()) {
row = spreadsheet.createRow(i);
cell = row.createCell(1);
cell.setCellValue("");
cell = row.createCell(2);
cell.setCellValue(resultSet.getString("column1"));
i++;
}

XSSFRow linhacontador = spreadsheet.getRow(1);
if (linhacontador == null) {
linhacontador = spreadsheet.createRow(1);
}

XSSFCell colunacontador = linhacontador.getCell(34);
if (colunacontador == null) {
colunacontador = linhacontador.createCell(34);
}

colunacontador.setCellType(XSSFCell.CELL_TYPE_FORMULA);
colunacontador.setCellFormula("CONT.SE(AH:AH, \"<>\")");

CellRangeAddress range = new CellRangeAddress(1, i-1, 25, 25);
spreadsheet.addMergedRegion(range);


FileOutputStream out = new FileOutputStream(new File("C:\\Users\\Desktop\\exceldatabase.xlsm"));
wb.write(out);
out.close();
connect.close();

return "Worksheet Done!";
}

显然我的问题在这里:

   colunacontador.setCellType(XSSFCell.CELL_TYPE_FORMULA);
colunacontador.setCellFormula("CONT.SE(AH:AH, \"<>\")");

最佳答案

在这种情况下,应该用英语书写。就像 CONTSE 将是:COUNTIF。 SOMA 将是 SUM.. 等等。只需搜索英文版本的公式即可。

关于Java/Apache POI - 单元格上的公式设置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50299062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com