簡體   English   中英

在C#中打開Excel文件關閉錯誤

[英]Opening Excel file in C# closing erroring

我正在.NET 4.0(C#)中打開Excel文件。 我正在使用互操作性的12.0版本。 Excel文件是xls(舊)。 我可以很好地打開它,但是workbook.close()會導致COM異常,並且周圍沒有真實的細節。

oExcel = new Application();
oExcel.Visible = true;
oExcel.DisplayAlerts = false;

oBooks = oExcel.Workbooks;
oBook = null;
oBook = oBooks.Open(finalFilename);

oBook.Close();   // this gives COM Exception

有什么想法我做錯了嗎?

這是有趣的事情。 我不必保存。 在完成需要做的事情之后,我取出需要的數據並存儲起來,剛才復制的工作簿就消失了。

        Excel.Application objExcel = new Excel.Application();
        Excel.Workbook objWorkbook = (Excel.Workbook)(objExcel.Workbooks._Open(@"D:\a.xls", true,
        false, Missing.Value, Missing.Value, Missing.Value,
        Missing.Value, Missing.Value, Missing.Value,
        Missing.Value, Missing.Value, Missing.Value,
        Missing.Value));

您的代碼...

            objWorkbook.Save();         
            objWorkbook.Close(true, @"C:\Documents and Settings\Administrator\b.xls", true);
            objExcel.Quit();

以我的經驗,僅打開和關閉錯誤很可能表明文件有問題。 Excel 桌面非常寬容,可以正常處理文件的任何問題。 該文件在Excel中可能看起來正常工作,而沒有給出任何錯誤提示。

您可以嘗試在Excel中重新保存文件。 如果仍然無法正常運行,請嘗試創建一個新的電子表格並從舊文件中復制內容。

Workbook.Close似乎不包含沒有參數的Close方法。

http://msdn.microsoft.com/zh-CN/library/microsoft.office.tools.excel.workbook.close.aspx

方法簽名:void Close(對象SaveChanges,對象文件名,對象RouteWorkbook)

        object missing = Type.Missing;
        object noSave = false;
        oBook.Close(noSave, missing, missing);

暫無
暫無

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

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