easyExcel - 根据模板文件导出

废话不多说!!!直接上代码 复制粘贴即可

如有不懂:先参考官方文档

EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel (alibaba.com)

针对模板文件:

占位符用 {变量} 表示,比如 {name}、{age} 一条数据

占位符为列表,则使用 {.变量} 表示,比如:{.name}、{.age} 多条数据

这个变量需要和你的实体类字段一致哈..别整差咯..

本地代码如下:

java 复制代码
public void studentList() {
        // 模板文件路径
        String templateFilePath = "D:\\excel\\tingyi-template.xlsx";
        // 输出文件路径
        String outFilePath = "D:\\excel\\tingyi.xlsx";

        // 创建 ExcelWriter 实例
        ExcelWriter writer = EasyExcel
                // 写入到
                .write(outFilePath)
                // 指定模板
                .withTemplate(templateFilePath)
                .build();

        WriteSheet sheet = EasyExcel.writerSheet().build();

        // 上数据库查你所需的数据即可

        FillConfig fillConfig = FillConfig.builder()
                // 开启填充换行
                .forceNewRow(true)
                .build();

        // 执行填充操作
        writer.fill(查出的数据, fillConfig, sheet);

        // 结束
        writer.finish();
    }

实际应用开发代码如下(就是你在公司要写的代码):

java 复制代码
@Operation(description = "下载表格")
    @PostMapping("/import")
    public void excelimport(HttpServletResponse response, @RequestBody List<LandOfTheStatus> ofTheStatuses) throws IOException {
        // 模板文件路径
        String templateFilePath = landOfStatusFile;
        response.reset();
        response.setCharacterEncoding("UTF-8");
        response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("听忆Excel导出.xlsx", "UTF-8"));
        response.setContentType("application/octet-stream");

        // 创建 ExcelWriter 实例
        ExcelWriter writer = EasyExcel
                // 写入到
                .write(response.getOutputStream())
                // 指定模板
                .withTemplate(templateFilePath)
                .build();

        WriteSheet sheet = EasyExcel.writerSheet().build();
                //这里应该是查询你所要导出的数据  我这么图方便,直接传了list
        FillConfig fillConfig = FillConfig.builder()
                // 开启填充换行
                .forceNewRow(true)
                .build();

        //计算公式  比如你模板文件里设定了一些公式  加减乘除等等  会自动计算
        Workbook workbook = writer.writeContext().writeWorkbookHolder().getWorkbook();
        workbook.setForceFormulaRecalculation(true);
        // 执行填充操作
        writer.fill(ofTheStatuses, fillConfig, sheet);

        // 结束
        writer.finish();


    }
相关推荐
库拉镜像AI牛牛5 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
律宏阔5 小时前
Flutter 列表图片内存优化:CachedNetworkImage 与 ClipRRect 的取舍
前端·flutter
行者全栈架构师5 小时前
【鸿蒙心迹】相册文搜图工程化落地:HarmonyOS 7.0 端侧 AI 检索全链路实战与 5 个踩坑解法
前端
盟接之桥5 小时前
AI助手:你的7×24小时智能管家——让异常预警无处不在
大数据·网络·数据库·人工智能·制造·ai编程
waoooqwe5 小时前
问卷样本真实吗
大数据·数据库·算法·数据分析
律宏阔5 小时前
Dart 3 Record:解决 Future.wait 异构返回值的类型问题
前端·flutter
Wang's Blog5 小时前
Java框架 SpringCloud 快速入门: 过滤器链执行顺序
java·spring cloud
Seraphina365 小时前
DVWA(XSS Reflected/Stored High,CSRF Low)
前端·xss·csrf
砚底藏山河6 小时前
量化实战:回测数据底座快照与版本管理进阶
java·大数据·python·金融·maven
可乐ea6 小时前
Agent 评测换判据:用终态数据库状态判定任务是否完成
数据库·ui·oracle·mcp工具·agent评测·终态断言·智能体可靠性