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>
相关推荐
用户83562907805129 分钟前
使用 Python 控制 Excel 工作表的分页位置
后端·python
用户83562907805140 分钟前
Python 如何在 Word 中添加和管理文档变量
后端·python
量化分析码农2 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
程序员cxuan3 小时前
讲真,智能路由这事儿,还得看基元律动
人工智能·后端·程序员
vaskilab3 小时前
Schema 全绿,Agent 却把参数编造了
后端
Java与AI落地3 小时前
Spring AI 上手:给现有 Java 服务加一个能用的 AI 接口
后端
Swot3 小时前
SvelteKit 数据流研究:`+page.js` 和 `+page.server.js` 到底谁在跑,数据又去了哪儿
前端·后端
一条Go4 小时前
历史告警归档:为什么"删掉主库行"是最后一步
后端·架构·github
nice_lcj5204 小时前
【从零理解 Spring AI · 16】Agent 与工作流:什么该写死,什么该让模型决定
java·人工智能·后端·spring ai·ai应用开发
梦醒江南4 小时前
Agent 调工具报 504 之后:测试如何设计网络抖动下的幂等与补偿验证?
后端·agent·ai编程