2017-03-24 3 views
1

Ich schrieb einen Code, um Zellenwerte aus vorhandenen Excel-Datei zu lesen.
Beim Debuggen wirft das Programm eine "System.Runtime.InteropServices.COMException". Ich weiß, dass wir niemals 2 Punkte mit COM-Objekten verwenden sollten, aber ich weiß nicht, wie ich meinen Code reparieren soll.
Bitte helfen Sie mir zu bereinigen COM-Objekt beim Öffnen Excel-Datei.So bereinigen Sie COM-Objekt beim Öffnen der Excel-Datei

private void button1_Click(object sender, EventArgs e) 
    { 
     Excel.Application xlApp = new Excel.Application(); 
     Excel.Workbook xlBook; 
     Excel.Worksheet xlSheet; 

     xlBook = xlApp.Workbooks.Open(@"C:\Users\trump45\Desktop\trump45.xls"); 
     xlApp.Visible = false; 

     xlSheet = xlBook.Sheets["Sheet4"]; 

     //Exception rising here    
     string d = xlSheet.UsedRange.Cells[3, "B"].Value.ToString(); 

     MessageBox.Show(d); 

     xlBook.Close(false, Missing.Value, Missing.Value); 
     xlApp.Quit(); 

     System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet); 
     System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook); 
     System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); 

    } 
+2

Möglichem Duplikat [Wie aufzuräumen ich richtig Excel Interop Objekte?] (http://stackoverflow.com/questions/158706/how-do-i-properly-clean-up-excel-interop-objects) –

+0

Ich habe diesen Beitrag bereits gelesen, aber ich weiß nicht, wie zu beheben mein Code. Bitte repariere meinen Code für mich. Vielen Dank – mrJohnt4

+1

* Bitte korrigieren Sie meinen Code für mich * ist keine gültige Frage hier. Verwenden Sie den Code in dem verknüpften Duplikat, den Debugger und den Stack-Trace von der Ausnahme und ermitteln Sie, was den Fehler verursacht hat. Der Code im verknüpften Duplikat zeigt Ihnen genau, wie Sie den Excel-Interop-Code richtig bereinigen können. Erwarte nicht, dass wir alles für dich tun. Es gibt hier auch Fragen zum Abrufen des Inhalts einer Zelle mit C#. –

Antwort

0

Wenn Sie alphanumerische Index Verwendung verwenden:

string d = xlSheet.UsedRange.Cells["B3"].Value.ToString(); 

Oder die Zellen für den Zugriff auf den Index Verwendung mit

string d = xlSheet.UsedRange.Cells[3, 2].Value.ToString(); 
Verwandte Themen