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