2.1K Star 9.2K Fork 2.7K

悟耘开源 / easypoi

 / 详情

模板方法层级嵌套导出数据,合并单元格边框线丢失

进行中
任务
创建于  
2020-02-12 22:42

模板导出单元格样式问题,看了一天的源码还是没有解决.....
导出模板:
导出模板

边框线确实

期望的导出结果:
期望的导出结果

评论 (11)

EvanZhou 创建了任务
EvanZhou 关联仓库设置为Lemur开源/easypoi
展开全部操作日志

我也遇到这个问题了。。。

试了好几个版本好像都是这样

我看看怎么修复吧,因为样式问题,,后面的那些没有样式

jueyue 任务状态待办的 修改为进行中

请问这个解决了吗?

大哥,这个问题解决了吗

输入图片说明
源码修改这个地方
RegionUtil.setBorderRight(BorderStyle.THIN, region, sheet);
RegionUtil.setBorderLeft(BorderStyle.THIN, region, sheet);
就行了

我也遇到这种问题了 已解决 下面说出我的解决方案:
只需要对所有合并单元格设置边框样式就好了
原先代码
输入图片说明
指令:
输入图片说明
结果:
输入图片说明
部分合并的单元格显示不全。
解决方案 使用RegionUtil 单独设置所有的单元格合并 边框样式

TemplateExportParams params = new TemplateExportParams("template/双高建设任务指标模版.xlsx");
Map<String, Object> map = new HashMap<String, Object>();
List<TaskIndexExcelEntity> list = getList();
map.put("list", list);
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
Sheet sheet = workbook.getSheetAt(0);
// 获取当前Sheet中所有已经存在的合并单元格信息
List<CellRangeAddress> mergedRegions = sheet.getMergedRegions();

// 设置合并单元格的边框样式
for (CellRangeAddress mergedRegion : mergedRegions) {
    RegionUtil.setBorderTop(BorderStyle.THIN, mergedRegion, sheet);
    RegionUtil.setBorderBottom(BorderStyle.THIN, mergedRegion, sheet);
    RegionUtil.setBorderLeft(BorderStyle.THIN, mergedRegion, sheet);
    RegionUtil.setBorderRight(BorderStyle.THIN, mergedRegion, sheet);
}




FileOutputStream fos = new FileOutputStream(
    "/xxx/src/main/resources/template/任务指标.xlsx");
workbook.write(fos);
fos.close();

结果:
输入图片说明

好用,切实可行。如果要居中的话还要再遍历一遍所有单元格设置一遍居中

实用又好用,帮到我了,谢谢分享

谢谢分享,确实有用

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(12)
69288 jueyue 1578916179 8917168 aomatsu 1691657644 7621318 yeyangguang 1674532114 1548547 qingchunweimian 1645415390 1686461 evanzhou1043 1709713680
Java
1
https://gitee.com/lemur/easypoi.git
git@gitee.com:lemur/easypoi.git
lemur
easypoi
easypoi

搜索帮助