趣找句子

您现在的位置是:首页 > 关于春天 > 知识百科

知识百科

用poi将excel转换txt(POI读取生成Excel大文件)

趣找知识 2023-11-24知识百科
下面一起来看看关于用poi将excel转换txt(POI读取生成Excel大文件)的相关信息吧。关注我们,了解更多资讯。



最近在搞一个通用文件处理服务器,需要处理Excel文件,但是有的exc
下面一起来看看关于用poi将excel转换txt(POI读取生成Excel大文件)的相关信息吧。关注我们,了解更多资讯。

最近在搞一个通用文件处理服务器,需要处理Excel文件,但是有的excel文件大小超过3M,读取文件时直接导致jvm异常:gc overhead limit exceeded。

原来poi读取excel时有两种模式,我们常用的是第一种,通俗点就是空间换时间/时间换空间:

  • 1种直接将整个excel读入内存后再解析userModel
  • 1种边读取边解析,比较省内存event-userModel
首先加大jvm内存参数针对excel大文件读取,采用第二种模式来处理可以有效避免常见内存异常,但是得加上文件大小限制,如果文件特别大,那也会照样内存异常。

常用的工具包有阿里开源的easyExcel,easyPOI等,一两行代码搞定。但是第二种模式有个缺点是:无法读取用户当前打开的sheet(比如一个excel中有一个隐藏sheet,一个可见sheet,第一种模式可以使用getActiveSheetIndex()),只能一个一个读取sheet。

针对excel大量数据写入,借助SXSSFWorkbook,再加上数据分页处理,再加上数据记录条数限制,可以避免内存异常。

用poi将excel转换txt(POI读取生成Excel大文件)(1)

使用缓存 临时文件处理

不知有没有高人有更好的解决方案?

,

文章评论

[!--temp.pl--]