POI EXCEL读取 性能问题
发布日期:2021-06-30 17:38:32 浏览次数:2 分类:技术文章

本文共 1692 字,大约阅读时间需要 5 分钟。

 笔者用“FileInputStream”方式读取EXCEL不到2万条数据花了,10分钟。后来采用File方式6秒结束战斗,特此记录。

/**		 * When opening a workbook, either a .xls HSSFWorkbook, or a .xlsx		 * XSSFWorkbook, the Workbook can be loaded from either a File or an		 * InputStream. Using a File object allows for lower memory consumption,		 * while an InputStream requires more memory as it has to buffer the		 * whole file.		 * new File会节省内存,new FileInputStream会占用较大内存		 * If using WorkbookFactory, it's very easy to use one or the other:		 */				// 第一种读取方式 Use a file		Workbook wb = WorkbookFactory.create(new File("MyExcel.xls")); 		//第二种读取方式  Use an InputStream, needs more memory		Workbook wb0 = WorkbookFactory.create(new FileInputStream(				"MyExcel.xlsx"));								 		/**		 * If using HSSFWorkbook or XSSFWorkbook directly, you should generally		 * go through NPOIFSFileSystem or OPCPackage, to have full control of		 * the lifecycle (including closing the file when done):		 * 如果直接用HSSFWorkbook or XSSFWorkbook ,你需要显式关闭文件		 */				//第三种读取方式  HSSFWorkbook, File		NPOIFSFileSystem fs = new NPOIFSFileSystem(new File("file.xls"));		HSSFWorkbook wb1 = new HSSFWorkbook(fs.getRoot(), true); 		fs.close(); 		//第四种读取方式  HSSFWorkbook, InputStream, needs more memory		NPOIFSFileSystem fs1 = new NPOIFSFileSystem(new FileInputStream(				"MyExcel.xlsx"));		HSSFWorkbook wb2 = new HSSFWorkbook(fs.getRoot(), true); 		//第五种读取方式  XSSFWorkbook, File		OPCPackage pkg = OPCPackage.open(new File("file.xlsx"));		XSSFWorkbook wb3 = new XSSFWorkbook(pkg); 		pkg.close(); 		//第六种读取方式  XSSFWorkbook, InputStream, needs more memory		OPCPackage pkg1 = OPCPackage.open(new FileInputStream("MyExcel.xlsx"));		XSSFWorkbook wb4 = new XSSFWorkbook(pkg); 		pkg1.close();

 

转载地址:https://lemonstone.blog.csdn.net/article/details/83995149 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux下Elasticsearch-2.4.0的安装与简单配置(单节点)Head插件安装(已测试)
下一篇:Spring Boot 自定义属性值

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月30日 07时09分12秒