Tôi đang xuất một ma trận 1200 X 800 (indexMatrix) sang tệp excel bằng cách sử dụng tiêu chuẩn Microsoft.Office.Interop.Excel. Các ứng dụng hoạt động, chỉ là nó thực sự thực sự thực sự chậm (ngay cả đối với ma trận 100 x 100). Tôi cũng xuất khẩu trong một tập tin văn bản thông qua một TextWriter một nó hoạt động gần như ngay lập tức. Có cách nào để xuất sang tệp excel nhanh hơn không?Microsoft.Office.Interop.Excel thực sự chậm
Đây là mã của tôi:
Excel.Application xlApp=new Excel.Application();
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
//xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
for (int i = 0; i < 800; i++) //h
for (int j = 0; j < 1200; j++)
xlWorkSheet.Cells[i+1,j+1] =indexMatrix[i][j];
xlWorkBook.SaveAs("C:\\a.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
MessageBox.Show("Excel file created , you can find the file c:\\csharp-Excel.xls");
dường như có vấn đề tại .get_Resize. Dường như nó không tồn tại. – Alex
tại dòng excel.range, lỗi sau xuất hiện '' Hệ thống .__ ComObject 'không chứa định nghĩa cho' get_Resize '' – Alex
Tôi nghĩ bản chỉnh sửa sẽ sửa lỗi đó. Các ô [1,1] không trả về một đối tượng Range - vì vậy nó cần phải được cast. – Joe