还是菜鸟时,在某个.Net项目中,用户需要从业务系统导出Report,而数据量通常都在上万条以上,最初采用的方式就是在服务器端用NPOI生成Excel,把Data一行一行一个Cell一个Cell地写到Excel中的每个Cell中,若用户对Report格式要求高一点,还要一个Cell一个Cell设置单元格的Style,然后把Report给用户下载。结果上万条的数据用户导出需要几十分钟。这样导出Report,是个人都要crazy了。。。。。

      当时,老板也没给压力,只是说,能不能搞定,搞不定我就从外面找个高手解决,下午4点给我答复,有压力才有动力,终于在某篇技术贴中发现,用NPOI写Excel有更方便更快捷的方式,可以把数据组织成二维数组,一次性写入到Excel中一个Range中,Style也可以通过Range直接设置。优化后,导出上万条数据只需几十秒,老板笑了。贴出最经典的几行代码

     Range range = xst.get_Range(excel.Cells[0, 0], excel.Cells[9999,9999]);

     range.Value2 = datas;  //datas为一个二维数据数据

     今年又在Java项目中,昔日的菜鸟也成了带头大哥,某小弟用常规的思路导出Report,上万条数据竟然需要十几分钟,还时不时地报内存溢出,实在时让人崩溃。查了下API,Java的apache中的POI却没有Range写入Excel的接口,但却提供了通过XML一次性写入Excel的方式,Demo了一下,写入20万数据到Excel,只需9秒。这次我笑了。。。。

参考以下网址:

     http://libjakarta-poi-java.sourcearchive.com/documentation/3.6plus-pdfsg/BigGridDemo_8java-source.html

 

QQ:251171985

E-Mail: jthuahua@126.com

相关文章:

  • 2021-07-14
  • 2022-12-23
  • 2021-05-20
  • 2021-07-07
  • 2021-10-02
  • 2021-09-12
  • 2021-06-15
猜你喜欢
  • 2022-12-23
  • 2021-07-28
  • 2021-07-20
  • 2021-10-11
  • 2022-02-15
相关资源
相似解决方案