開發環境:OutOfMemoryException異常,同時節省/創建/導出excel表
- OS - Windows 7的64位
- CPU - 睿i5 460M
- RAM - 8GB
- .NET框架 - 4.0
- Excel-Interop - Microsoft Excel 14.0對象庫
我正在使用Excel-Interop從導出excel文件DataGridView(dgv)。
當我節省超過15萬行
OutOfMemoryException異常
更被拋出。
{
object[,] valueObjArray = new object[rowCnt, colCnt];
int rowCnt = dgv.Rows.Count;
int colCnt = dgv.Columns.Count;
for (int rowIndex = 0; rowIndex < rowCnt; rowIndex++)
{
for (int colIndex = 0; colIndex < colCnt; colIndex++)
{
valueObjArray[rowIndex, colIndex] = dgv[colIndex, rowIndex].Value;
}
}
_workSheet.get_Range("A1", Convert.ToChar(colCnt + 64).ToString() + "1").Value2 = headerObjArray;
_workSheet.get_Range("A2", Convert.ToChar(colCnt + 64).ToString() + (rowCnt + 1).ToString()).Value2 = valueObjArray;
_workSheet.get_Range("B2", "B" + (rowCnt+1).ToString()).NumberFormat = "yyyy-mm-dd hh:mm";
_workBook.SaveAs(path);
}
這是加速我知道的最好方法。
但是,監視RAM後,我認爲它會導致內存增加。內存使用量達到900Mb左右時會引發異常。
如何捕獲此異常?
@Trix感謝您的編輯:D –
我已經最後保存了258927行,最後是15列。導出的文件大小爲24.2MB,內存使用量約爲600Mb。 –
在這個問題中,你寫道你有150,00行有問題。它不到258,927。 –