Apache poi HSSFWorkbook会覆盖XLS模板中的样式

时间:2014-04-29 16:24:11

标签: java excel apache-poi

我的HSSFWorkbook对象有问题。我有一个XLS模板,第一行是深灰色,下一行是浅灰色。在生成报告期间,我想要改变红色/蓝色的几个单元格(完美地工作)的背景颜色。但是在打电话之后:

HSSFCellStyle style = workbook.createCellStyle();
style.setFillBackgroundColor(...)

或:

HSSFCellStyle style = workbook.getCellStyleAt(0) [default style of the workbook]
style.setFillBackgroundColor(...)

整张纸的样式丢失了。标题变为紫色,其余单元变为深灰色。我喜欢紫罗兰,但我需要XLS的颜色不被改变。

Colours problem

简而言之,在我按照上述方式更改一个单元格的样式后,我的XLS模板中的样式不会被保留。

我没有想法。请帮忙。

Mateusz

1 个答案:

答案 0 :(得分:3)

我认为问题出在您的.xls电子表格中。您在模板上选择的样式与当前文件格式不兼容(并且电子表格可以转换为.xlsx,但您可能必须将实现更改为XSSFWorkbook)。 您可以通过打开模板来检查样式是否兼容,进行微小更改并保存 - 在您的情况下,警告应弹出样式将转换为最接近的等效项。

解决方案:修改电子表格并选择兼容的.xls格式或升级到.xlsx格式。