springboot整合Excel填充数据

这篇具有很好参考价值的文章主要介绍了springboot整合Excel填充数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

填充一组数据

准备模板

springboot整合Excel填充数据,工作问题总结,spring boot,java,后端

封装数据

import java.util.ArrayList;
import java.util.List;

/**
 * 使用实体类封装填充数据
 *
 *  实体中成员变量名称需要和Excel表各种{}包裹的变量名匹配
 */
@Data
public class FillData {

    private String name;
    private int age;


       
        // 生成多组数据代码
        public static List<FillData> initFillData() {
        ArrayList<FillData> fillDatas = new ArrayList<FillData>();
        for (int i = 0; i < 10; i++) {
        FillData fillData = new FillData();
        fillData.setName("学生0" + i);
        fillData.setAge(10 + i);
        fillDatas.add(fillData);
        }
        return fillDatas;
        }
}

 类填充形式

    @Test
    public void test1(){
        // 加载模板
        String templateFile="src/main/resources/excel/templte/fill_data_template1.xlsx";
        // 写入文件
        String targetFileName = "单组数据填充.xlsx";

        // 准备对象数据填充
        FillData fillData = new FillData();
        fillData.setName("学生1");
        fillData.setAge(10);


        // 生成工作簿对象
        ExcelWriterBuilder workBookWriter = EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile);

        // 获取工作表并填充
        workBookWriter.sheet().doFill(fillData);


    }

Map形式填充 

 @Test
    public void test1(){
        // 加载模板
        String templateFile="src/main/resources/excel/templte/fill_data_template1.xlsx";
        // 写入文件
        String targetFileName = "单组数据填充.xlsx";




        // 生成工作簿对象
        ExcelWriterBuilder workBookWriter = EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile);



//         使用Map数据填充
        HashMap<String, String> mapFillData = new HashMap<>();
        mapFillData.put("name", "学生1");
        mapFillData.put("age", "11");

        // 获取第一个工作表填充并自动关闭流
        workBookWriter.sheet().doFill(mapFillData);
    }

结果 

springboot整合Excel填充数据,工作问题总结,spring boot,java,后端

填充多组数据

准备模板

注意模板里面与上面相比是多了.的

springboot整合Excel填充数据,工作问题总结,spring boot,java,后端

封装数据

与上面一样,省略。

填充

@Test
    public void test02(){
        // 加载模板
        String templateFile="src/main/resources/excel/templte/fill_data_template2.xlsx";

        // 写入文件
        String targetFileName = "多组数据填充.xlsx";

        List<FillData> fillDatas = FillData.initFillData();
        System.out.println(fillDatas);
        // 生成工作簿对象
        ExcelWriterBuilder workBookWriter = EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile);

        // 获取第一个工作表填充并自动关闭流
        workBookWriter.sheet().doFill(fillDatas);
    }

结果

springboot整合Excel填充数据,工作问题总结,spring boot,java,后端

组合填充

准备模板

即有多组数据填充,又有单一数据填充 。 

springboot整合Excel填充数据,工作问题总结,spring boot,java,后端

封装数据

同上。

填充

 @Test
    public void test03(){
        // 加载模板
        String templateFile="src/main/resources/excel/templte/fill_data_template3.xlsx";

        // 目标文件
        String targetFileName = "组合数据填充.xlsx";

        List<FillData> fillDatas = FillData.initFillData();

        // 生成工作簿对象
        ExcelWriter excelWriter = EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile).build();

        // 生成工作表对象
        WriteSheet writeSheet = EasyExcel.writerSheet().build();

        // 组合填充时,因为多组填充的数据量不确定,需要在多组填充完之后另起一行
        FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();

        // 填充并换行
        excelWriter.fill(fillDatas, fillConfig, writeSheet);

        HashMap<String, String> otherData = new HashMap<>();
        otherData.put("date", "2020-03-14");
        otherData.put("total", "100");
        excelWriter.fill(otherData, writeSheet);

        // 关闭
        excelWriter.finish();
    }

 结果

springboot整合Excel填充数据,工作问题总结,spring boot,java,后端

