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

相关推荐
Python大数据分析@5 小时前
python操作CSV和excel,如何来做?
开发语言·python·excel
John.liu_Test6 小时前
js下载excel示例demo
前端·javascript·excel
ruleslol8 小时前
VBA02-初识宏——EXCEL录像机
excel·vba
IT铺子8 小时前
制定Excel使用规范和指导,提升数据处理的效率和准确性,减少错误和数据丢失的风险
excel
是萝卜干呀8 小时前
Backend - Python 爬取网页数据并保存在Excel文件中
python·excel·table·xlwt·爬取网页数据
神奇夜光杯14 小时前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
小c君tt15 小时前
MFC中Excel的导入以及使用步骤
c++·excel·mfc
一名技术极客17 小时前
Vue2 doc、excel、pdf、ppt、txt、图片以及视频等在线预览
pdf·powerpoint·excel·文件在线预览
用余生去守护17 小时前
【反射率】-- Lab 转换(excel)
excel
进击的六角龙17 小时前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel