gpt4 book ai didi

java - 写入 Excel 文件模板不遵循定义的单元格数据格式

转载 作者:行者123 更新时间:2023-12-01 15:17:42 25 4
gpt4 key购买 nike

我有一个 Excel 文件,其单元格具有不同的数据格式,从简单的货币格式 $#,##0.00 ($1,200.00) 到更复杂的货币格式。

问题是当我写入这些单元格时,不遵循格式。因此,如果我在货币格式的单元格中输入一个值,该值将显示而不带格式:

例如: 我输入了1234。我期望的是 $1,234.00 (如 Excel 单元格中所定义)。我得到的仍然是 1234

在我的尝试过程中,我什至尝试将单元格自己的格式应用到自身

这是我使用的代码:

ServletContext context = getServletContext();
InputStream inp = context.getResourceAsStream("/WEB-INF/MyExcel.xlsx");

Workbook wbTemp = new XSSFWorkbook(inp);
Sheet wbTempSheet = wbTemp.getSheetAt(0);

Cell targetCell = wbTempSheet.getRow(0).getCell(0);
targetCell.setCellValue(request.getParameter("myNumber"));

//i even tried reapplying the cell's own format to itself
CellStyle cs = targetCell.getCellStyle();
String df = cs.getDataFormatString();
System.out.println(df);
cs.setDataFormat(wbTemp.createDataFormat().getFormat(df));
targetCell.setCellStyle(cs);

检查 Excel 文件后,我注意到这些格式确实已实现。但是我需要按每个单元格tab才能看到它生效。是否有替代方法或至少有一种方法来模拟选项卡操作,以便在打开时格式化单元格?

最佳答案

发现问题所在了。这是这一行:targetCell.setCellValue(request.getParameter("myNumber"));

应该是:targetCell.setCellValue(Double.parseDouble (request.getParameter("myNumber") ));

忘记了数字 Excel 单元格的格式必须正确,因为必须传递 double 。

关于java - 写入 Excel 文件模板不遵循定义的单元格数据格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11405490/

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