簡體   English   中英

打開 xlsx 文件時出現 HRESULT 異常:0x80010105 (RPC_E_SERVERFAULT)

[英]Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT) when opening xlsx file

我有一個讓我發瘋的例外。

當我嘗試以這種方式打開 .xlsx 文件時

Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
string v = "path\File.xlsx";
Workbook wb = app.Workbooks.Open(v); //This triggers the exception
app.Visible = true;
Worksheet sh = wb.Sheets[1];

我有這個例外

Error: System.Runtime.InteropServices.COMException (0x80010105): Server launches an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT))
at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object 
at MainWindow.loadFile(String v) in MainWindow.cs:line 139

任何人都可以給我一個解決方案,為什么會發生這種情況?

Ps:我正在使用 Interop 庫打開 Excel。

編輯:顯然如果我設置app.Visible = true; 它有效,但我不希望出現 Excel 窗口。

 appExcel.Visible = true;
            classeur = appExcel.Workbooks.Open(DB_Path, 0, false, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            appExcel.Visible = false;

我仍然沒有找到解決方案,但是當我使用 abdosup 的解決方法時,Excel 窗口只顯示一小段時間,並且用戶在打開的工作簿中按下 ctrl+v 鍵加載可能會崩潰,這很危險。

請看:

appExcel.Visible = true;
OldExcelTop = appExcel.Top;
appExcel.Top = 10000;
appExcel.OnKey("^v", "");
classeur = appExcel.Workbooks.Open(DB_Path, 0, false, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
appExcel.Visible = false;
appExcel.OnKey("^v", Type.Missing);
appExcel.Top = OldExcelTop ;

在 Excel中的Disable copy(ctrl+c), paste(ctrl+v),cut(ctrl+x) 中找到了這個解決方案

暫無
暫無

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

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