Code Bye

c# excel导出性能优化

系统中有七出导出功能,也有导入功能。
导入功能上传的excel表格中,有时候会有上千条数据。
导出有时也会导出上千条。
一天若对此进行多次操作,系统内存升的很快。
问一下有什么比较好的解决办法么?
解决方案

10

什么意思?几千条很小吧!
你导入和导出也是每次进行,不是以增量的形式吧?所以只有处理那一瞬间内存会上去,处理完了就会降下来,为什么会一直上升,处理后你要去释放该释放的内容

10

用第三方组件吧,例如NPOI 组件,你百度下!省资源!

10

excel导出时挺慢的,不过也不至于多次操作让内存持续增加,可能是用完了没有释放excel资源,记得有个Exit之类的方法需要调用

10

用第三方导出就好了.
看本人的帖子
http://bbs.csdn.net/topics/390830774

10

别直接到处excel, 到处生成一个xml文件,后缀改为xls, 也可以直接用excel打开的, 而且是文本输出,性能绝对高。一个空页面中间就一个table, 例如,把下面这段文本存为.xls结尾的文件:
<html><head><meta http-equiv=Content-Type content=”text/html; charset=utf-8″>
</head>
<body>
<table border=1><tr><td align=”center” colspan=3><font size=4><b>客户采购汇总</b></font></td></tr><tr>
<td align=”center” bgcolor=#EAF7FF><b>会员名称</b></td>
<td align=”center” bgcolor=#EAF7FF><b>积分</b></td>
<td align=”center” bgcolor=#EAF7FF><b>小计</b></td>
<tr><td align=”Left” style=”vnd.ms-excel.numberformat:@”>测试修改客户全称</td><td align=”Center” style=”vnd.ms-excel.numberformat:@”></td><td align=”Right” style=”vnd.ms-excel.numberformat:#,##0.00″>0.00</td></tr>
<tr><td align=”Left” style=”vnd.ms-excel.numberformat:@”>测试修改客户全称</td><td align=”Center” style=”vnd.ms-excel.numberformat:@”></td><td align=”Right” style=”vnd.ms-excel.numberformat:#,##0.00″>0.00</td></tr>
</table>
</body>
</html>

10

Response.Clear();
Response.Buffer = true;
Response.Charset = “UTF-8”;
Response.AddHeader(“Content-Disposition”, “attachment; filename=抽奖对象.xls”);
Response.ContentEncoding = System.Text.Encoding.GetEncoding(“UTF-8”);
Response.ContentType = “application/ms-excel;charset=UTF-8”;
在页面的上面放上这段代码,无需第三方插件,速度快,够灵活,你的页面表格是什么样子,导出就是什么样子

10

npoi
1W 条数据  只需2 秒

10

10

你这个导入导出完了释放一下,就几千条的数据也不会内存暴涨;
然后看看楼上建议的NPOI。

10

NPOI这个没用过,不知道效果,另外给你个选择,用Aspose

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c# excel导出性能优化