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

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

相关推荐
悟能不能悟13 小时前
什么是 Apache Ignite?
apache
二饭13 小时前
Apache POI操作Docx文档时踩坑指南
apache
想躺平的咸鱼干13 小时前
Spring AI Alibaba
java·人工智能·spring
Fency咖啡14 小时前
Spring 基础核心 - SpringMVC 入门与请求流程
java·后端·spring·mvc
FrankYoou15 小时前
Spring Boot 自动配置之 Spring transaction
java·spring boot·spring
珹洺15 小时前
Java-Spring 入门指南(十六)SpringMVC--RestFul 风格
java·spring·restful
fangeqin16 小时前
解决django.db.utils.OperationalError: attempt to write a readonly database错误
django·apache·sqlite3·selinux
zzywxc78717 小时前
AI行业应用全景:从金融风控到智能制造的落地实践与技术解析
人工智能·深度学习·spring·机器学习·prompt·制造
林月明17 小时前
【VBA】点击按钮,实现将Excel表A数据按格式填入表B
excel·vba
Ytadpole18 小时前
性能革命的底层逻辑:深入理解 Spring Cloud Gateway 的 Reactor 核心
java·spring·gateway·reactor·响应式编程·cloud