poi导出百万数据到excel,只在瞬息之间
public void exportBigDataExcel(DTO dto, String path)throws IOException {// 最重要的就是使用SXSSFWorkbook,表示流的方式进行操作// 在内存中保持100行,超过100行将被刷新到磁盘SXSSFWorkbook wb = new SXSSFWorkbook(100);Sheet sh = wb.createSheet(); // 建立新的sheet对象Row row = sh.createRow(0); // 创建第一行对象// -----------定义表头-----------Cell cel0 = row.createCell(0);cel0.setCellValue("xxx0");Cell cel1 = row.createCell(1);cel1.setCellValue("xxx1");Cell cel2 = row.createCell(2);cel2.setCellValue("xxx2");Cell cel3 = row.createCell(3);cel3.setCellValue("xxx3");Cell cel4 = row.createCell(4);cel4.setCellValue("xxx4");Cell cel5 = row.createCell(5);cel5.setCellValue("xxx5");Cell cel6 = row.createCell(6);cel6.setCellValue("xxx6");Cell cel7 = row.createCell(6);cel7.setCellValue("xxx7");// ---------------------------List<DTO> list = new ArrayList<DTO>();// 数据库中存储的数据行int page_size = 10000;// 求数据库中待导出数据的行数int list_count = (int) dao.getListTotal(dto);// 根据行数求数据提取次数int export_times = list_count % page_size > 0 ? list_count / page_size+ 1 : list_count / page_size;if(list_count<page_size) {page_size=list_count;}// 按次数将数据写入文件for (int j = 0; j < export_times; j++) {//分页dto.setStart(page_size*j+1);dto.setEnd(page_size*(j+1));list=dao.getList(dto);int len = list.size() < page_size ? list.size() : page_size;for (int i = 0; i < len; i++) {Row row_value = sh.createRow(j * page_size + i + 1);Cell cel0_value = row_value.createCell(0);cel0_value.setCellValue(list.get(i).getxx0());Cell cel1_value = row_value.createCell(1);cel1_value.setCellValue(list.get(i).getxx1());Cell cel2_value = row_value.createCell(2);cel2_value.setCellValue(list.get(i).getxx2());Cell cel3_value = row_value.createCell(3);cel3_value.setCellValue(list.get(i).getxx3());Cell cel4_value = row_value.createCell(4);cel4_value.setCellValue(list.get(i).getxx4());Cell cel5_value = row_value.createCell(5);cel5_value.setCellValue(list.get(i).getxx5());Cell cel6_value = row_value.createCell(6);cel6_value.setCellValue(list.get(i).getxx6());Cell cel7_value = row_value.createCell(7);cel7_value.setCellValue(list.get(i).getxx7());}list.clear(); // 每次存储len行,用完了将内容清空,以便内存可重复利用}FileOutputStream fileOut = new FileOutputStream(path);wb.write(fileOut);fileOut.close();wb.dispose();}
poi导出百万数据到excel,只在瞬息之间相关推荐
- 使用poi导出大量数据到excel遇到的问题
最近在工作遇到利用poi导出大量数据到excel并提供下载的运用场景,并遇到了一个问题,当数据量过大时(几十万),后台在进行数据写入excel中的过程会非常耗时,导致迟迟没有响应前台,结果数据还没导完 ...
- java POI 写入百万数据到 excel
.xls文件只支持6w+的数据写入 .xlsx文件只支持104w+数据的写入 在java中jxl工具类只能操作.xls的文件,不能操作.xlsx的文件 POI工具类能够支持.xlsx的文件操作. ex ...
- POI导出百万数据 EXCEL addMergedReigon 合并单元格慢的问题解决
本文最重要的就是以下重写的方法,如果你仅仅是感觉导出慢,原因又是因为合并单元格,那么你直接用一下方法合并就好. private static void addMergedReigon(CTWorksh ...
- 使用POI导出百万级数据到excel的解决方案
使用POI导出百万级数据到excel的解决方案 参考文章: (1)使用POI导出百万级数据到excel的解决方案 (2)https://www.cnblogs.com/hxun/p/11419006. ...
- Java操作百万数据量Excel导入导出工具类(程序代码教程)
Java操作百万数据量Excel导入导出工具类(程序代码教程): # 功能实现1.自定义导入数据格式,支持配置时间.小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls.xls ...
- python导出百万数据到excel_使用python将大量数据导出到Excel中的小技巧分享
使用python将大量数据导出到Excel中的小技巧分享 今天小编就为大家分享一篇使用python将大量数据导出到Excel中的小技巧心得,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看 ...
- springboot+poi导出百万级数据避免OOM内存溢出
springboot+poi导出百万级数据避免OOM内存溢出 文章目录 springboot+poi导出百万级数据避免OOM内存溢出 前言 一.具体实现 二.代码实现 1.引入poi包 2.功能代码 ...
- asp.net导出GridView数据到Excel
最近做了一个导出GridView数据到Excel中的例子,把代码和遇到的一些问题放出来. 1 Response.Clear(); 2 Response.Buffer = ...
- springboot easyexcel导出百万数据优化
说明 由于某些原因系统jvm内存最大只能给到512,但是要导出百万数据该如何实现呢?传统的一次性导出肯定是不行的 优化 Excel导出基于 springboot , easyexcel 依赖: < ...
- java 导出excel教程,[Java教程]导出大量数据到Excel的一种方式
[Java教程]导出大量数据到Excel的一种方式 0 2012-07-09 17:00:11 在Java Web开发中,经常需要导出大量的数据到Excel,使用POI.JXL直接生成Excel,很容 ...
最新文章
- 数据结构和算法:(2)时间复杂度和空间复杂度
- 线程同步synchronized理解
- 我佛了!用 KNN 实现验证码识别,又 Get 到一招
- Python 爬取 620 首虾米歌曲,揭秘五月天为什么狂吸粉?!
- 线程之成员变量的线程共享
- 使用PublishSetting快速在Powershell中登录Azure
- MFC获取电脑硬盘序列号(附源码)
- MySQL 数据库规范
- lammps软件介绍与使用
- vue 做的酷狗音乐网页版 ,酷狗音乐网页版,ui界面模仿原生酷狗音乐
- 联想拯救者笔记本电脑亮度无法调节解决办法
- CSS 实现水晶按钮特效 - 来自 www.codesc.net
- recovery.img 的解包与打包
- Adaptive icon 二 设计自适应图标
- HDU - 6438 Buy and Resell(思维+ 贪心)
- silverlight,WPF动画终极攻略之会飞的小鸟篇(Blend 4开发)
- 购买Apple移动硬盘
- 双语电子书epub格式
- phobos 调试 javascript
- 3D脚本 maxscript入门教程