我对Apache POI有一些问题,一些帮助会很好!!
我想删除Excel工作表子部分中的颜色 . 为此,我尝试的第一件事是渲染我想要清理的单元格(仅说第一行中的一个)并将其颜色设置为白色:
cell.getCellStyle().setFillForegroundColor(IndexedColors.WHITE.index);
但是,如果我这样做,一些未渲染的单元格(比如第二行中的一个)的颜色也会变为白色单元格 . 这很奇怪,因为改变的细胞没有相同的前景色,所以我认为它们会有不同的风格......
因此,我尝试了另一种方式:
CellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(IndexedColors.WHITE.index);
cell.setCellStyle(style);
这个想法是为了避免改变Excel工作表中不同单元格可能常见的样式 . 实际上,它解决了颜色问题,但如果我这样做,我会松开Excel表格中的不同样式,而我只想删除一些颜色......
我正在使用通用工作簿,我正在阅读xlsx(与xls相同的问题)你知道怎么做吗?很多,问候,
1 回答
如果要删除颜色,那么将填充图案更改为
NO_FILL
可能是有意义的,而不是将颜色设置为白色,如下所示:回到你的主要问题,你有2个处理细胞样式修正的选项:
CellUtil.setCellStyleProperty(cell, workbook, CellUtil.FILL_PATTERN, CellStyle.NO_FILL)
示例代码如下所示:
但是在第二种情况下,您将为每个单元格创建一个新的单元格样式,您可能会考虑重用一些已更新的单元格样式并实现某种缓存(否则可能会导致性能问题并达到允许的样式限制) .