做项目遇到上传excel并解析excel内容组装成结构话json,网上查了很多方法,做了poi和easyExcel两个方法的对比
两者都可以解析excel文件,但是两个也有不同:
一、poi
官方说明:https://poi.apache.org/components/index.html
A、03版excel和07版excel:
1)03版excel最多65536行,最大列数是256列,07版excel没有限制;
2)文件后缀不同,一个xls,另一个是xlsx。
3)poi引入依赖不同
B、写
(1)03版excel和07版excel生成的性能对比
程序执行前时间戳作为begin,程序执行后时间戳作为end,然后后者减前者除以1000并且double强转获得秒级时间。 最后可以看到后者的效率比前者低,但后者没有最多65536行限制。
(2)为了让XSSFWorkbook效率提升,用了Workbook第三个实现类SXSSFWorkbook。
这个实现原理其实就是兼顾前面两者的优点,默认把100条记录保存到内存中,然后写入临时excel文件,即一种流式计算,但需要注意的是一定要在程序结束的时候清除临时文件。
C、读
3.8版本的POI对excel的导出操作,一般只使用HSSFWorkbook以及 SXSSFWorkbook, HSSFWorkbook用来处理较少的数据量, SXSSFWorkbook用来处理大数据量以及超大数据量的导出,只是 SXSSFWorkbook只支持.xlsx格式,不支持.xls格式。
poi易造成内存溢出
我们通过分析其源码,得出其实现步骤为通过InputStream一行行读取到TreeMap类型的HSSFRow结构体中,因此当数据量大时就会造成内存溢出。poi会将内容全部加载到内存
poi的使用:文章来源:https://www.toymoban.com/news/detail-421423.html
1、引入jar包文章来源地址https://www.toymoban.com/news/detail-421423.html
<dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>po
到了这里,关于java解析excel,poi和easyExcel的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!