Spring Boot3整合Jxls工具包实现模版excel导出文件

引入依赖包

pom 复制代码
        <dependency>
            <groupId>org.jxls</groupId>
            <artifactId>jxls</artifactId>
            <version>2.14.0</version>
        </dependency>

        <dependency>
            <groupId>org.jxls</groupId>
            <artifactId>jxls-poi</artifactId>
            <version>2.14.0</version>
        </dependency>

创建Excel模版文件

在模版中第一个单元格设置批注,设置jxls扫描区域,如:jx:area(lastCell="U2")

在循环数据列的第一个单元格批注设置jxls指令进行循环展示数据,如:jx:each(items="items" var="item" lastCell="U9")

其他详细指令可查看官方文档

封装工具类

java 复制代码
public class JxlsUtils {

    public static void exportExcel(InputStream is, OutputStream os, Map<String, Object> model) throws IOException {
        Context context = new Context();
        if (model != null) {
            for (String key : model.keySet()) {
                context.putVar(key, model.get(key));
            }
        }
        // 使用 JxlsHelper 自动处理转换
        JxlsHelper.getInstance()
                // 禁用Jxls在生成Excel文件时对模板中所有公式的自动处理和重新计算
                .setProcessFormulas(false)
                .processTemplate(is, os, context);
    }
}

在pom文件maven打包工具配置不需要过滤的文件扩展名

pom 复制代码
<build>
	<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                	<!-- 指定不需要过滤的文件扩展名 -->
                    <nonFilteredFileExtensions>
                    	<!-- 禁止过滤 Excel 2007+ 格式 -->
                        <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
                        <!-- 禁止过滤 Excel 97-2003 格式 -->
                        <nonFilteredFileExtension>xls</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>
     </plugins>
</build>
相关推荐
码事漫谈6 小时前
多人共用一个 key,缓存命中率会不会因此降低?
后端
医疗信息化王工6 小时前
DataForge:基于 Python 的数据库批量导出 Excel 工具——从架构到部署的全流程实战
数据库·python·excel
考虑考虑7 小时前
docker compose环境变量替换
运维·后端·自动化运维
武雄(小星Ai)8 小时前
飞书API上传26MB文件偶发失败:错误码9499与空响应体排坑实录
后端·api·排坑实录
徐小夕8 小时前
JitWord 4.0 万字分享:从协同工具到AI Word操作系统,聊聊3年产品创业史
前端·vue.js·后端
geovindu9 小时前
CSharp: Observer Pattern
开发语言·后端·观察者模式·设计模式·c#·.netcore·行为模式
Flynt10 小时前
把公司项目迁到 Spring Boot 4.0:编译通过只是开始
java·spring boot·后端
IT_陈寒10 小时前
Redis误用keys命令把生产环境搞崩了,血的教训
前端·人工智能·后端
她的男孩11 小时前
多租户和数据权限怎么共存?扒完拦截器注册链路,我找到 4 个隐蔽的坑
java·后端·架构
用户83562907805111 小时前
使用 Python 设置 Excel 页眉和页脚
后端·python