2016-10-10 5 views
0
öffnen

Ich habe diesen Code in C# y verwendet, um eine Excel-Datei zu öffnen.Excel-Datei usint Interop mit 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"); 

Dieser Code funktionierte vor zwei Tagen. Ich habe nichts geändert und jetzt bekomme ich einen Fehler in der Zeile, in der die Excel-Datei geöffnet wird. Zuerst sehe ich eine Nachricht

„Excel Informationen zu erholen versucht“ Und danach habe ich die Ausnahme erhalten „Fehler im Remoteprozeduraufruf. (Excepción de HRESULT: 0x800706be)“

Ich weiß nicht, was geht falsch. Ich habe die Referenzen wie in diesem Web erklärt überprüft. http://csharp.net-informations.com/excel/csharp-open-excel.htm

+0

Es tut mir leid, dass ich den Pfad falsch geschrieben habe. Der korrekte Pfad ist "C: \\ plantilla2.xlsx". Eine Datei befindet sich in diesem Pfad. – Kezern

+0

Versuchen Sie, 'oXL.Visible' = wahr zu setzen, bevor Sie die Arbeitsmappe öffnen. Möglicherweise sehen Sie eine Fehlermeldung von Excel, die Ihnen einen Hinweis gibt. Oder versuchen Sie, die Excel-Datei interaktiv mit Excel zu öffnen. Verwenden Sie auch den Task-Manager, um zu überprüfen, ob Sie noch Instanzen von Excel ausgeblendet haben, möglicherweise aus dem letzten Mal, als Sie Ihre Anwendung ausgeführt haben. – Joe

+0

Sie können versuchen, alle Excel Add-Ins zu deaktivieren und sehen, ob der Fehler weiterhin auftritt. Das hat es für mich gelöst. – ltiveron

Antwort

0

Sieht wie RPC-Dienst aus. Stellen Sie sicher, dass der Dienst "Remoteprozeduraufruf (Remote Procedure Call, RPC)" hier "Systemsteuerung \ Verwaltung \ Dienste" den Status "Ausgeführt" hat?

0

Ich weiß nicht, was passiert ist. Ich habe den Computer neu gestartet und jetzt funktioniert es.

0

Dies sollte helfen.

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()); 
      } 
     } 
    } 
} 

Siehe diesen Link.

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