百万Excel数据导出如何实现
查询数据时分页查,写入多个sheet页
看多线程
导出慢的话,改成异步,用户不需要等待,生成完成,用户点击按钮下载即可
百万Excel数据导入如何实现
Easy Excel基于事件流,一行一行读
内存占留的记录也不要太多,分批插入数据库
使用 .csv 文件代替 .xlsx:CSV 文件结构简单,解析更快,占内存更小
避免一次上传过大的 Excel(分批上传)
异步上传,先保存到对象存储服务器,消费者根据实际情况拉取进行处理
读多个sheet页?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| InputStream inputStream = new FileInputStream("your_excel_file.xlsx");
ExcelReader excelReader = EasyExcel.read(inputStream).build();
ReadSheet sheet1 = EasyExcel.readSheet(0) .head(StudentData.class) .registerReadListener(new StudentDataListener()) .build();
ReadSheet sheet2 = EasyExcel.readSheet(1) .head(ScoreData.class) .registerReadListener(new ScoreDataListener()) .build();
excelReader.read(sheet1, sheet2);
excelReader.finish();
|
合并单元格

1 2 3 4 5 6 7 8 9 10
|
@Override public void afterSheetCreate(){ } EasyExcel.write("学生信息.xlsx", StudentData.class) .registerWriteHandler(new MergeSameCellHandler(0)) .sheet("学生表") .doWrite(list);
|