EasyExcel 导出Excel

maven

复制代码
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.3.3</version>
</dependency>

java

复制代码
package com.example.excel;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.example.excel.model.User;
import com.example.excel.util.CustomCellWriteWidthHandle;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class EasyExcelExportExample {

    public static void main(String[] args) throws MalformedURLException, InterruptedException {
        File file = new File("C:\\Workspace\\excel\\src\\main\\resources\\fz.png");

        URL url = file.toURI().toURL();
        List<User> dataList= new ArrayList<>();
        for(int i=1;i<=5000;i++){
            User u = new User();
            u.setId("id-"+i);
            u.setName("name"+i);
            u.setAge(i);
            u.setHeadImage(url);
            dataList.add(u);
        }


        ExcelWriter excelWriter = EasyExcel.write("example.xlsx").registerWriteHandler(new CustomCellWriteWidthHandle()).head(User.class).build();
        // 需要导出的数据总数
        int totalCount = dataList.size();
        // 每个sheet包含的数据量
        int sheetDataCount = 500;
        // 计算sheet数量
        int sheetCount = (totalCount + sheetDataCount - 1) / sheetDataCount;
        for (int i = 0; i < sheetCount; i++) {
            int dataStart = i * sheetDataCount;
            int dataEnd = Math.min(dataStart + sheetDataCount, totalCount);
            List<User> sheetData = dataList.subList(dataStart, dataEnd);
            WriteSheet writeSheet = EasyExcel.writerSheet(i, "数据"+(i+1)).build();
            excelWriter.write(sheetData, writeSheet);
        }
        excelWriter.finish();
    }

}
相关推荐
董董灿是个攻城狮几秒前
封了几百万个账号的 Claude, 路走窄了
前端
ch.ju2 分钟前
Java程序设计(第3版)第二章——逻辑运算符
java
喜欢流萤吖~4 分钟前
SpringBoot 异步处理与线程池实战
java·开发语言
大罗LuoSir4 分钟前
分布式微服务全貌了解-整体架构、特征和需关注解决的问题
java·缓存·微服务·zookeeper·容器·服务发现·负载均衡
野生技术架构师8 分钟前
2026年Java面试题集锦(含答案)
java·开发语言·面试
大G的笔记本15 分钟前
BIO(Blocking I/O) 和 NIO(Non‑Blocking I/O) 两种不同的 I/O 模型
java·nio
heytoo17 分钟前
同一个模型,为什么结果差10倍?差的不是模型
前端·agent
rannn_11117 分钟前
【Redis|高级篇3】Redis最佳实践|键值设计、批处理优化、服务端优化、服务器优化、集群还是主从
java·服务器·redis·后端·缓存
matlabgoodboy17 分钟前
留学生计算机cs作业辅导java SQL数据库 c语言编程 软件工程辅导
java·数据库·sql
霪霖笙箫18 分钟前
「JS全栈AI学习」九、Multi-Agent 系统设计:架构与编排
前端·面试·全栈