java黑框框_java-在应用PropertyTemplate边框时,Apache POI用黑...

我正在编写一个程序,该程序应该使用属性模板来制作带有填充为橙色,给定文本和给定边框的一些单元格的Excel电子表格.我已经成功地在HSSF中编写了用于执行此操作的代码,但是我现在正在使用XSSF,并且无法使其正常工作.

发生的是单元格被正确的橙色填充,文本也正确地进入了单元格,但是应用PropertyTemplate会使橙色单元格变为黑色.有谁知道解决这个问题的方法吗?

这是我的代码.

XSSFCellStyle orangeFillStyle = wb.createCellStyle();

orangeFillStyle.setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 192, 0)));

orangeFillStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

然后有一大堆代码/算法来找出哪些单元格要填充橙色,哪些单元格要输入文本.我使用以下代码突出显示单元格:

currCell.setCellStyle(orangeFillStyle);

工作表创建的最后是PropertyTemplate(边界)代码:

BorderStyle dividerStyle = BorderStyle.THIN;

PropertyTemplate borderTemplate = new PropertyTemplate();

borderTemplate.drawBorders(new CellRangeAddress(0, 0, 0, 13), dividerStyle, BorderExtent.BOTTOM);

borderTemplate.drawBorders(new CellRangeAddress(0, 0, 1, 13), dividerStyle, BorderExtent.TOP);

borderTemplate.drawBorders(new CellRangeAddress(0, rowI, 1, 13), dividerStyle, BorderExtent.VERTICAL);

borderTemplate.drawBorders(new CellRangeAddress(rowI, rowI, 0, 13), dividerStyle, BorderTextent.BOTTOM);

borderTemplate.applyBorders(sheet);

如果我注释掉borderTemplate.applyBorders(sheet);线,填充颜色看起来很好.显然,如果这样做,我的工作表上没有任何边框.就像我不能同时具有自定义填充颜色和边框一样.有谁知道为什么会这样或如何解决?

我会注意到,如果我使用IndexedColor而不是自定义颜色,则填充和边框就可以了.唯一的问题是我不喜欢任何索引颜色.这是我用于IndexedColor的代码:

XSSFCellStyle orangeFillStyle = wb.createCellStyle();

orangeFillStyle.setFillForegroundColor(IndexedColors.ORANGE.getIndex());

orangeFillStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值