2016-05-19 11 views
0

Ich bin ein Neuling zu C#, und ich versuche, ein einfaches Programm zu machen, das alle Zeilen aus einer Excel-Datei liest, und sie in einem Array oder einem anderen Datenspeicher in C#, also kann ich Manipulationen an diesen Daten vornehmen.C# Excel-Datei mit vielen Zeilen lesen

Was ist die beste Strategie, um dies mit C# zu tun, mit großen Excel-Dateien (etwa 200.000 Zeilen)?

gehen Sie einfach Zeile für Zeile aus der Excel-Datei, kopieren Sie es in C# in ein DataSet und manipulieren Sie dann das DataSet mit Schleifen?

Gibt es irgendwelche guten Beispiele, auf die Sie zeigen können?

danke

+2

Sie möchten Zeile für Zeile mit der Bibliothek 'Interop.Office.Excel' lesen. Erfahren Sie mehr über 'Range' – Ian

+1

Ich würde die EPPlus Opensource-Bibliothek betrachten, um zu sehen, ob das Ihren Anforderungen entspricht. Es ist viel schöner zu benutzen als Interop. –

+0

ist es möglich, ohne neue Bibliotheken zu importieren? nur mit den Standart C# libs? –

Antwort

0

Verwenden Microsoft.Office.Interop.Excel, können Sie es als assembley Referenz hinzufügen können, i seine unter Microsoft Office Kern beleieve und es ist sehr gut mit Excel

ein Beispiel wäre so etwas wie dieses:

Ihre Excel-Pfad

 Excel.Workbook workbook = app.Workbooks.Open(@"yourfilepathandname.xls") 

     int rCount = XLRangeTable.Rows.Count; 
     int cCount = XLRangeTable.Columns.Count; 


     object[,] Table = XLRangeTable.Value2; 

     for (int i = 1; i <= cCount; i++) 
     { 
      T.Columns.Add((string)Table[1, i]); 
     } 
     for (int j = 2; j <= rCount; j++) 
     { 
      DataRow R = T.NewRow(); 
      for (int i = 1; i <= cCount; i++) 
      { 
       R[i - 1] = Table[j, i]; 
      } 
      T.Rows.Add(R); 

Viel Spaß!

+0

danke für die schnelle Antwort, ein paar Hinweise: Was meinst du damit, "es als Assemby-Referenz verwenden" zu sagen? und in dem Code, den du gabst, wo ist die xl-Datei, an der ich arbeite? –

+0

Wenn Sie in der angegebenen Baugruppe "Referenz hinzufügen" in Ihr Projekt einfügen, sollte dies deutlich werden. Es gibt eine "offene Datei" -Funktion, und von dort sollten Sie in der Lage sein, ein Blatt zu bekommen, das Zeilen/Spalten enthält. – Neil

+0

Entschuldigung, Sie müssten Ihre Excel-Arbeitsmappe wie folgt deklarieren: Excel.Workbook workbook = app.Workbooks.Open (@ "yourfilepathandname.xls"); – Nonagon

Verwandte Themen