项目要求导入excel, 但是文件很大,一次性读进去会导致内存不足而报错,

下面是我解决的方法:

首先倒入需要的jar

org.apache.poi

poi-ooxml

3.17

org.apache.poi

poi-ooxml-schemas

3.17

org.apache.poi

poi

3.17

com.monitorjbl

xlsx-streamer

1.2.0

org.apache.poi

openxml4j

1.0-beta

//报这个错需要引下面这个jar包

Exception in thread "main" java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

xml-apis

xml-apis

1.4.01

借助第三方工具:StreamingReader

package com.quanzhen.test;

import com.monitorjbl.xlsx.StreamingReader;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

import java.io.FileInputStream;

/**

* Created by Administrator on 2019/5/21 0021.

*/

public class Utf8Util {

public static void testLoad() throws Exception{

FileInputStream in = new FileInputStream("C:/Users/Administrator/Desktop/Dm_Mobile.xlsx");

Workbook wk = StreamingReader.builder()

.rowCacheSize(100) //缓存到内存中的行数,默认是10

.bufferSize(4096) //读取资源时,缓存到内存的字节大小,默认是1024

.open(in); //打开资源,必须,可以是InputStream或者是File,注意:只能打开XLSX格式的文件

Sheet sheet = wk.getSheetAt(0);

//遍历所有的行

for (Row row : sheet) {

System.out.println("开始遍历第" + row.getRowNum() + "行数据:");

//遍历所有的列

for (Cell cell : row) {

System.out.print(cell.getStringCellValue() + " ");

}

System.out.println(" ");

}

}

public static void main(String[] args) throws Exception {

testLoad();

}

}

刚开始报版本不支持52.0,网上说是因为我用的jdk是1.7的,要更新成1.8的,换成1.8的之后,还是一大堆错误,主要是因为

jar包没有全部导入,还有一个原因就是版本不一致,要是4.0都是4.0要是3.8都是3.8,

全部导入之后,把jdk切换成1.7和1.8,发现两个都是可以的,并不是jdk版本问题

JAVA读取2g数据的速度_Java 读取大容量excel相关推荐

  1. java 数据库数据写接口_Java读取接口数据并保存到数据库

    public class Test05GetData { //guo sheng shi xian zhen cun的表结构完全一样.数据全部读取完毕之后再将数据整合到同一张表中 protected  ...

  2. java读取文件的方法是_Java读取文件方法大全

    Java读取文件方法大全 2011/11/25 9:18:42  tohsj0806  http://tohsj0806.iteye.com  我要评论(0) 摘要:文章来源:http://www.c ...

  3. java 读取文件第n行_java读取文件最后N行

    指定行数,可以获取到从这行到文件尾的所有行,分享自大熊. 源文件: 读取最后10行结果 import java.io.File; import java.io.IOException; import ...

  4. java 监听写文件的进度_java读取文件显示进度条的实现方法

    实现这个功能比较简单,用到的类有两个:ProgressMonitorInputStream(主要是整个类) 和 ProgressMonitor ,它们在javax.swing中 大体思路,你要首先知道 ...

  5. 前端读取文件图片信息流;js读取图片不同信息流;js读取图片;前端就js读取二进制数据;前端js读取文件流使用FileReader对象的readAsDataURL方法来读取图像文件;

    原文链接 FileReader来把文件读入内存,并且读取文件中的数据. readAsDataURL方法可以在浏览器主线程中异步访问文件系统,读取文件中的数据,且读取后 result 为 DataURL ...

  6. java读取复杂csv文件内容_java读取并导出多类型数据csv文件

    1.主函数 public class csvtest { public static void main(String[] args) { List dataList = CSVUtils.impor ...

  7. java解析各种文档格式_java读取各类型的文件

    用到的几个包 bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-dev.jar/lucene ...

  8. 一个简单的更改让PyTorch读取表格数据的速度提高20倍:可大大加快深度学习训练的速度...

    来源:DeepHub IMBA 本文约3000字,建议阅读5分钟 我在PyTorch中对表格的数据加载器进行的简单更改如何将训练速度提高了20倍以上,而循环没有任何变化! 深度学习:需要速度 在训练深 ...

  9. extjs 表格数据重新加载_一个简单的更改让PyTorch读取表格数据的速度提高20倍:可大大加快深度学习训练的速度...

    来源:DeepHub IMBA 本文约3000字,建议阅读5分钟我在PyTorch中对表格的数据加载器进行的简单更改如何将训练速度提高了20倍以上,而循环没有任何变化! 深度学习:需要速度 在训练深度 ...

最新文章

  1. 马斯克说,特斯拉最新自动驾驶芯片性能是英伟达的7倍​
  2. ORA-00257: archiver error. Connect internal only, until freed
  3. 非凸函数上,随机梯度下降能否收敛?能,但有条件,且比凸函数收敛更难
  4. Django集合Ueditor
  5. Iphone开发之音频101(part 2):转换和录音
  6. 线性回归用matlab怎么做,matlab中如何应用regress()函数进行线性回归分析?
  7. 网站项目管理规范手册
  8. 如何隐藏地址栏中的真实地址_代理IP如何隐藏真实IP
  9. 中鸣机器人编程教程 c 语言,中鸣教育机器人简介.doc
  10. php实现文件下载,提示压缩包损坏解决方法
  11. 我喜欢计算机作文300字,关于我喜欢作文300字
  12. wangeditor富文本编辑器的使用
  13. Kali Linux签名失效的解决方法
  14. 一千座5G工厂的花苞
  15. 罗杨美慧 20190919-6 四则运算试题生成,结对
  16. qq邮箱如何在win10邮箱连接到服务器,Win10系统自带Mail应用添加QQ邮箱的方法
  17. 新5G网络架构较复杂 设立面对不少挑战
  18. VQLS:变分量子算法解线性方程组
  19. 一、在GPU上执行运算
  20. 南开大学20春计算机应用基础在线作业,南开大学20春学期计算机应用基础在线作业参考答案...

热门文章

  1. 高质高效软件开发组织能力模型
  2. 用 GDB 调试Linux程序及有用技巧
  3. 关于编译FFMPEG的初级教程
  4. @Deprecated 注解 (@Documented 、@Retention、@Target)
  5. TeamViewer13 -- 安装、使用说明
  6. dubbo 注册中心zookeeper 手册
  7. 垃圾回收算法与垃圾回收器
  8. python3.6+selenium_Testsuits测试套件
  9. Strategy 策略模式
  10. iPhone屏幕尺寸/launch尺寸/icon尺寸