Próbując uzyskać odwołanie do arkuszy (z wykorzystaniem współdziałanie Excel):Dlaczego nie można ustawić rzutowania obiektu z Excela?
Excel.Application xl = new Excel.ApplicationClass();
Excel.Workbooks xlWorkBooks = xl.Workbooks;
Excel.Workbook xlWorkBook = xlWorkBooks.Open(fileName, 0, false, 5, "",
"", true, Excel.XlPlatform.xlWindows, "\t",
false, false, 0, true, 1, 0);
// Next line crashes
Excel.Worksheets xlWorkSheets = (Excel.Worksheets) xlWorkBook.Worksheets;
błędu jest to, że nie może oddać go:
Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel.Worksheets'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208B1-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
Czy moja obsada błędna?
@Zach i @Joel też mają rację, ale byłeś pierwszy w bramce wyjściowej, zielony czek. – AngryHacker
Chociaż jest to dobrze udokumentowane, może to być jedno z pytań/odpowiedzi, które sprawiają, że warto. – TheBlastOne
Dziękuję za to. "Gotcha" była dla mnie, że 'Excel.Workbook.Worksheets' zwraca obiekt' Excel.Sheets', a nie obiekt Excel.Worksheets. – Lopsided