Apache Poi 实现导出excel表格 合并区域边框未完全显示的问题

1、创建行及对应单元格,并合并行或列,其中cellStyle设置边框投屏top、bottom、left、right;

复制代码
Row row=sheet.createRow(rowIndex);

Cell cell=row.createCell(colIndex);
cell.setCellValue("测试");
cell.setCellStyle(cellStyle);

CellRangeAddress region = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(region);

此时导出的excel表格样式显示如图。

2、解决方法:采用RegionUtil设置合并区域的边框

复制代码
CellRangeAddress region = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
sheet.addMergedRegion(region);

//合并区域添加边框
RegionUtil.setBorderTop(BorderStyle.THIN, region, sheet);
RegionUtil.setBorderBottom(BorderStyle.THIN, region, sheet);
RegionUtil.setBorderLeft(BorderStyle.THIN, region, sheet);
RegionUtil.setBorderRight(BorderStyle.THIN, region, sheet);

理论上采用上述方式设置合并区域的边框是可用的,但发现导出的表格合并区域还是缺少边框。表格显示如图。

将已合并的单元格手动取消合并后,发现边框均存在,再次手动合并单元格发现无边框缺失。

3、经过测试发现,是因为本项目在表格渲染的时候,将前六列与后续列分开渲染的,并且在后续列的渲染中接着新建行,没有延用前六列新建的行,于是产生了上述的问题。修改后合并区域的边框显示完整。

如有相同问题的小伙伴,可参考本文解决方式。

相关推荐
用户8307196840824 天前
spring ai alibaba + nacos +mcp 实现mcp服务负载均衡调用实战
spring boot·spring·mcp
NE_STOP7 天前
springMVC-HTTP消息转换器与文件上传、下载、异常处理
spring
JavaGuide8 天前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
玹外之音8 天前
Spring AI MCP 实战:将你的服务升级为 AI 可调用的智能工具
spring·ai编程
来一斤小鲜肉8 天前
Spring AI入门:第一个AI应用跑起来
spring·ai编程
NE_STOP8 天前
springMVC-常见视图组件与RESTFul编程风格
spring
what丶k9 天前
Spring AI 多模态开发全解析:从入门到企业级落地
后端·spring·ai编程
LAM LAB9 天前
【VBA】Excel指定单元格范围内字体设置样式,处理导出课表单元格
excel·vba