使用easyExcel导出百万级数据

1:测试数据量两百二十多万,Excel2007,一个Excel多个sheet

2:导入maven依赖包

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>1.1.2-beta5</version>
</dependency>

3:实体类添加注解。注意事项:1:必须继承BaseRowModel。2:@ExcelProperty必须写,其中value是要导出到Excel的表头名字自己起,index:代表某一列从0开始排序,由于实体类字段比较多,所以在导出时会自动忽略没有加注解的字段

public class TaskStoreItemDTO extends BaseRowModel{
	
@ExcelProperty(value = "id",index = 0)
private String id;
	
@ExcelProperty(value = "replenish_item_store_id",index = 1)
private String replenishItemStoreId;
	
@ExcelProperty(value = "tab_nbr",index = 2)
private String tabNbr;

}

4:业务层书写。1:aa:代表要导出的路径:例:D:/test/.....随意。2:writer.write()方法可以改变,因为我的是两百万的数据所以这么写,你要是少可以把代码改一下把百万级中分sheet的代码删除掉。下边给大家截图修改那些。10000:这个是一个sheet要展示多少条数据

//查询数据库返回的数据集合
List<TaskStoreItemDTO> exportList = mapper.export(taskId);

//导出开始,生成EXCEL并指定输出路径
OutputStream out=null;
try {
	String aa=serviceConfig.getExportFeedbackPath()+"任务信息详情表.xlsx";
	out = new FileOutputStream(aa);
	ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX);
	//测试导出200万数据
	//List<TaskStoreItemDTO> exportList = mapper.test();
	List<List<TaskStoreItemDTO>> taskStoreItemList = Lists.partition(exportList, 1000000);
	//一个sheet一百万调数据,自动分页
	for(int i=0;i<taskStoreItemList.size();i++) {
		// 设置SHEET
		Sheet sheet = new Sheet((i+1), 0,TaskStoreItemDTO.class,"sheet"+(i+1),null);
		writer.write(taskStoreItemList.get(i), sheet);
		}
	    writer.finish();
	} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				out.flush();
				out.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

5:可以修改的数据

第一张截图是在修改第二张截图后的操作:三个参数:1一个sheet,从0行开始,继承BaseRowModel的实体类,必须写不然找不到要导出的表头。下边是设置这个sheet的名字。在修改第二张截图后writer.write()方法可以改变,自己writer.的时候能用的方法就会展示。自己选择适合自己的就可以了。

6:导出结果,数据就不展示了

7:由于easyExcel是阿里巴巴的所以还可去查看官方给的例子。给大家粘贴几个写的比较好的导出地址,如有问题欢迎大家留言交流。

https://www.cnblogs.com/technologykai/articles/10984878.html

https://blog.csdn.net/Java_Mrsun/article/details/85678028

 

本博客只供大家学习交流,禁止使用在其他用途。对于使用在其他用途的自行承担责任与本博客无关,最终解释权归本人所有

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术工厂 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

King_国王

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值