4
对不起,我的英语。我使用了Epplus库,我非常喜欢它。但我有一个问题:内存不足。无论如何,都需要编写大量的数据。我想知道是否有可能追加到Excel文件的末尾并不存储在所有的内存中。或创建多个文件,然后连接成一个文件。提前致谢。Epplus,内存不足
对不起,我的英语。我使用了Epplus库,我非常喜欢它。但我有一个问题:内存不足。无论如何,都需要编写大量的数据。我想知道是否有可能追加到Excel文件的末尾并不存储在所有的内存中。或创建多个文件,然后连接成一个文件。提前致谢。Epplus,内存不足
1)如果从数据库 检索数据使用DataReader,而不是数据表
2)写Excel中一个临时文件,将其删除完成后(如果它的网络环境中,使用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
是对应用程序32或64位? 64位将提供更大的地址空间来处理并让您使用交换文件。 – user1937198
如果应用程序将是64,我不明白它是如何提供帮助的,因为随着时间的推移,数据越来越多。而那些额外的几兆字节,是几天的解决方案。 – user2572457
64位为本地地址空间提供了高达8TB的空间,如果您获得了大量数据,您可能希望将其存储在数据库中。 – user1937198