2010-11-21 14 views
5

Könnte mir jemand helfen, ein einfaches Excel-Arbeitsblatt in C# App zu lesen? Ich möchte in der Lage sein, jede Zeile zu iterieren und eine Handhabe für jede der Spalten zu haben.C# lesen Excel-Arbeitsblatt

Danke, Stange.

Antwort

2

Die allgemeine Methode besteht darin, Excel COM Interop zu verwenden. Eine schnelle Google findet viele Tutorials. Hier ist eine für das Erstellen eines Blattes - es sollte Sie in die Richtung zeigen (das Lesen ist ziemlich das Gleiche).

Eine alternative Methode ist die Verwendung von ADO.Net. Dies ist nur dann wirklich praktikabel, wenn Ihre Excel-Tabelle als Tabelle (dh Datenbank) gut ausgebildet ist, aber einfacher ist als die Interoperabilität.

+0

ADO ist nicht nur einfacher, sondern auch schneller. –

+0

Wirklich? Ich denke, es macht Sinn. Ich habe nur Excel ADO.Net gegen richtige Datenbanken mit SQL-Abfragen verglichen und dann ist es sehr langsam, aber das liegt hauptsächlich daran, dass Excel Datenbankindizes nicht unterstützt. – winwaed

0

Während Excel COM Interop funktioniert, muss Excel auf dem Clientcomputer installiert werden. Wenn das kein Problem ist, dann ist alles in Ordnung, aber wenn es das ist, könntest du vielleicht die Aspose.Cells-Bibliothek betrachten (keine Zugehörigkeit, sie nur vorher benutzt). Sie sind einfach und leistungsfähig, obwohl sie kommerzielle Lizenzkosten tragen.

1

Wenn Sie die Excel 2007- oder 2010-Arbeitsmappe (ooxml-Format) öffnen möchten, können Sie Open XML SDK 2.0 for Microsoft Office herunterladen (für die Sie kein MS-Office installiert haben).

+0

Jede Version vor Excel 2007 können Sie Office Primary Interop Assemblys verwenden (mit COM Interop, für das MS Office installiert sein muss). –

+1

Tutorial mit Open XML SDK: http://msdn.microsoft.com/en-us/library/bb507946.aspx, Tutorial mit COM-Interop: http://dotnepperls.com/excel-interop –

0

Ich habe ADO.NET und Jet in der Vergangenheit verwendet. Seien Sie gewarnt, wenn Sie Spalten haben, die offensichtlich nicht von einem Typ sind, werden Sie seltsame Dinge passieren sehen. Jet versucht, basierend auf den ersten mehreren Werten einen Datentyp einer Spalte zuzuordnen. Das Schöne ist, dass Sie die Tabelle wie eine Tabelle abfragen können.