概述
java poi使用SXSSFWorkbook导出50万数据到excel
其实有很多博客都有SXSSFWorkbook使用的教程,这里只是记录一下自己写的demo。
对于超大的数据在数据库中分批查询,跟分页差不多
public Object downloadExcel(HttpServletResponse httpServletResponse) throws IOException {
//开始时间
long startTime = System.currentTimeMillis();
String xlsFile = "f:/ExcelTest.xlsx";
//获取总条数
Long count = excelDao.getCount();
//每100行会被保存到磁盘
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet(); // 建立新的sheet对象
Row row = sh.createRow(0); // 创建第一行对象
//设置表头
Cell cell0 = row.createCell(0); //创建第一个表格
cell0.setCellValue("id"); //设置第一个表格名称
Cell cell1 = row.createCell(1);
cell1.setCellValue("content");
//分批从数据库查询数据,每10000条数据为一批
long l = count / 10000;
List<ExcelVO> list;
//控制表格行数
int i1 = 1;
for (int i = 0; i <= l; i++) {
list = excelDao.getData(i * 10000L, 10000);
for (ExcelVO excelVO : list) {
Row rows = sh.createRow(i1);
Cell cellf = rows.createCell(0);
Cell cells = rows.createCell(1);
cellf.setCellValue(excelVO.getId());
cells.setCellValue(excelVO.getContent());
i1++;
}
}
FileOutputStream fOut = new FileOutputStream(xlsFile);
wb.write(fOut);
fOut.flush(); //刷新缓冲区
fOut.close();
long endTime = System.currentTimeMillis();
long useTimes = (endTime - startTime) / 1000;
return count + "条数据用时" + useTimes + "秒";
}
数据使用最简单的,测试一下
经测试57W数据只使用了13秒,根据需要数据的不同,消耗的时间也不一样。
最后
以上就是拼搏金鱼为你收集整理的java poi使用SXSSFWorkbook导出50万数据到excel的全部内容,希望文章能够帮你解决java poi使用SXSSFWorkbook导出50万数据到excel所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复