开发环境: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。 –