抱歉我的英语不好。我使用了Epplus库,非常喜欢它。但是我遇到了一个问题:内存不足。需要写入大量数据,无论如何。我想知道是否有可能将内容追加到Excel文件的末尾,而不必在内存中存储所有内容。或者创建多个文件,然后将它们连接成一个文件。谢谢。
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