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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

摆脱困境:将运行时配置作为JSON返回

如果需要确定部署到远程服务器的Spring Web应用程序的运行时配置&#xff0c;则需要读取从远程服务器找到的属性文件。 这很麻烦。 幸运的是&#xff0c;有更好的方法。 这篇博客文章描述了我们如何 启动我们的Web应用程序时&#xff0c;将运行时配置写入日志文件。 返回运行…

网络爬虫依赖的架包

网络爬虫依赖的架包 commons-codec-1.3.jarcommons-httpclient-3.1.jarcommons-logging-1.0.4.jarhtmllexer.jarhtmlparser.jar 转载于:https://www.cnblogs.com/aicpcode/p/4194898.html

调用布尔变量java_关于java的参数的调用,还有布尔的理解,这有一段代码,我有些不太理解,希望能够帮我分析下,谢谢...

第一段代码public class CustomerBiz {String[] namesnew String[30]; //创建学生姓名数组//实现姓名的添加public void addName(String name){for(int i0;iif(names[i]null){names[i]name;break;}}}public void showName(){ //显示姓名for(int i0;iif(names[i]!null){System.o…

优化哈希策略的简介

总览 用于哈希键的策略可以直接影响哈希集合&#xff08;例如HashMap或HashSet&#xff09;的性能。 内置的哈希函数被设计为通用的&#xff0c;并且可以在各种用例中很好地工作。 我们可以做得更好&#xff0c;特别是如果您对用例有一个很好的了解吗&#xff1f; 测试哈希策…

java中报错convension_LambdaConversionException与泛型:JVM错误?

此错误不是完全固定的。我只是LambdaConversionException在1.8.0_72中遇到了一个问题&#xff0c;发现Oracle的错误跟踪系统中有未解决的错误报告&#xff1a; link1&#xff0c;link2。(编辑&#xff1a;据报告&#xff0c;链接的错误已在JDK 9 b93中关闭)作为一种简单的解决方…

java初学者指南_Java初学者指南

java初学者指南Java编程的第一步。 对于Java中的入门教程&#xff0c;请参阅Sun的官方帮助这里 除了核心语言外&#xff0c;还有几种技术和API 介绍。 我们建议首先阅读涵盖 基础知识&#xff0c;并继续其余的教程。 我们建议&#xff1a; 保持代码简单明了且易于阅读 拆…

Java面试题2019简书_2019最新Spring面试题大全含答案之Spring Beans(2019最全Spring超级葵花宝典)...

1.什么是Spring beans&#xff1f;Spring beans 是那些形成Spring应用的主干的java对象。它们被Spring IOC容器初始化&#xff0c;装配&#xff0c;和管理。这些beans通过容器中配置的元数据创建。比如&#xff0c;以XML文件中 的形式定义。Spring 框架定义的beans都是单件bean…

javascript练习----复选框全选,全不选,反选

第一种方式&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>body{color: #000}</style> <script> document.write("<ul>&quo…

使用此首选项可加快Eclipse m2e配置

谁不认识他们。 Eclipse中的旧式JFace对话框可以使您直观地看到实际上是一个相当简单的XML或属性文件。 对于m2e&#xff0c;它看起来像这样&#xff1a; 不幸的是&#xff0c;此屏幕的加载速度有点慢&#xff0c;除了检查版本号和您将永远不会更改的其他内容之外&#xff0c…

php 判断两个数组差集,php array_udiff_assoc 计算两个数组的差集实例

php array_udiff() 函数用于比较两个(或更多个)数组的键名和键值&#xff0c;并返回差集。此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于&#xff0c;等于&#xff0c;或大于第二个参数时必须分别返回一个小于零&#xff0c;等于零&#xff0c;或大于零的整…

【百度地图API】发布静态图API啦!只需一个网址,即可展示定制百度地图!

【百度地图API】发布静态图API啦&#xff01;只需一个网址&#xff0c;即可展示定制百度地图&#xff01; 原文:【百度地图API】发布静态图API啦&#xff01;只需一个网址&#xff0c;即可展示定制百度地图&#xff01;摘要&#xff1a; 百度地图静态图API&#xff01;您无须执…

脚本在流程中的性能影响

我们经常看到人们出于各种目的而使用脚本&#xff08;例如&#xff0c;在服务任务&#xff0c;执行侦听器等中&#xff09;。 使用脚本和Java逻辑通常很有意义&#xff1a; 它不需要打包到jar中并放在classpath上 它使流程定义更易于理解&#xff1a;无需查看其他文件 逻辑是…

php 弹出变量,php取变量出现Notice: Undefined variable 的解决方法

Notice: Undefined variable: email in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9Notice: Undefined variable: subject in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9Notice: Undefined variable: comment in D:\PHP5\ENOTE\ADDNOTE.PHP on line 9........本来php是不需要定义变量的&am…

PowerDesigner使用教程

原文&#xff1a;http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html PowerDesigner是一款功能非常强大的建模工具软件&#xff0c;足以与Rose比肩&#xff0c;同样是当今最著名的建模软件之一。Rose是专攻UML对象模型的建模工具&#xff0c;之后才向数据库建模…

mac os java_适用于Mac OS X的官方Java 7 –状态

mac os java希望到目前为止&#xff0c;每个人都知道苹果公司去年加入了OpenJDK项目。 那是什么意思&#xff1f; 苹果将​​把用于私有Mac Java构建的代码作为GPL代码贡献给OpenJDK Oracle将接管Java的Mac端口 随着时间的流逝&#xff0c;Mac平台将成为Java世界中完全一流的…

php 鼠标点击图片放大,鼠标移入放大图片预览效果实现

商城项目中&#xff0c;有鼠标移入图片放大的功能&#xff0c;研究一下实现Image zoombody {display: flex;justify-content: center;align-items: center;min-height: 100vh;}#image {width: 300px;height: 300px;background-color: #000;background-image: url(https://place…

红帽峰会2015所需的JBoss BPM内容指南

明年再见&#xff1f; 今年在Red Hat Summit上&#xff0c;我们在JBoss BRMS和JBoss BPM Suite演讲中获得了很多乐趣。 在DevNation周围也有一些社区会议&#xff0c;重点介绍了使我们的产品成为可能的项目。 您可以在他们的博客上找到此演讲的概述&#xff0c;并在其中提供…

设计模式 之 享元

享元模式&#xff08;Flyweight&#xff09; 运用共享技术有效地支持大量细粒度的对象。 还记得那年夏天一起在作文本上玩过的五子棋吗&#xff1f;五子棋是一种两人对弈的纯策略型棋类游戏&#xff0c;它起源于中国古代的传统黑白棋种之中的一个&#xff0c;不…

php制作简单的用户登陆,如何用php代码实现简单的用户登陆以及登陆验证功能

本文主要简单讲述了如何使用php实现简单的用户登陆以及登陆验证效果。1、首先实现通过Session实现用户的登录那么什么是session呢&#xff1f;session被译为会话&#xff0c;它主要是为了在一定访问期间在不同页面之间间传输数据&#xff0c;用来解决http协议无状态。session在…

纪事日记–可自定义的数据存储

总览 使任何数据结构或算法尽可能快的方法是使代码完全执行您想要的操作&#xff0c;而无需执行其他操作。 建立一个可以做任何人想做的每件事的数据存储的问题是&#xff0c;它做得不好。 自定义数据存储在性能方面可以实现什么&#xff1f; 您可以支持&#xff1b; 大约75纳…