2016-10-10 48 views
0

我在C#中有此代碼,用於打開Excel文件。使用C#打開Excel文件usint Interop使用C#

Excel.Application oXL = new Excel.Application(); 
Excel._Workbook oWB; 

String filename = "C:\\plantilla2.xlsx"; 

oWB = oXL.Workbooks.Open(filename, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 

MessageBox.Show("FIN"); 

此代碼在兩天前工作正常。我沒有改變任何東西,現在我在打開excel文件的行中出現錯誤。 首先,我看到一條消息,「Excel正在試圖恢復信息」

此後,我得到的異常「的遠程過程調用錯誤。(Excepción德HRESULT:0x800706BE)」

我不知道是什麼出錯了。我已經檢查了這個網站中解釋的參考資料。 http://csharp.net-informations.com/excel/csharp-open-excel.htm

+0

對不起,我拼錯了路徑。正確的路徑是「C:\\ plantilla2.xlsx」。該文件位於該路徑中。 – Kezern

+0

在打開工作簿之前嘗試設置'oXL.Visible' = true。您可能會看到來自Excel的錯誤消息,它提供了一些線索。或者嘗試使用Excel交互式打開Excel文件。也可以使用任務管理器來檢查是否有隱藏的Excel實例仍在運行,可能是從以前運行應用程序開始。 – Joe

+0

您可以嘗試禁用所有Excel的加載項並查看錯誤是否仍然存在。這爲我解決了它。 – ltiveron

回答

0

看起來像RPC服務關閉。你確定服務「遠程過程調用(RPC)」在這裏「控制面板\管理工具\服務」有一個「運行」狀態?

0

我不知道發生了什麼事。我已經重新啓動電腦,現在它工作。

0

這應該有所幫助。

using System; 
using System.Drawing; 
using System.Windows.Forms; 
using Excel = Microsoft.Office.Interop.Excel; 

namespace WindowsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       System.Data.OleDb.OleDbConnection MyConnection ; 
       System.Data.DataSet DtSet ; 
       System.Data.OleDb.OleDbDataAdapter MyCommand ; 
       MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\csharp.net-informations.xls';Extended Properties=Excel 8.0;"); 
       MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection); 
       MyCommand.TableMappings.Add("Table", "TestTable"); 
       DtSet = new System.Data.DataSet(); 
       MyCommand.Fill(DtSet); 
       dataGridView1.DataSource = DtSet.Tables[0]; 
       MyConnection.Close(); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show (ex.ToString()); 
      } 
     } 
    } 
} 

請參閱此鏈接。

http://csharp.net-informations.com/excel/csharp-excel-oledb.htm