C# Winfrom在x32和x64環境中讀取Excel

1.OleDb讀取(必須裝Office,Office版本不一樣,參數設置不同)code

2.Microsoft.Office.Interop.Excel讀取(支持win7 x64)
win7 x32中報對象

  • .沒法將類型爲「System.__ComObject」的 COM 對象強制轉換爲接口類型「Excel.Application」。此操做失敗的緣由是對 IID 爲「{000208D5-0000-0000-C000-000000000046}」的接口的 COM 組件調用 QueryInterface 因如下錯誤而失敗: 不支持此接口 (異常來自 HRESULT:0x80004002 (E_NOINTERFACE))。

在網上找解決方法:
4位系統下,有些組件(微軟的)只有32位版本,64位的應用程序調用不了32位的COM組件,返回的結果就是沒有註冊類
別。 在64位系統中,VS2008默認會生成64位的程序,你能夠改變程序的部署平臺爲×86來生成32位的程序。
解決方法:
在「解決方案」-》「開發項目的名稱」,鼠標右擊,單擊「屬性」-》「生成」-》「目標平臺」,把「AnyCPU」改爲「
×86」,從新編譯程序便可。 (問題沒有解決)接口

  • .Microsoft.Office.Interop.Excel;的嵌入互操做類型改成false

報錯以下:開發

未能加載文件或程序集「Interop.Office, Version=99.1.0.0, Culture=neutral, PublicKeyToken=null」或它的某一個依賴項。系統找不到指定的文件。

3.NPOI讀取Excel 可支持(目前沒有發現環境問題)部署

相關文章
相關標籤/搜索