【发布时间】:2020-12-14 08:31:49
【问题描述】:
我是 Java 编程新手,这是我的第一篇文章,所以希望这是一个有效的问题。我已经搜索了档案,但找不到合适的答案。
我的班级正在阅读和验证电子表格。错误的单元格被设置为红色背景的样式,有效的单元格被赋予没有背景的样式。这一切正常,直到遇到日期单元格。 setCellStyle 语句似乎正在清除日期格式。谁能告诉我如何防止这种情况发生?
因此,在 Excel 中查看单元格开始时,它显示 25/08/20。
在我的程序中将样式更新为背景红色,然后返回到 Excel 中,单元格显示为红色,但带有一个像 92345678.0000 这样的数值(我现在不记得确切的值了)。
以下是相关的代码:
XSSFCellStyle styleBad = wb.createCellStyle();
XSSFCellStyle styleGood = wb.createCellStyle();
styleGood.setFillPattern(FillPatternType.NO_FILL);
styleBad.setFillForegroundColor(IndexedColors.RED.getIndex());
styleBad.setFillPattern(FillPatternType.SOLID_FOREGROUND);
if (!validateCell(cell, tca[cx], cellValues)) {
cell.setCellStyle(styleBad);
errorMessage += ("Cell " + (cx + 1) + " " + cellValues.cellMessage + ". ");
wbValid = false;
}
else {
cell.setCellStyle(styleGood); Mucks up date formatting??
}
【问题讨论】:
-
单元格样式包括数据格式。所以,你需要复制数据格式模式
标签: java excel date apache-poi