【发布时间】:2026-01-29 19:15:02
【问题描述】:
我使用以下代码为单元格设置背景颜色:
XSSFCellStyle cellStyle = (XSSFCellStyle) excelStyle.getCellStyle();
cellStyle.setFillForegroundColor(new XSSFColor(java.awt.Color.decode("#FFFF99")));
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
但它不适用于合并的单元格,无论我尝试设置什么,它总是变黑。 只有当我设置预定义的颜色时它才有效:
cellStyle.setFillForegroundColor(IndexedColors.CORAL.index);
颜色由用户定义,所以我不能使用IndexedColors。此外,我无法创建自定义调色板颜色(如 here 所述),因为我的工作簿类型为 SXSSFWorkbook,而不是 HSSFWorkbook。
如何设置合并单元格的背景颜色?
【问题讨论】:
-
当我不知道如何使用 Apache POI 时,我通常会在 Excel 中进行格式化,然后查看结果 XLSX 文件中存储的内容。您通常可以猜到您应该在 POI 中做什么 :) 只需将 XLSX 重命名为 ZIP 并查看内部。比较未合并和合并单元格的格式。
-
@HonzaZidek 在样式文件中我发现了一些差异,但仍然无法说出问题所在pastebin.com/Nk1Xz9Dp
-
您是否尝试过这里描述的所有内容:*.com/q/20561710/2886891?
-
@HonzaZidek,是的。这实际上是我现在正在做的事情
标签: java excel apache-poi