阿帕奇兴趣点 4.1。 XSSF 合并单元格边框
Apache POI 4.1. XSSF merged cells border
在旧版本中,您可以键入如下内容:
propertyTemplate.drawBorders(cellsRegionRange, BorderStyle.THICK, IndexedColors.YELLOW1.index, BorderExtent.OUTSIDE);
这会导致外部边框 - 甚至在合并的单元格周围,具有选定的颜色。
不幸的是,对于新版本的 POI,我似乎无法使用索引颜色,因为获取自定义 RGB 颜色索引的方法不起作用,并且被贬低或标记为仅测试。
因此,由于着色,我不得不放弃 propertyTemplate class。现在我知道如何使用 XSSFColor 构造函数和 XSSFCellStyle 为边框着色:
XSSFColor borderColorXSF = new XSSFColor(rgbB, null);
但我不知道如何将 XSSFCellStyle 应用于单元格的合并区域,我尝试了 RegionUtil,我认为它只会覆盖 XSSFCellStyle,所以一切都是黑色的,甚至是填充颜色。
所以我的问题是绕过 propertyTemplate class 的正确方法是什么?
我找到的唯一解决方案是遍历每个单元格,检查其边框是内边框还是外边框,然后相应地设置单元格样式边框。
我基本上自己写了一些 HSSF PropertyTemplate class 方法。
请注意,我发现您不能混合使用 HSSF 和 XSSF 方法或对象,因为即使程序运行无异常,它也会开始出现不可预测的行为。
在旧版本中,您可以键入如下内容:
propertyTemplate.drawBorders(cellsRegionRange, BorderStyle.THICK, IndexedColors.YELLOW1.index, BorderExtent.OUTSIDE);
这会导致外部边框 - 甚至在合并的单元格周围,具有选定的颜色。 不幸的是,对于新版本的 POI,我似乎无法使用索引颜色,因为获取自定义 RGB 颜色索引的方法不起作用,并且被贬低或标记为仅测试。
因此,由于着色,我不得不放弃 propertyTemplate class。现在我知道如何使用 XSSFColor 构造函数和 XSSFCellStyle 为边框着色:
XSSFColor borderColorXSF = new XSSFColor(rgbB, null);
但我不知道如何将 XSSFCellStyle 应用于单元格的合并区域,我尝试了 RegionUtil,我认为它只会覆盖 XSSFCellStyle,所以一切都是黑色的,甚至是填充颜色。
所以我的问题是绕过 propertyTemplate class 的正确方法是什么?
我找到的唯一解决方案是遍历每个单元格,检查其边框是内边框还是外边框,然后相应地设置单元格样式边框。 我基本上自己写了一些 HSSF PropertyTemplate class 方法。 请注意,我发现您不能混合使用 HSSF 和 XSSF 方法或对象,因为即使程序运行无异常,它也会开始出现不可预测的行为。