使用Microsoft.office.Interop.Excel读取Excel时性能下降

从excel中读取Microsoft.office.Interop.Excel和使用Range dataRange = (Range)cSheet.Cells[row, col]; performance很慢。 当我删除Range dataRange = (Range)cSheet.Cells[row, col]; 这是更快。 我错过了什么。 我应该改变什么?

 int rows = cSheet.UsedRange.Rows.Count; int cols = cSheet.UsedRange.Columns.Count; for (int row = 2; row <= rows; row++) { for (int col = 1; col <= cols; col++) { Range dataRange = (Range)cSheet.Cells[row, col]; } } 

你想在一个操作中做到这一点:

 object[,] objectArray = cSheet.get_Range("A1:C4").Value2; dataRange.Value2 = objectArray; 

要获得“A1:C4”的UsedRange地址,请尝试:

 Microsoft.Office.Interop.Excel.Range range = cSheet.UsedRange; string address = range.get_Address(); string[] cells = address.Split(new char[] {':'}); string beginCell = cells[0].Replace("$", ""); string endCell = cells[1].Replace("$", "");