0

我有一个 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 文件时,我注意到这些格式确实得到了实施。但是我需要按每个单元格的选项卡才能看到它生效。是否有替代或至少一种方法来模拟选项卡操作,以便在打开时格式化单元格?

4

1 回答 1

1

发现了什么问题。它的这一行: targetCell.setCellValue(request.getParameter("myNumber"));

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

忘记了数字 excel 单元格的格式正确,因为必须通过双精度数。

于 2012-07-10T02:00:49.483 回答