您的位置:首页 > 其它

导出大量数据到Excel的一种方式

2013-11-05 14:40 357 查看
转自:http://www.cnblogs.com/luxh/archive/2012/07/09/2582942.html

在Java Web开发中,经常需要导出大量的数据到Excel,使用POI、JXL直接生成Excel,很容易就造成内存溢出了。

  1、有一种方式,就是把数据写成csv格式文件。

  1)csv文件可以直接用Excel打开。

  2)写csv文件的效率和写txt文件的效率一样高。

  3)同样的数据内容,生成的csv文件的大小远远小于生成的Excel文件。

  从以上优点就可以看出生成csv文件消耗的内存绝对小于生成Excel文件。

  2、按一定的格式去生成csv文件,在Excel中打开的时候就是完整的行和列格式。

  例如:在Excel中的格式:

                                  


  那么,在csv文件中格式就必须为:

                                 


  就是说,列和列之间,需要用英文输入法状态下的逗号","间隔:风云第一刀,古龙。

  3、在Struts2中导出数据到csv文件,并将生成的csv文件路径传递给下载Action进行下载。一个简单的例子。

  CsvAction,生成csv文件,并且将生成的csv文件完整路径传递到下载Action。

在Java Web开发中,经常需要导出大量的数据到Excel,使用POI、JXL直接生成Excel,很容易就造成内存溢出了。

  1、有一种方式,就是把数据写成csv格式文件。

  1)csv文件可以直接用Excel打开。

  2)写csv文件的效率和写txt文件的效率一样高。

  3)同样的数据内容,生成的csv文件的大小远远小于生成的Excel文件。

  从以上优点就可以看出生成csv文件消耗的内存绝对小于生成Excel文件。

  2、按一定的格式去生成csv文件,在Excel中打开的时候就是完整的行和列格式。

  例如:在Excel中的格式:

  那么,在csv文件中格式就必须为:

  就是说,列和列之间,需要用英文输入法状态下的逗号","间隔:风云第一刀,古龙。

  3、在Struts2中导出数据到csv文件,并将生成的csv文件路径传递给下载Action进行下载。一个简单的例子。

  CsvAction,生成csv文件,并且将生成的csv文件完整路径传递到下载Action。


配置文件:

<!--将csv文件路径传递到公共的下载Action进行下载  -->
<action name="exportData2CSV" class="cn.luxh.struts2.action.CsvAction" method="exportData2CSV">
<result type="redirectAction">
<param name="actionName">download</param>
<param name="nameSpace">/download</param>
<!--附件的完整路径 ,传递给下载Action -->
<param name="fileName">${fileName}</param>
</result>
</action>


 4、看一下同样的数据内容,csv文件和Excel文件的大小对比: 

                                       


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内存溢出 poi excel