java POI 写入百万数据到 excel
.xls文件只支持6w+的数据写入
.xlsx文件只支持104w+数据的写入
在java中jxl工具类只能操作.xls的文件,不能操作.xlsx的文件
POI工具类能够支持.xlsx的文件操作。
excel的数据读写都相应的简单,网上也有很多的代码,我这里要说的是怎么样写入100w+的数据到Excel中。
在POI中,XSSFWorkbook wb = new XSSFWorkbook ();创建的工作簿能够写入大量的数据,但很大的可能下会虚拟机内存不够而报错
在这种情况下有两种解决方案:
1.重新分配java 虚拟机内存(我没有试验)
2.POI中还提供了SXSSFWorkbook swb=new SXSSFWorkbook(wb,10000);代码的创建工作,第一个参数是XSSFWorkbook wb = new XSSFWorkbook ();第二个参数是内存中处理的数据行数,当数据量超过你所设置的数量,会把多的数据保存到磁盘上。
这里提供一个简单写入excel文件的代码段:
public static void createWorkBook(List<Entity> dataList,String filename) throws IOException { System.out.println("数据数量=="+dataList.size());//创建excel工作簿 XSSFWorkbook wb = new XSSFWorkbook (); SXSSFWorkbook swb=new SXSSFWorkbook(wb,10000);//swb.createSheet()//创建第一个sheet(页),命名为 new sheet SXSSFSheet sheet = null;sheet = (SXSSFSheet) swb.createSheet("myData");//Row 行 //Cell 方格 // Row 和 Cell 都是从0开始计数的 for(int i=0;i<dataList.size();i++){Entity en=dataList.get(i);// 创建一行,在页sheet上 Row row = sheet.createRow(i); // 在row行上创建一个方格 /*org.apache.poi.ss.usermodel.Cell cell = row.createCell(0); //设置方格的显示 cell.setCellValue(1); *///System.out.println(en.getPkg_name());//row.createCell(0).setCellValue("xx");row.createCell(0).setCellValue(en.getDate()); // Or do it on one line. row.createCell(1).setCellValue(en.getxxx()); row.createCell(2).setCellValue(en.getxxx()()); row.createCell(3).setCellValue(en.getxxx()()); row.createCell(4).setCellValue(en.getxxx()()); ......}//创建一个文件 命名为workbook.xls FileOutputStream fileOut = new FileOutputStream(filename); // 把上面创建的工作簿输出到文件中 swb.write(fileOut); //关闭输出流 fileOut.close(); System.out.println("写入完成----");}
转载于:https://www.cnblogs.com/owner/p/4194276.html
java POI 写入百万数据到 excel相关推荐
- poi导出excel写入公式_【java poi 写入Excel后读取公式值问题】poi导入excel
java poi 写入Excel后读取公式值问题 不用改公式,只需要用cell.getNumericCellValue()获取,读出来就是正确的值了,如果你读出来的还有问题,说明你其他的地方写的还有问 ...
- Java操作百万数据量Excel导入导出工具类(程序代码教程)
Java操作百万数据量Excel导入导出工具类(程序代码教程): # 功能实现1.自定义导入数据格式,支持配置时间.小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls.xls ...
- 使用poi导出大量数据到excel遇到的问题
最近在工作遇到利用poi导出大量数据到excel并提供下载的运用场景,并遇到了一个问题,当数据量过大时(几十万),后台在进行数据写入excel中的过程会非常耗时,导致迟迟没有响应前台,结果数据还没导完 ...
- java 导出excel教程,[Java教程]导出大量数据到Excel的一种方式
[Java教程]导出大量数据到Excel的一种方式 0 2012-07-09 17:00:11 在Java Web开发中,经常需要导出大量的数据到Excel,使用POI.JXL直接生成Excel,很容 ...
- mysql百万数据写入_快速写入百万数据
1.快速写入百万数据 mysql原生操作 mysql原生操作写入500万数据! # 建库 create database mydb01; # 使用库 use mydb01; # 建表 create t ...
- java poi 添加列数据_java使用POI将数据导出放入Excel
本文主要是将数据库取出的数据按照自定义的行列格式导出到excel中,POI则是实现我们需求所用到的技术. POI介绍 使用spring boot导入相关依赖 获取数据(自行处理) 完整代码实例:创建e ...
- java poi写入excel_Java使用POI读取和写入Excel指南
做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里基于最新的Apache POI 4.0 ...
- POI导出百万数据 EXCEL addMergedReigon 合并单元格慢的问题解决
本文最重要的就是以下重写的方法,如果你仅仅是感觉导出慢,原因又是因为合并单元格,那么你直接用一下方法合并就好. private static void addMergedReigon(CTWorksh ...
- POI读写超大数据量Excel,解决超过几万行而导致内存溢出的问题(附源码)
来源:cnblogs.com/swordfall/p/8298386.html 1. Excel2003与Excel2007 两个版本的最大行数和列数不同,2003版最大行数是65536行,最大列数是 ...
最新文章
- 计算机网页基础课专业,关于《计算机应用基础》课程网页下的学习资源使用说明....
- 已知两点的经度和纬度,计算两点间的距离(php,javascript)
- 又一次生产 CPU 高负载排查实践
- 2引擎帮助文档_【虚幻4】初学者系列教程-《基础入门》#2-学习虚幻4的15个途径...
- 冷静对待你遇到的所有Java内存异常
- Linux共享文件夹中毒,linux服务器中毒利用Find查找病毒例子
- 【OJ】洛谷排序题单题解锦集
- C语言基础教程之可变的参数
- centos6.5最小化安装
- innerHTML 插入 script 脚本正确执行的处理方式
- NVIDIA显卡怎么更新驱动
- 上传漏洞靶场:upload-labs 8-13关
- 58私信怎么引流?58同城如何引流到微信?怎么用58同城做引流
- 增设区域分销商:APC渠道变革拒绝“扁平化”
- Qt编写可视化大屏电子看板系统3-新建布局
- matlab 求矢量夹角_MATLAB:如何画南开大学校徽?
- 如何设计神经网络结构图,神经网络设计与实现
- choice数据库的使用(一):如何下载数据
- 掌上快递 APP 项目之概述篇
- 提取惠普ZBook 15 G2笔记本电脑内建显示器的EDID并修改注入Clover完美驱动内屏实现内外双屏显示
热门文章
- 百分比单位始终根据父元素相应值来计算_CSS Viewport 单位,很多人还不知道使用它来快速布局!...
- 【技术解决方案】RTP_UDP传输过程中数据丢失的解决方案
- php 字符串 字典序序排序,C++ 怎么实现字典序排序法,自然排序
- mysql 三种工作模式_mybatis三种批量插入方式对比【面试+工作】
- 代码内查找函数引用_叮~~二级操作题 excel常考函数大梳理
- android 冰箱 活动,Android活动的使用
- java顺序栈和链栈_Java的顺序栈和链式栈
- 使用php吧excel数据存到数据库,php如何存excel数据到数据库
- 选购工业交换机时,工业交换机的IP等级多少比较合适?
- 【渝粤题库】陕西师范大学700011 新课程改革与生物教材研究