我用过的,速度最高和内存最小的,是Aspose Cell,但可惜是商用的。我们用来处理大并发量下,万级数据行的Excel文件,不过测试结果没找到。

解决方案 »

  1.   

    1000条还好了,poi就可以了。1000万的话就麻烦了。
      

  2.   

    1000 行 也算大数据??直接POI。
      

  3.   

    数据量多大之后不再考虑poi?
    jxl呢 和poi那个效率高?
      

  4.   

    jxl和POI差不多, JXL已经停止更新了。。
      

  5.   

    我现在单位上的系统用的是POI,读写3万行以内都是在3秒内,所以POI在5万行以内效率都是不错的。
      

  6.   

    POI  足够,几M的文件还是可以的
    1000太小了点o(╯□╰)o
      

  7.   


    这是网上提供的数据 不知道是不是对的数据量3000条数据,每条60列.JVM虚拟机内存大小64M. 
    使用POI:运行到2800条左右就报内存溢出. 
    使用JXL:3000条全部出来,并且内存还有21M的空间. 
    可想而知,在对内存的消耗方面差距还是挺大的. 
    也许是由于JXL在对资源回收利用方面做的还挺不错的. 
    关于两者效率方面,没有研究过,我想这个也是基于大数据量而言的,数据量小的话基本上差别不大,也不难被发觉.但是大的数据量,POI消耗的JVM内存远比JXL消耗的多.但相比提供的功能的话,JXL又相对弱了点.所以如果要实现的功能比较复杂的情况下可以考虑使用POI,但如果只想生成一些大数据量可以考虑使用JXL
      

  8.   

    占用内存上,jxl是比poi要小,但几千条数据,这些差别也不是主要的,LZ不用纠结这些。
    具体的你拿你的实际数据试试就知道了。不试的话直接用poi也没有问题。
      

  9.   

    jxl,poi都可以的,没什么区别,几千条数据绝对没事。我刚负责过大数据导出的,3W条,5000+的冰法,经过测试和寻找,免费的基本没有能达到的。所以我们的解决方案是通过业务上来处理,例如,
    1、通过授权功能,限制用户并发数目。
    2、大数据时采用分批次读取内存,例如每次只去2000条读取。
    3、设置读取最大数据上限,例如5000条以上弹出提示菜单,阻塞当前请求。
      

  10.   

    暂且忽略并发的问题,请考虑5w条数据载入看看花了多少内存,poi创建的对象不是一下就释放的,
    数量大的话poi和jxl都作罢把...
    有其他的办法的.找找把.
      

  11.   


    今天试了一下 一个82M的excel 用poi和jxl读取都会出现内存溢出 怎么办?
    当初我还以为只会有1000行 现在是一个sheet几w行
      

  12.   

    100M呢 我现在poi jxl都测试过了 就只读取 poi 37分钟 jxl也要花26分钟
      

  13.   

    真难搞 这么大的文件 想用java 先给分成几个EXcel 一个sheet一个也行