微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache POI 4.1 XSSF合并单元格边框

如何解决Apache POI 4.1 XSSF合并单元格边框

在旧版本中,您可以输入以下内容

propertyTemplate.drawBorders(cellsRegionRange,BorderStyle.THICK,IndexedColors.YELLOW1.index,BorderExtent.OUTSIDE);

这将导致外部边框-甚至在合并的单元格周围具有选定的颜色。 不幸的是,在新版本的POI中,我似乎无法使用索引颜色,因为获取自定义RGB颜色索引的方法不起作用,并且被贬低或仅标记为“测试”。

因此,由于着色,我不得不删除propertyTemplate类。现在,我知道如何使用XSSFColor构造函数和XSSFCellStyle为边框着色:

XSSFColor borderColorXSF = new XSSFColor(rgbB,null);

但是我不知道如何将XSSFCellStyle应用于单元格的合并区域,我尝试了RegionUtil,我认为结果只会覆盖XSSFCellStyle,因此所有内容都是黑色,甚至是填充颜色。

所以我的问题是解决propertyTemplate类的正确方法是什么?

解决方法

我发现的唯一解决方案是遍历每个单元格,检查其边框是否为“内部”或“外部”,并相应地设置单元格样式的边框。 我基本上已经自己写了一些HSSF PropertyTemplate类方法。 请注意,我发现您不能混用HSSF和XSSF方法或对象,因为即使程序无例外运行,它也开始表现出不可预测的行为。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。