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

相关推荐
AI导出鸭PC端1 天前
告别导出难题:AI 导出鸭助力 Claude 输出 excel 一站式实现
人工智能·ai·excel·豆包·ai导出鸭
Am-Chestnuts1 天前
DeepSeek 表格如何导出 Word/Excel:Markdown 表格、CSV 与 DS随心转方案对比
word·excel
城数派1 天前
2000-2026年我国省市县三级逐月NDVI数据(Shp/Excel格式)
excel
许彰午2 天前
74_Python自动化办公之Excel操作
python·自动化·excel
E_ICEBLUE2 天前
在 Python 中快速锁定 Excel 单元格与行列
python·安全·excel
Non-existent98719 天前
WPS批量清理单元格空白字符的4种方法-异常数字格式处理-实战
excel·wps
Channing Lewis19 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
jarreyer19 天前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel
chatexcel19 天前
ChatExcel Max使用教程:图片、PDF、网页与复杂Excel的一站式数据分析
数据分析·pdf·excel
cngkqy19 天前
excel从某一列中用match筛选匹配的数据
excel