C# 操作Excel報錯

1. 錯誤一

1.1 錯誤信息

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 服務器運行失敗(Exception from HRESULT: 0x80080005(CO_E_SERVER_EXEC_FAILURE))

1.2 原因分析

C#沒有通過程序訪問Excel的權限。

1.3 解決方案

    1. 點擊鍵盤上的 WIN+ R 快捷鍵,在彈出的運行窗口中輸入 comexp.msc -32,點擊確定按鈕,打開組件服務。


      運行窗口
    1. 在組件服務 -> 計算機 -> 我的電腦 -> DCOM配置 中找到 Microsoft Excel Application 服務。


      服務列表
    1. 在Microsoft Excel Application 上右鍵,屬性。在彈窗的窗口中選擇 安全,啟動和激活權限,選擇自定義,點擊編輯


      授權
    1. 在彈窗中,點擊“添加”,輸入 everyone, 點擊確認


      天基按用戶
    1. 選擇添加后的用戶名,勾選所有的 允許,點擊確認保存。


      授權
    1. 選擇 配置權限,重復 4-5 步驟
配置權限
  • 7 選擇 訪問權限, 重復4-5 步驟


    訪問權限

2. 錯誤二

2.1 錯誤信息

服務器出現意外情況。(異常來自 HRESULT:0x80010105(RPC_E_SERVERFAULT))

2.2 原因分析

可能是安裝的某些閱讀器或編輯器,修改的Excel的打開配置導致。

2.3 解決方案

    1. 打開電腦的Excel程序,點擊文件 -> 選項。


      Excel文件界面
    1. 點擊加載項, 選擇 “COM 加載項”,點擊“轉到”。


      加載項
    1. 去掉所有勾中的選項,點擊確認。
COM加載項

3. 錯誤三

3.1 錯誤信息

消息篩選器顯示應用程序正在使用中。(異常來自 HRESULT:0x8001010A(RPC_E_SERVERCALL_RETRYLAYTER))

3.2 原因分析

沒有操作權限

3.3 解決方案

以管理員的身份運行軟件

4. 錯誤四

4.1 錯誤消息

無法將為“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 對象強制轉換為接口類型 “Excel._Application”。此操作失敗的原因是對 IID 為“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 組件調用 QueryInterface 因以下錯誤而失敗:不支持此接口(異常來自HRESULT:0x80004002(E_NOINTERFACE))。

4.2 原因分析

系統(tǒng)曾經安裝過高版本的Office或Wps后卸載,卸載存在殘余。例如:卸載了office2013,安裝了office2010

4.3 解決方案

4.3.1 解決方案一: 使用office的自動修復功能

    1. 打開 控制面板 —> 程序 —> 程序和功能


      控制面板
    1. 找到安裝的Office程序,右鍵 —> 更改,選擇修復即可。


      修復Office

4.3.2 解決方案二: 刪除當前Office版本不符合的注冊表

    1. 點擊WIN + R 鍵,打開運行窗口,輸入 regedit 進入注冊表


      打開注冊表
    1. 查看office版本及配置位置
      64位Office:
計算機\HKEY_CLASSES_ROOT\WOW6432Node\Interface\{00020970-0000-0000-C000-000000000046}\TypeLib
64位Office配置

32 位Office配置

計算機\HKEY_CLASSES_ROOT \Interface\[00020970-0000-0000-C000-000000000046]\TypeLib
32位Office配置
    1. 根據配置的路徑查找,查找到對應的位置,刪除掉其他的版本
      64位Office配置中的路徑是 {00020905-0000-0000-C000-000000000046}, 版本是 8.7,按照路徑查找位置
計算機\HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}

該文件夾下的版本號,只保留對應的8.7,刪除掉其他的版本即可。


刪除其他版本的注冊表

32位與64位操作相同,查找相應的位置,刪除對應的版本。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容