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

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

相关推荐
缺点内向11 分钟前
Java 使用 Spire.XLS 库合并 Excel 文件实践
java·开发语言·excel
焚 城14 分钟前
EXCEL(带图)转html【uni版】
前端·html·excel
**蓝桉**18 分钟前
EXCEL 函数
excel
fouryears_2341737 分钟前
Redis缓存更新策略
java·spring boot·redis·spring
L.EscaRC1 小时前
Spring Boot 事务管理深度解析
java·spring boot·spring
qq_5470261792 小时前
SpringCloud--Sleuth 分布式链路追踪
后端·spring·spring cloud
阿里云云原生3 小时前
阿里云两大 AI 原生实践荣获 2025 年度 OSCAR “开源+”典型案例
apache·rocketmq
rengang665 小时前
002-Spring AI Alibaba Prompt 功能完整案例
人工智能·spring·prompt·spring ai·ai应用编程
星星落进兜里5 小时前
Spring全家桶面试题, 只补充细节版本
java·后端·spring
工业甲酰苯胺6 小时前
Excel高性能异步导出完整方案!
excel