Epplus,内存不足

时间:2013-07-11 11:41:21

标签: c#

抱歉我的英文。我使用了Epplus库,我非常喜欢它。但我遇到了一个问题:内存不足。无论如何,都需要编写大量数据。我想知道是否有可能追加到Excel文件的末尾并未存储在所有内存中。或者创建多个文件,然后连接成一个文件。提前谢谢。

1 个答案:

答案 0 :(得分:0)

1)如果从数据库中检索数据 使用datareader而不是datatable

2)将excel写入临时文件,完成后删除它(如果是web环境,使用response.writefile然后删除它)

3)首先写入标题然后将数据附加到它 这样的事情(使用我的手机输入)

var pck = new ExcelPackage();
var ws = pck.AddSheet("sheet1");
//write header here
pck.saveas(fileinfo);
pck.dispose(); // not sure if function existed
pck= new excelpage(fileino.fullname);
ws = pck.worksheets[1];
var rowIndex =0;
while (reader.read())
{
    if (++rowindex % 100000 == 0)
    {
       // save and re-open
    }
    //write row here
}
pck.save();
//dispose / send file / delete file etc