水平填充

准备模板

水平填充和多组填充模板一样,不一样的地方在于,填充时需要通过FillConfig对象设置水平填充。  

springboot整合Excel填充数据,工作问题总结,spring boot,java,后端

封装数据

同上

填充

@Test
    public void test04(){
        // 加载模板
        String templateFile="src/main/resources/excel/templte/fill_data_template4.xlsx";

        // 写入文件
        String targetFileName = "水平数据填充.xlsx";

        List<FillData> fillDatas = FillData.initFillData();

        // 生成工作簿对象
        ExcelWriter excelWriter = EasyExcel.write(targetFileName,FillData.class).withTemplate(templateFile).build();

        // 生成工作表对象
        WriteSheet writeSheet = EasyExcel.writerSheet().build();


        // 组合填充时,因为多组填充的数据量不确定,需要在多组填充完之后另起一行
        FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build();

        // 填充
        excelWriter.fill(fillDatas, fillConfig, writeSheet);



        // 关闭
        excelWriter.finish();
    }

结果

资料

常用类

  • EasyExcel 入口类,用于构建开始各种操作;

  • ExcelReaderBuilder 构建出一个ReadWorkbook对象,即一个工作簿对象,对应的是一个Excel文件;

  • ExcelWriterBuilder 构建出一个WriteWorkbook对象,即一个工作簿对象,对应的是一个Excel文件;

  • ExcelReaderSheetBuilder 构建出一个ReadSheet对象,即一个工作表的对象,对应的Excel中的每个sheet,一个工作簿可以有多个工作表;

  • ExcelWriterSheetBuilder 构建出一WriteSheet对象,即一个工作表的对象,对应的Excel中的每个sheet,一个工作簿可以有多个工作表;

  • ReadListener 在每一行读取完毕后都会调用ReadListener来处理数据,我们可以把调用service的代码可以写在其invoke方法内部;

  • WriteHandler 在每一个操作包括创建单元格、创建表格等都会调用WriteHandler来处理数据,对使用者透明不可见;

  • 所有配置都是继承的 Workbook的配置会被Sheet继承。所以在用EasyExcel设置参数的时候,在EasyExcel…sheet()方法之前作用域是整个sheet,之后针对单个sheet。

读取时的注解

@ExcelProperty
属性名 含义 说明
index 对应Excel表中的列数 默认-1,建议指定时从0开始
value 对应Excel表中的列头
converter 成员变量转换器 自定义转换器需要实Converter接口
@ExcelIgnore

标注在成员变量上,默认所有字段都会和excel去匹配,加了这个注解会忽略该字段  

@DateTimeFormat

标注在成员变量上,日期转换,代码中用String类型的成员变量去接收excel中日期格式的数据会调用这个注解。里面的value参照java.text.SimpleDateFormat

@NumberFormat

标注在成员变量上,数字转换,代码中用String类型的成员变量去接收excel数字格式的数据会调用这个注解。里面的value参照java.text.DecimalFormat

@ExcelIgnoreUnannotated

标注在类上。不标注该注解时,默认类中所有成员变量都会参与读写,无论是否在成员变量上加了@ExcelProperty 的注解。标注该注解后,类中的成员变量如果没有标注@ExcelProperty 注解将不会参与读写。文章来源地址https://www.toymoban.com/news/detail-685157.html

@ExcelProperty
属性名 含义 说明
index 对应Excel表中的列数 默认-1,指定时建议从0开始
value 对应Excel表中的列头
converter 成员变量转换器 自定义转换器需要实Converter接口

