不建议Java 直接使用POI,推荐EasyExcel操作Excel

一: 使用场景

在日常的系统开发中,系统支持批量数据的操作是一个很常见的功能,其中,最常用的方式是使用excel表格对数据进行批量添加、删除,如:批量新建订单、批量添加商品等。

二: 技术选型

  现在市面上有很多技术实现来支持excel数据解析如:POI、JXL等,但是,这些技术或多或少都存在着一些问题,下面进行具体分析:

(一): POI

  POI是目前使用最多的用来做excel解析的框架,但这个框架还存在在这个许多问题。现在使用POI技术来解析excel文件的,大多数都是使用到它的userMode模式,好处是上手比较简单,而且网上比较多封装好的代码,虽然复制一下就可以运行,这个对于数据量不大的文件的时候是可以使用,但是当数据量大的时候会存在巨大隐患。

  • 1、userMode模式存在着一个巨大的问题就是内存消耗很大,一个几兆的文件解析需要上百兆的内存,当并发量大的时候就会容易出现OOM(内存溢出)或者频繁进行full GC回收),导致程序执行缓慢甚至崩溃

  • 2、如果有深入了解过POI的会发现,其他它针对这个情况提供了一种叫SAX的模式,但是,这种模式相对复杂,且对excel 03版本和07版本不兼容,两个版本的数据存储方式不一样,所以解析也不一样,这样需要同个功能需要进行两套代码开发,时间周期长,且不易于维护。

  • 3、在大并发情况下,POI还存在着一些未知的错误,如果需要POI团队修复,周期不确定。

JXL

  它是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写,但是它也存在着许多缺点。

  • 1、效率低,格式支持比POI还少。

  • 2、支持Excel 95-2000的所有版本,但是e

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔向理想的星辰大海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值