schreiben - vb.net excel tabelle auslesen




Ändern der Excel-Tabelle mit.NET (6)

Hier ist das Problem:

Ich muss eine vorhandene Excel-Tabelle mit .NET ändern. Die Tabelle ist sehr komplex und ich muss nur Daten in einigen vordefinierten Bereichen hinzufügen.

Ich untersuche meine Optionen, und Excel Automation / InterOp kommt nicht in Frage, da ich eine ASP.NET-Website implementiere und Excel wahrscheinlich nicht auf dem Server installiert ist. Von dem, was ich online finde, ist InterOp auch eine sehr teure Lösung performancewise.

Das Erstellen einer CSV-Datei ist aufgrund der komplexen Natur der ursprünglichen Kalkulationstabelle ebenfalls ausgeschlossen.

Derzeit lehne ich eine ADO.NET OleDb-Lösung an, aber ich finde das sehr selten erwähnt (Google und Stackoverflow.com), also bin ich etwas besorgt: Was ist der Haken bei OldDb für Excel? Der einzige Nachteil, den ich auf MSDN bis jetzt finden kann, ist, dass ich keine Zellen mit Formeln erstellen kann, aber das ist wirklich kein Problem in meinem Fall.

Ich habe auch SSIS in Betracht gezogen, aber das basiert nur auf meiner Annahme, dass Sie beim Generieren von Tabellen vorhandene Excel-Dateien verwenden können. Ich weiß nicht, ob das möglich ist oder nicht.

Dann gibt es OpenXml. Es scheint im Vergleich zu OldDb übermäßig kompliziert zu sein, und es ist immer noch unbestimmt, welche der älteren Excel-Versionen ich unterstützen muss.

Fehle ich etwas? Gibt es mehr Alternativen?


Das Problem bei der Verwendung von Excel als ISAM-Datenbank unter Verwendung eines beliebigen Treibers (ODBC, OLEDB, usw.) ist, dass der Datentyp der Spalte auf den ersten 8 Zeilen in der Spalte basiert - das ist pure evil; Zum Beispiel: Wenn eine Spalte so etwas wie ein Teil # ist und die ersten 8 Teile nur numerisch sind, dann erhalten Sie NULL für jede Zelle in dieser Spalte, in der das Teil # nicht numerisch ist. (110000 gegen 111000-1 oder 111000A). Dies ist unabhängig davon, wie Sie die Spalte in Excel formatieren (selbst wenn Sie die Spalte als Text festlegen).

Ich werde versuchen, ein Dokument zu finden und zu aktualisieren. Hier ist eins:

http://support.microsoft.com/kb/194124

http://msdn.microsoft.com/en-us/library/bb177610.aspx


Ich habe Aspose.Cells für solche Dinge mit gutem Erfolg verwendet. Die Dokumentation kann ein wenig stumpf sein, aber das Produkt scheint zu funktionieren. Es wird nicht erforderlich sein, Excel auf dem Server zu haben, und es funktioniert mit den neuesten Versionen von Excel (und früheren Versionen).


Sehen Sie sich Excel Web Access , das Teil von Excel Services in MOSS ist, einer serverseitigen Version von Excel, mit der Sie Ihre Excel-Informationen über einen Webbrowser berechnen und anzeigen können. Die MOSS-Übersichtsseite beschreibt das Sharepoint-Framework, das Excel-Funktionalität auf dem Server bereitstellen kann. Mit der VSTO-API können Sie programmgesteuert auf Tabellen zugreifen.


Sie haben noch wenige Lösungen. 1) Drittanbieter-Komponente für Excel-Dateien. (Ich denke, das ist die meiste Schmerz-les & zuverlässige Lösung) 2) Verwenden von HTML-Tabelle.

1) Schau einfach ins Internet :) 2) Das Excel funktioniert sehr gut mit HTML-Tabellen. Wenn Sie diesen HTML-Code generieren:

<html><body>
<table>
<tr><td><b>Column A</b></td><td><b>Column B</b></td></tr>
<tr><td><font color="red">-154</b></td><td><font size="5">hello world</font></td></tr>
</table>
</body></html>

Das Excel wird es als Arbeitsblatt anzeigen, wie Sie es formatiert haben. Ich denke, das ist der universellste Weg, wie man "reiches" Excel-Arbeitsblatt in der Internet-Umgebung erstellt, ohne auf dem Server installiert zu sein.


Testen Sie MyXls eine .NET-Lösung zum Lesen und Schreiben von binären XLS-Dateien.








excel