簡體   English   中英

無法轉換COM對象'(Microsoft.Office.Interop.Excel._Worksheet)workbook.Sheets'

[英]Unable to cast COM object '(Microsoft.Office.Interop.Excel._Worksheet)workbook.Sheets'

我正在嘗試通過這種方式讀取excel文件,但出現錯誤:

Microsoft.Office.Interop.Excel.Application appExcel;
Microsoft.Office.Interop.Excel.Workbook workbook;
Microsoft.Office.Interop.Excel.Range range;
Microsoft.Office.Interop.Excel._Worksheet worksheet;

appExcel = new Microsoft.Office.Interop.Excel.Application();
workbook = appExcel.Workbooks.Open(path, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
// getting error on the below line
worksheet = (Microsoft.Office.Interop.Excel._Worksheet)workbook.Sheets;

錯誤如下。

無法將類型為“ System .__ ComObject”的COM對象轉換為接口類型為“ Microsoft.Office.Interop.Excel._Worksheet”。 此操作失敗是因為由於以下錯誤,IID為'{000208D8-0000-0000-C000-000000000046}'的接口的COM組件上的QueryInterface調用由於以下錯誤而失敗:不支持此類接口(HRESULT的異常:0x80004002(E_NOINTERFACE)) 。

對這個例外有任何想法嗎?

顯然, workbook.Sheets不是Worksheet

worksheet = (Microsoft.Office.Interop.Excel._Worksheet)workbook.Sheets;

更新:

Sheets是Worksheet的集合,因此添加索引:

Microsoft.Office.Interop.Excel._Worksheet worksheet;

worksheet = (Microsoft.Office.Interop.Excel._Worksheet)workbook.Sheets[0];

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM