SuperAPI AI 工具集

easyexcel-fill

办公与效率

查看项目

更新于 10-15 21:48

技能介绍

用途:面向“按预制模板填充”场景。当用户提供已画好样式的 .xlsx 模板,要求把数据库或接口数据填入占位符(工资条、合同、发票、报表、统计单等)时使用本技能。依赖 com.alibaba:easyexcel:4.0.3(Apache-2.0,仓库已归档,仅做 Bug 修复)。

主要能力:简单对象填充(Map 或单个 DTO);列表填充(模板 {.} 语法,默认纵向);复杂填充(list 后还有内容时需 forceNewRow=true);大数据量复杂填充(list 放最后一行,统计行用 write 追加);横向多列组合填充(WriteDirectionEnum.HORIZONTAL + FillWrapper);模板转义字符处理({ });Spring Boot 集成(模板可来自 resources/ 或 OSS)。

使用方式:入口为 EasyExcel.write(fileName).withTemplate(template).sheet().doFill(data);多次填充用 try-with-resources 构建 ExcelWriter,配合 WriteSheet 反复 fill;复杂填充用 FillConfig.builder().forceNewRow(true);横向填充用 FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL);多列表用 new FillWrapper("prefix", list),前缀须与模板 {prefix.} 一致;list 后追加合计行用 write 而非 fill。

限制:仅支持 .xlsx(07 版),.xls 不支持复杂或大数据量填充;forceNewRow=true 会全量驻内存,数据量大时慎用;withTemplate 模板全量加载内存,模板过大(>几十 MB)可能 OOM;Map 填充 list 时必须包含所有 list 的 key,否则报 NPE。不基于模板的程序化生成、读取 Excel、CSV、Word/PPT 均不适用本技能。本技能不收集、存储或传输任何用户数据。