# 多线程实现百万级数据导出到excel **Repository Path**: wakeyang/MultithreadedExportExcelData ## Basic Information - **Project Name**: 多线程实现百万级数据导出到excel - **Description**: 多线程实现百万级数据导出到excel - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 13 - **Forks**: 9 - **Created**: 2022-08-21 - **Last Updated**: 2025-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多线程实现百万级数据导出到excel ## 考虑前提 大数据量导出到文件,首先需要考虑的是内存溢出的场景:数据库读取数据到内存中、将数据写入到excel进行大量的IO操作。然后考虑到一个文件数据过大,用户打开慢,体验不好。针对这些问题的考虑,采用多线程的方式多个线程同时处理查询数据,一个线程生成一个excel,最后在合并数据返回,以达到提高效率的目的。 ## 实现思路 ### 方式一 easyExecl结合批量线程池执行 优点:结合线程分批处理数据缩短查询数据库时间和导出数据时间,查询数据速度比较理想 接口:http://localhost:8080/exportEasyExcel?pageNum=0&pageSize=100000&limit=4000 ### 方式二 easyExecl结合循环线程池执行 优点:结合线程分批处理数据缩短查询数据库时间和导出数据时间,查询数据速度不理想 接口:http://localhost:8080/exportEasyExcelV1?pageNum=0&pageSize=60000&limit=2000 ### 方式三 SXSSFWorkbook结合批量线程池执行 优点:结合线程分批处理数据缩短查询数据库时间和导出数据时间,效果最优最理想 接口:http://localhost:8080/exportEasyExcelV4?pageNum=0&pageSize=30000&limit=2000 ## 快速构建百万测试数据 * sql/导出execl测试表.sql * com.wm.file.TestDemo.test1