簡體   English   中英

Function...Workbooks.Open() 在打開 excel 到 c# 的.xla 和.xla 插件時失敗 - HRESULT:0x80010105 (RPC_E_SERVERFAULT)

[英]Function ...Workbooks.Open() is failed while opening .xla and .xla addins of excel through c# - HRESULT: 0x80010105 (RPC_E_SERVERFAULT)

我在 Visual Studio 中的 c# 中編寫了代碼,然后打開 excel,運行宏並關閉 excel 我循環執行(在循環中並在每個循環之間延遲)有時 function 會失敗,有時它會工作

我收到的錯誤消息:“服務器拋出異常。(HRESULT 異常:0x80010105 (RPC_E_SERVERFAULT))”

請問有人可以幫幫我嗎???


    public void Open()
        {
            try
           {
                ExcelApp.Workbooks.Open(@"C:\Program Files (x86)\REFPROP\REFPROP.XLA");
                ExcelApp.Workbooks.Open(@"C:\Program Files (x86)\REFPROP\REFPROP_Ribbon.xlam");

                foreach (Excel.AddIn item in ExcelApp.AddIns)
                {
                    if (item.Name.Equals("REFPROP.XLA") || item.Name.Equals("REFPROP_Ribbon.xlam"))
                    {
                        item.Installed = false;
                        item.Installed = true;
                    }
                }
                Thread.Sleep(3000);

                //so then opening excel workbooks:
                ExcelBook = ExcelApp.Workbooks.Open(ExcelPath);
                Opened = true;

                Thread.Sleep(3000);


                ExcelApp.Workbooks.Open(@"C:\Program Files (x86)\REFPROP\REFPROP.XLA");
                ExcelApp.Workbooks.Open(@"C:\Program Files (x86)\REFPROP\REFPROP_Ribbon.xlam");

                foreach (Excel.AddIn item in ExcelApp.AddIns)
                {
                    if (item.Name.Equals("REFPROP.XLA") || item.Name.Equals("REFPROP_Ribbon.xlam"))
                    {
                        item.Installed = false;
                        item.Installed = true;
                    }
                }

                Thread.Sleep(3000);

            }
            catch (Exception e)
            {
                throw;
            }
        }

您在運行時收到該異常的原因可能有多種。

首先,我建議在代碼中釋放底層 COM 對象,不要依賴 GC。 為此使用Marshal.ReleaseComObject方法,然后將 object 設置為null

其次,嘗試將計算模式設置為manual

第三,確保該文件不需要管理員權限。

您可能會發現類似的線程有幫助,請參閱Excel interop 服務器拋出異常。 (HRESULT 異常:0x80010105 (RPC_E_SERVERFAULT))

暫無
暫無

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

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