博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EPPlus导出大量数据
阅读量:6257 次
发布时间:2019-06-22

本文共 803 字,大约阅读时间需要 2 分钟。

  hot3.png

在将数据导出Excel的时候NPOI因创建太多单元格对象,导致内存溢出。大概20列的数据,4W行就会出现,故另寻它法进行处理。原本是用文件流来进行,但是会导致Excel文件损坏,后来找到EPPlus来进行导出操作。当然可能是本人能力有限,用NPOI不会导出大量数据,文件流操作也没有细研究。

            FileInfo file = new FileInfo(Server.MapPath("/Resource/OutFile/1.xlsx"));

            using (ExcelPackage package = new ExcelPackage())
            {
                //创建Sheet
                ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test");
                for (int i = 1; i < data.Count; i++)
                {

                    //也可以直接用指定单元格进行复制

                    //worksheet.Cells["A1"].Value="";

                    //直接指定行列数进行赋值
                    worksheet.Cells[i, 1].Value = data[i].AccumMonths;
                }
                package.SaveAs(file);
            }

 

注意:EPPlus所有的行和列的索引是从1开始的,如果写0会报行索引不在范围什么的。

注意:踩了一个坑,在测试的时候没有问题,放到生产服务器上在导出时报错,Error saving file xxx,后来仔细对比下服务器的差别,配置Everyone权限就好了。

此方式可以导出数据20列大概可以导出20W,具体没有试验,我一个Excel存10W数据,然后存放不同的Excel进行的。毕竟查询数据库时候,数据传输大也会比较慢。索性分批,然后压缩打包下载。

转载于:https://my.oschina.net/uwith/blog/852563

你可能感兴趣的文章
Jenkins_多项目构建(二):使用Maven聚集关系
查看>>
三大做空工具详解
查看>>
linux全方位掌握一个命令--思路比方法更重要
查看>>
[Flexbox] Use Flex to Scale Background Image
查看>>
【等待事件】序列等待事件总结(enq: SQ - contention、row cache lock、DFS lock handle和enq: SV - contention)...
查看>>
算法与数据结构(七) AOV网的拓扑排序(Swift版)
查看>>
maven pom.xml解释 (转)
查看>>
markdown to html
查看>>
Pspice仿真器
查看>>
ogg 、 Shareplex和DSG RealSync 对比
查看>>
NK3C程序配置
查看>>
webrtc中APM(AudioProcessing module)的使用2
查看>>
lunix的查看Tomcat目录下日志的快速操作
查看>>
zabbix添加邮件报警机制
查看>>
微信开放之模板消息
查看>>
Hql 中实用查询时候 引号的使用
查看>>
利用PowerShell复制SQLServer账户的所有权限
查看>>
SQLServer 维护脚本分享(10)索引
查看>>
js里父页面与子页面的相互调用
查看>>
AES加解密【示例】
查看>>