easyexcel根据模板导出Excel文件,表格自动填充问题

背景

同事在做easyexcel导出Excel,根据模板导出的时候,发现导出的表格,总会覆盖落款的内容。

这就很尴尬了,表格居然不能自动填充,直接怒喷工具,哈哈。

然后一起看了一下这个问题。

分析原因

我找了自己的系统中关于表格导出的页面,导出了一下,发现可以正常扩充。

于是排查问题。

1、观察模板。

模板中,在不需要填充的地方,也用了 {.字段}, 改成 {字段},试了不行。

2、模板导出时,总有一行是合并的。

怀疑数据问题,修改数据,发现这个是落款的合并单元格,也不行。

3、比对系统代码。

发现了问题,代码中少加了配置。

4、对比mvn版本

发现版本不太一样,会存在影响

解决问题

1、增加配置

发现了问题,解决测试。

原代码如下:

java 复制代码
public static void exportExcelByTemplate(String templateFile, Map<String,Object> data,List<Object> dataList, OutputStream out){
    ExcelWriter build = EasyExcel.write(out).withTemplate(templateFile).build();
    WriteSheet sheet = EasyExcel.writerSheet().build();
    build.fill(dataList, sheet);
    build.fill(data,sheet);
    build.finish();
}

修改之后如下:

java 复制代码
public static void exportExcelByTemplate(String templateFile, Map<String,Object> data,List<Object> dataList, OutputStream out){
    ExcelWriter build = EasyExcel.write(out).withTemplate(templateFile).build();
    WriteSheet sheet = EasyExcel.writerSheet().build();
    FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
    build.fill(dataList, fillConfig, sheet);
    build.fill(data,sheet);
    build.finish();
}

增加了配置:FillConfig

即:FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();

需要注意的是,配置一定要是 TRUE 才行。

观察源码不难发现,配置中有一个重要的一项:forceNewRow

即强制添加新行,也就是这个配置起到了作用。

2、poi升级

以上方式仍不行的话,就需要观察当前poi的版本问题了。

版本修改

原版本如下:

java 复制代码
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.0</version>
</dependency>

修改之后如下:

java 复制代码
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

重试,解决问题。

相关链接:JAVA导出Excel文件:https://blog.csdn.net/qq_38254635/article/details/126691175

相关推荐
开开心心就好5 小时前
键盘改键工具免安装,自定义键位屏蔽误触
java·网络·windows·随机森林·计算机外设·电脑·excel
fqbqrr10 小时前
2601Mfc,自动化excel
自动化·excel·mfc
tlwlmy10 小时前
python excel图片批量导出
开发语言·python·excel
TracyDemo1 天前
excel 透视图怎么进行删除透视图
excel
骆驼爱记录1 天前
Excel邮件合并嵌入图片技巧
自动化·word·excel·wps·新人首发
avi91111 天前
Unity Data Excel读取方法+踩坑记;和WPS Excel的一些命令
unity·游戏引擎·excel·wps·data
梦幻通灵1 天前
Excel多个sheet合并透视表实现方案【持续更新】
excel
开开心心就好1 天前
键盘映射工具改键位,绿色版设置后重启生效
网络·windows·tcp/ip·pdf·计算机外设·电脑·excel
恬淡如雪1 天前
Excel接口测试自动化实战
爬虫·python·excel
速易达网络1 天前
linux命令大全
linux·运维·excel