到了这里,关于springboot整合Excel填充数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Excel表格数据填充到word模板中

            这个需求源于要批量生成模板一样的word文档。当然可以直接使用word的邮件合并功能,点菜单就可以实现,示例代码如下:        要使用这些代码,需要引用2个库microsoft word,microsoft office,如果使用到客体界面的话,还要引用microsoft Forms。本代码可以同时利用两个

    2024年02月15日
    浏览(37)
  • 使用easyexcel填充模板数据,并导出excel

    导出excel功能非常场景,本片文章记录如何使用模板填充数据后再导出。因直接导出excel数据样式不符合要求,所以做了模板填充然后再导出excel。 效果如下: 注意:列表数据变量名前面要写点{.id},如果单条数据可以不写。 使用表单提交: 实体代码: controller代码: 只对je

    2024年03月11日
    浏览(50)
  • Excel 拆分单元格数据(公式拆分、智能填充、分列)

    将姓名工号拆分成 姓名 和 工号 在 B2 单元格输入 在 C2 单元格输入 然后 ctrl + d 向下填充即可 在 B2 单元格输入 李金秀,然后选中 B3 单元格,按 ctrl + e 进行智能填充 在 C2 单元格输入 1001,然后选中 C3 单元格,按 ctrl + e 进行智能填充 全选要拆分的数据,然后按流程走

    2024年02月07日
    浏览(46)
  • 图数据库_Neo4j和SpringBoot整合使用_实战创建明星关系图谱---Neo4j图数据库工作笔记0010

    2023-09-10 10:37:48 补充 注意:下面是旧版本的语法,如果你发现@NodeEntity这样的注解没有的话可以这样: 这里就要用@Node 另外如果@StartNode和@EndNode都没有了,那么说明是用法变了. 关于最新的用法,在官网有明确的说明和案例,很有用: 下面给出官网的案例:

    2024年02月12日
    浏览(45)
  • RabbitMQ常用工作模式+整合springboot

    目录 1.MQ的相关概念 1.1 什么是MQ消息中间件 1.2 为什么使用MQ (1) 应用解耦 (2) 异步提速   (3)削峰填谷 1.3 使用MQ的劣势 1.4 常见的MQ组件​​​​​​​ 2. RabbitMQ的概述 2.1 RabbitMQ的概念 2.2 RabbitMQ的原理 2.3 安装RabbitMQ 3. RabbitMQ 的工作模式 3.1 simple (简单模式) 3.2 Work queues(工作模

    2024年02月15日
    浏览(40)
  • 图数据库_Neo4j和SpringBoot Data整合使用_实战创建明星关系图谱---Neo4j图数据库工作笔记0010

    2023-09-10 10:37:48 补充 注意:下面是旧版本的语法,如果你发现@NodeEntity这样的注解没有的话可以这样: 这里就要用@Node 另外如果@StartNode和@EndNode都没有了,那么说明是用法变了. 关于最新的用法,在官网有明确的说明和案例,很有用: 下面给出官网的案例:

    2024年02月09日
    浏览(47)
  • Spring Boot 整合 Camunda 实现工作流

    工作流是我们开发企业应用几乎必备的一项功能,工作流引擎发展至今已经有非常多的产品。最近正好在接触 Camunda ,所以来做个简单的入门整合介绍。如果您也刚好在调研或者刚开始计划接入,希望本文对您有所帮助。如果您是一名Java开发或Spring框架爱好者,欢迎关注我程

    2024年01月18日
    浏览(65)
  • Spring Boot整合Camunda打造高效工作流程

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇👇 尘缘的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起学习,一起进步!💖💖 在现代的软件开发中,工作流管

    2024年04月13日
    浏览(49)
  • 【RabbitMQ】Spring整合RabbitMQ、Spring实现RabbitMQ五大工作模式(万字长文)

    目录 一、准备 1、创建maven项目​编辑 2、引入依赖 3、创建配置文件 1.RabbitMQ配置文件 2.生产者项目配置文件 3.消费者项目配置文件 二、生产者xml中文件创建队列 三、生产者xml文件中创建交换机以及绑定队列 1、创建交换机 2、绑定队列  四、消费者xml文件中创建队列消息监

    2024年01月21日
    浏览(41)
  • SpringBoot整合EasyExcel,Excel导入导出就靠它了

    作者主页 :Designer 小郑 作者简介 :3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN学院、蓝桥云课认证讲师。 主打方向 :Vue、SpringBoot、微信小程序 本文讲解了如何在SpringBoot项目中整合EasyExcel,实现Excel快捷导入导出,解析Excel导入导

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包