基于easyExcel生成excel导出百万数据轻松解决

该博客介绍了如何利用EasyExcel库从数据库中导出百万级别的数据,并自动生成多sheet的EXCEL文件。通过代码示例展示了如何动态创建表头和数据,以及将大量数据按百万条分组输出,简化了传统Excel创建工具的繁琐过程。
摘要由CSDN通过智能技术生成

摘要

不需要传统的各种excel的创建工具比较繁琐,
场景:直接导出数据库查询数据 生成一个EXCEL自动创建多个sheet ,百万数据分组生成对应的数据表格。

细节内容都是参照
easyExcel官网文档
都可以实现,你想要的操作都有,
重要的事情说三遍:
一定要写与尝试
一定要写与尝试
一定要写与尝试

引入依赖

新版本的跟历史版本的API差了很多一定要1.xx的版本有他们自己的写法

<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>easyexcel</artifactId>
			<version>2.2.6</version>
		</dependency>

代码部分

@Test
    public void testWrite(){
        String fileName = "D:\\logs\\new\\testHead1.xlsx";
        ExcelWriter excelWriter = null;

        List<List<String>> fyList = new ArrayList<>();
        List<List<String>> heads = Lists.newArrayList();
        //表格数据 10条
        for(int i =0 ;i<10;i++){
            List<String> head = Lists.newArrayList();
            head.add(i+"");
            head.add(i*10+"");
            head.add(i*10*3+"");
            fyList.add(head);
        }
        //表头两列
        for(int i =0 ; i<2;i++){
            List<String> head = Lists.newArrayList();
            head.add("表头"+i);
            heads.add(head);
        }
        Map<String,Object> has = Maps.newHashMap();

        try {
            //动态生成表头与数据结果
            EasyExcel.write(fileName).head(heads).sheet("模板2").doWrite(fyList);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭流
            if (excelWriter != null) {
                excelWriter.finish();
            }
        }
    }

结果展示

在这里插入图片描述

百万数据分解方案

每一百万分成一组list结果数据进行输出
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: EasyExcel是一个Java库,可以用来生成Excel文件。它提供了简单易用的API,可以快速地生成Excel文件,并支持多种数据格式的导入和导出EasyExcel还支持大数据量的导入和导出,可以有效地提高Excel文件的生成和处理效率。使用EasyExcel可以方便地生成各种格式的Excel文件,包括常见的xls和xlsx格式,同时还支持自定义样式和格式。 ### 回答2: EasyExcel是一款基于Java开发Excel操作工具,提供了简易易用的API,可以快速生成Excel文件、读取Excel数据以及Excel数据导出等功能。下面就详细介绍下EasyExcel生成Excel文件的使用方法。 首先需要创建一个ExcelWriter对象,该对象可以通过流或文件的方式进行输出。创建ExcelWriter对象后,可以使用write方法分别写入标题行和数据行,最后使用finish方法进行文件输出。 具体代码如下: ``` //创建ExcelWriter对象 ExcelWriter excelWriter = EasyExcel.write(fileName).build(); //写入标题行 WriteSheet writeSheet = EasyExcel.writerSheet(0, "Sheet1").build(); excelWriter.write(getHead(),writeSheet); //写入数据行 writeSheet = EasyExcel.writerSheet(1, "Sheet2").build(); excelWriter.write(getDataList(), writeSheet); //输出文件 excelWriter.finish(); ``` 其中getHead()和getDataList()方法分别用于获取标题行和数据行的数据源。 EasyExcel除了可以生成简单的Excel文件外,还支持复杂的Excel文件生成,比如设置单元格样式、合并单元格等。可以通过使用WriteCellStyle和WriteSheet等API进一步进行操作。 总的来说,EasyExcel是一款十分简单易用的Excel操作工具,既支持简单的Excel文件操作,也支持复杂的Excel文件生成,适用于各种企业业务场景。 ### 回答3: EasyExcel是一个用于生成Excel文件的Java库。相比直接使用POI来生成Excel文件,EasyExcel更加简单易用,它是基于注解的方式来定义Excel表头和数据模型的,同时支持大数据量的读写操作。 EasyExcel支持生成Excel文件类型包括:XLS、XLSX、CSV,同时支持多线程,在处理大数据量时会更加高效。EasyExcel还支持灵活的数据转换(例如日期、数字、枚举类型等),同时支持自定义样式。 EasyExcel具有以下特点: 1. 短小精悍:EasyExcel库本身非常小巧,仅仅只有几十个类,非常易于使用和维护。 2. 使用简单:EasyExcel可以通过简单的注解配置来定义表头和数据模型,只需要通过一行代码就可以完成Excel生成。 3. 高效处理大数据量:EasyExcel支持多线程处理,可以优化大数据量的读写效率,同时还支持异步回调,对于读取大批量数据时可以提高效率。 4. 灵活的数据转换:EasyExcel支持灵活的数据转换,可以将Excel中的日期、数字和枚举类型等进行转换。 5. 自定义样式:EasyExcel支持自定义样式,可以设置单元格的背景颜色、字体、边框等样式。 总之,EasyExcel是一个非常方便高效的Excel文件生成库,它可以帮助Java开发者更加快捷地生成Excel表格,并支持大批量数据的读写操作,是Java程序员的Excel文件生成利器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值