我对Apache有一些问题,一些帮助会很好!!
我想删除Excel工作表子部分中的颜色。要做到这一点,我尝试的第一件事是呈现我想要清除的单元格(假设只有第一行),并将它们的颜色设置为白色:
cell.getCellStyle().setFillForegroundColor(IndexedColors.WHITE.index);但是如果我这样做,一些没有呈现的单元格(比如第二行中的一个)的颜色也会更改为白色单元格。这很奇怪,因为变化的细胞不具有相同的前景颜色,所以我认为它们会有不同的样式。
因此,我尝试了另一种方法:
CellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(IndexedColors.WHITE.index);
cell.setCellStyle(style);这样做的目的是避免更改Excel工作表中不同单元格可能常见的样式。实际上,它解决了颜色问题,但是如果这样做,我就会在Excel表格中丢失不同的样式,而我只想删除一些颜色。
我正在使用一个通用的工作簿,我正在阅读一个xlsx (xls的相同问题),您知道怎么做吗?我很想问你,
发布于 2014-06-09 07:32:56
如果要删除颜色,那么将填充模式更改为NO_FILL可能是有意义的,而不是将颜色设置为白色,如下所示:
style.setFillPattern(CellStyle.NO_FILL)回到您的主要问题,您有两个处理单元格样式修改的选项:
CellUtil.setCellStyleProperty**方法修改样式CellUtil.setCellStyleProperty(cell, workbook, CellUtil.FILL_PATTERN, CellStyle.NO_FILL)
下面显示的示例代码:
CellStyle oldStyle = cell.getCellStyle();
CellStyle newStyle = workbook.createCellStyle();
newStyle.cloneStyleFrom(oldStyle);
newStyle.setFillPattern(CellStyle.NO_FILL);
cell.setCellStyle(newStyle);但是,在第二种情况下,您将为每个单元创建一个新的单元格样式,您可能会考虑重用一些已经更新的单元格样式,并实现某种类型的缓存(否则可能会导致性能问题并达到允许的样式限制)。
https://stackoverflow.com/questions/24105524
复制相似问题