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>
相关推荐
打工仔折腾 AI16 分钟前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
蜗牛互联网36 分钟前
长任务多Agent共享文件系统的Manifest交接模式
java·人工智能·后端
苏supper2 小时前
Spring Boot多环境配置与打包运行
spring boot·后端·spring
geovindu3 小时前
rust: Composite Pattern
开发语言·后端·设计模式·rust·组合模式
SearchMan3 小时前
还有人不知道&和&&的区别?
后端
想用offer打牌3 小时前
Personal Agent爆火 - 它到底是个什么
人工智能·后端·ai编程
IT_陈寒3 小时前
Vue的v-if和v-for混用居然是个天坑
前端·人工智能·后端
天衍四九-3 小时前
【无标题】
前端·spring boot·mysql·nginx·docker
今年下半年4 小时前
【Spring Boot】多种存储文件(FastDFS / MinIO / 阿里云 OSS)接入设计说明(附源码)
spring boot·分布式·中间件·简单工厂模式·策略模式
打工仔折腾 AI5 小时前
从Attention到BERT:双向预训练语言模型到底解决了什么问题
人工智能·后端·python·深度学习·语言模型·bert