Welche ist die Beste OLEDB-Oder Excel-Objekt Oder Datenbank
Ich muss arbeiten mit Excel 2007-Datei zum Lesen der Daten. für das, was ist der beste Weg, dies zu tun:
- Mit OLEDB-Provider
- Excel-Interop-Objekt
- Sichern Sie die Excel-Daten in Datenbank und nach dem Verfahren
freundlich mich leiten zu wählen.
- Deine Frage ist ziemlich unklar. Lesen Sie zu Fragen, SO Fragen hier: tinyurl.com/so-hints
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind meine Meinungen:
1
. Verwenden von OLEDB-Providernur Ihre Bedürfnisse, wenn Sie einfach, einheitlich strukturierten Tabellen. Es wird nicht viel helfen, zum Beispiel, wenn Sie zu extrahieren eine beliebige Zelle die Formatierung Informationen. Das Jet-Datenbankmodul-buggy "row type guessing" - Algorithmus kann, machen diesen Ansatz fast unbrauchbar. Aber wenn der Datentyp eindeutig identifiziert werden kann von den ersten paar Zeilen der einzelnen Tabellen, kann dieser Ansatz ausreichend. Pro: es ist schnell, und es funktioniert sogar auf Computern, wo MS Excel nicht installiert ist.
2
. Excel-Interop-Objektkann sehr langsam sein, vor allem im Vergleich zu option 1, und Sie muss MS Excel installiert sein. Aber Sie bekommen den kompletten Zugriff auf das Excel-Objektmodell, die Sie extrahieren können fast alle Informationen (zum Beispiel: Informationen zur Formatierung, Farben, frames etc), die gespeichert ist in Ihrer Excel-Datei und Ihre Blätter können so Komplex strukturiert, wie Sie wollen.
3
. Sichern Sie die Excel-Daten in Datenbank und nach dem Verfahrenhängt davon ab, welche Art von Datenbank-dump, die Sie im Auge haben, und wenn Sie ein Datenbank-system zur hand. Wenn Sie daran denken, MS access, wird dies intern verwenden Sie die Jet-engine wieder, mit der gleichen Vorteile und Nachteile wie Ansatz 1 oben.
Andere Optionen:
4
. schreiben Sie eine Excel-VBA-makro zum Lesen der Daten, die Sie brauchen, und schreiben Sie in eine Textdatei. Lesen Sie die text-Datei aus einem C# - Programm. Pro: viel schneller als Methode 2, mit der gleichen Flexibilität im Zugriff auf meta-Informationen. Con: Sie haben, teilen Sie Ihre Programm in ein VBA-Teil und einen C# - Teil. Und benötigen Sie MS Excel auf Ihrem Rechner.5
. Verwenden Sie ein Drittanbieter-Bibliothek /Komponente für diese Aufgabe. Es gibt viele Bibliotheken, die für den job, freie und kommerzielle. Google einfach danach, oder Suche hier auf ALSO. Viele dieser libs nicht erforderlich, MS-Excel auf die Maschine, und Sie sind in der Regel die beste option, wenn Sie gehen, um die Daten zu extrahieren, die als Teil eines server-Prozesses.Optionen 1 und 2 sind fast immer eine übung in Schmerz, egal wie Sie die Frage stellen.
Wenn können Sie mithilfe der SSIS zum verschieben der Daten in eine Datenbank, und wenn das zu Ihren Bedürfnissen passt, weil Sie andere Anforderungen, das ist auch eine gute option.
Aber die bevorzugte option ist in der Regel zu verwenden Office - Open XML für Excel 2007 und höher. Das hat keiner von der COM-Kopfschmerzen bekommen Sie mit der Option 2, und keines der Probleme, die Sie haben mit zu raten, Reihe, Typen wie Sie mit Option 1.
Mit mehr sorgfältig gestaltete Frage, kann man eine weit bessere Antwort, obwohl.