繁体   English   中英

如何在 Apache POI 中为合并单元格设置背景颜色

[英]How to set background color for merged cells in Apache POI

在此处输入图片说明

我使用以下代码为单元格设置背景颜色:

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 另外,我无法创建一个自定义的调色板颜色(如解释在这里),因为我的工作簿型SXSSFWorkbook ,不HSSFWorkbook

如何设置合并单元格的背景颜色?

我已经尝试过以下步骤并为我工作。

  1. 创建工作表
  2. 创建一行
  3. 使用 RGB 值创建具有自定义颜色的样式
  4. 循环创建单元格 > 创建单元格并将值添加到将出现在后续合并单元格的单元格 0 中,将样式应用于每个单元格,
  5. 最后合并单元格 > 假设您要将单元格 0 合并到第 0 行的单元格 3 使用sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 3));

经过大量调试后,我发现导致合并单元格始终为黑色的问题低于线。

CellUtil.setAlignment(sheetSummary.getRow(0).getCell(4), HorizontalAlignment.CENTER_SELECTION);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM