簡體   English   中英

從C#.Net(VS2010)打開Excel文件時出錯

[英]Error in Opening the Excel file from C#.Net (VS2010)

我正在嘗試使用C#(VS2010專業版)代碼打開Excel文件(.xlsx)。 在執行/單步執行以下代碼的最后兩行時,我得到了(對我來說是不可追蹤的)異常。 下面提到的是我用於打開現有excel文件的代碼。

        string tesfile = "C:\\Users\\AWaheed3\\Desktop\\1.xlsx";
        Microsoft.Office.Interop.Excel.Application xlApp;
        Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
        object misValue = System.Reflection.Missing.Value;
        xlApp = new Microsoft.Office.Interop.Excel.Application();
        xlApp.Visible = true;
        xlWorkBook = xlApp.Workbooks.Open(tesfile, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);   

另外,我還在代碼的開始部分將此行包括在內。 另外,我已經從Project-> Add Reference(.NET選項卡)中添加了Microsoft.Office.Interop.Excel的引用。

 using Microsoft.Office.Interop.Excel;

誰能告訴我為什么我的代碼失敗/引發錯誤?

問候阿薩德

編輯* * ** * ** * ** * ** * ** * ** * ** * ** * *

這是我收到的消息/錯誤。 請注意,即使執行xlApp.Visible = ture行,代碼也會失敗。 錯誤是

無法將類型為“ Microsoft.Office.Interop.Excel.ApplicationClass”的COM對象轉換為接口類型為“ Microsoft.Office.Interop.Excel._Application”。 此操作失敗,因為具有以下錯誤的IID為“ {000208D5-0000-0000-C000-000000000046}”的接口在COM組件上的QueryInterface調用由於以下錯誤而失敗:庫未注冊。 (來自HRESULT的異常:0x8002801D(TYPE_E_LIBNOTapped))。


嘗試刪除雙反斜杠並改為寫\\,或者您可以做的是

Microsoft.Office.Interop.Excel.Application excel = null;
Microsoft.Office.Interop.Excel.Workbook xls = null;
try
{
     excel = new Microsoft.Office.Interop.Excel.Application();
     object missing = Type.Missing;
     object trueObject = true;
     try
     {
          excel.Visible = false; // or true
          excel.DisplayAlerts = false;
     }
     catch(Exception e)
     {
                Console.WriteLine("-------Error hiding the application-------");
                Console.WriteLine("Occured error might be: " + e.StackTrace);
     }
     xls = excel.Workbooks.Open(excelFile, missing, trueObject,    missing,missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
     //xls = excel.Workbooks.Open(@"file.xls", missing, trueObject,    missing,missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
}
catch (Exception ex)
{
            MessageBox.Show("Error accessing Excel document.\n\n" +
            ex.Message);
}
// Must be surrounded by try catch to work.
// http://naimishpandya.wordpress.com/2010/12/31/hide-power-point-application-window-in-net-office-automation/

@刪除路徑的任何問題。 代碼與您的代碼相似。 我只是用不同的方式重寫它。 尋找System.Reflection,我改用System.Type。 還有一些將來的建議,如果您使用COM文件,請嘗試在最后正確關閉它們。 **編輯。

暫無
暫無

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

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