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

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

相关推荐
E_ICEBLUE12 小时前
为 Excel 工作簿和工作表设置密码保护【Python教程】
python·excel
wxwx_bscxy3221 天前
基于springboot宠物领养系统的设计与实现
数据库·spring boot·后端·spring·宠物
小白学大数据1 天前
超简单:用 Python 让 Excel 飞起来:用 openpyxl 把重复报表整理交给脚本
开发语言·数据库·python·excel
cfm_29141 天前
Spring事务
数据库·spring·oracle
2601_967019511 天前
企业网站SSL证书选型实战,少走弯路
apache
跨境数据猎手1 天前
京东开放平台商品详情接口(jd.item_get):签名、缓存与批量采集
java·spring·缓存
霸道流氓气质1 天前
Spring AI提示词模板与动态变量替换
java·python·spring
Whyn1 天前
Servlet 学习笔记
spring
ofoxcoding1 天前
Claude Fable 5.1 API 接入指南:模型标识、五级定价策略、effort 参数与缓存 TTL 配置详解
java·spring·缓存·ai
SunnyDays10111 天前
如何使用 Python 添加和编辑 Excel VBA 宏(无需安装 Excel)
开发语言·python·excel·vba