无法设置填充颜色 Apache POI Excel 工作簿

Posted

技术标签:

【中文标题】无法设置填充颜色 Apache POI Excel 工作簿【英文标题】:Can't Set Fill Color Apache POI Excel Workbook 【发布时间】:2013-06-19 01:46:46 【问题描述】:

我一遍又一遍地扫描这个论坛并尝试了这里提到的所有方法,但仍然无法让 Apache POI 更改以填充我的 excel 文档的背景颜色。

这是我的代码:

errorOccured = true;
XSSFCellStyle cs = workbook.createCellStyle();
cs.setFillBackgroundColor(IndexedColors.RED.getIndex());
row.getCell(0).setCellStyle(cs);

你知道为什么这行不通吗?让row.getCell(0) 填充红色(背景色)的正确方法是什么?

谢谢!

【问题讨论】:

【参考方案1】:

使用前景色代替背景色。

 errorOccured = true;
 XSSFCellStyle style = workbook.createCellStyle();
 style.setFillForegroundColor(IndexedColors.RED.getIndex());
 style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
 row.getCell(0).setCellStyle(style);

这将用红色填充单元格背景颜色。

【讨论】:

感谢您的回答,但这仍然不适合我。我不知道为什么。我处于调试模式,我确认代码已执行,但它不会更改 .xlsx 工作簿中的任何颜色。有任何想法吗?这与我试图变红的单元格已经用黄色填充填充这一事实有关吗? Richie:为了查看 excel 表中的变化,您需要为此执行写入命令。请确认 workbook.write(fileoutputstream) 命令在调试模式下是否执行过? 我为延迟响应表示歉意。这就是问题所在!我没有意识到你有重写文件!非常感谢,Rich。 这行得通,虽然为了改变背景而改变前景有点奇怪 setFillPattern() 是一个关键元素。

以上是关于无法设置填充颜色 Apache POI Excel 工作簿的主要内容,如果未能解决你的问题,请参考以下文章

java集成poi报表,导出xlsxlsx,表头,内容,sheet动态数据填充,局部单元格颜色字体设置

使用Apache POI处理excel公式不更新的解决办法

Apache poi excel颜色单元问题

Java从Apache poi获取excel单元格背景颜色

java 关于poi读取excel颜色

POI对Excel单元格进行颜色设置