Announcement

Collapse
No announcement yet.

Export einer Datenmenge in csv oder xls oder...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Export einer Datenmenge in csv oder xls oder...

    Hallo,
    <br>
    <br>ich würde gerne in meiner Webform nachdem der Button Export gedrückt wurde ein select Statement ausführen und das Ergebnis in eine CSV Datei schreiben. Danach soll der Benutzer in der Lage sein diese Datei runter zu laden.
    <br>
    <br>In erster Linie bin ich an dem Export interessiert. Wie kann ich eine Ergebnismenge am besten in eine Datei exportieren? Um das ganze noch etwas schwerer zu machen benutze ich Oracle als DB Server. Aus diesem Grund funktionierte wohl
    <br>http://www.entwickler-forum.de\webx?50@@.ee8930a/2
    <br>nicht, da der OLEDB Provider die hier vorgestellt Exportfunktion nicht zur Verfügung stellt.
    <br>
    <br>Der Export nach XML "sollte" ja kein Problem sein (Code dazu habe ich schon gesehen). Aber die Transformation des XML Ergebnisses in das CSV Format endete leider in einem Desaster:
    <br>http://www.entwickler-forum.de\webx?10@@.ee89b3a
    <br>
    <br>Hat hier noch jemand eine Idee, wie man recht schnell und einfach so einen Export bewergstelligen kann?
    Die Notlösung wäre wohl von Hand jede Zeile der Datenmenge abzuarbeiten und die Einzelnen Felder mit CSV Tags in eine Datei zu schreiben.
    Aber ich bin ja immer auf der Suche nach der perfekten Lösung.
    <br>Also, wenn jemand die perfekte Lösung kennt bitte melden.
    <br>Danke!
    <br>
    <br>mfg
    <br>PS

  • #2
    Hallo,

    &gt;Aber ich bin ja immer auf der Suche nach der perfekten Lösung.

    wir befinden uns in der Zeit des Umbruchs von Win32/COM zu .NET - wobei dies auch bedeutet, dass noch nicht für alle alten Teile eine neue .NET-Klasse zur Verfügung steht. Im Fall des Datenexports nach XLS/CSV würde ich daher ein "altes" Objekt verwenden: <b>ADOX</b> und <b>ADO</b> (in Form der <i>Microsoft JET Engine</i>).

    Die Frage ist nun, greift man direkt aus .NET via <i>COM Interop</i> auf die "alten" Objekte von ADOX und ADO zu oder bindet man via COM Interop/PInvoke ein "altes" Modul (DLL bzw. COM-Objekt ein), dass intern auf ADOX+ADO zugreift. Jeder Datensatz aus dem DataSet wird dann via Methodenaufruf an dieses alte Modul übergeben. Der Vorteil dieser Lösung wäre, dass man universelle Export-Formate (MDB, DBF, DB, XLS, CSV etc.) mit dem gleichen Sourcecode schreiben kann.

    Wenn es nur um eine CSV-Datei geht, sollte der DataReader reichen, um in einer Schleife die Datei in eigener Regie zu schreiben. Die Trennzeichen für die Spalten kann man im besten Fall gleich in der SELECT-Anweisung unterbringen :-

    Comment

    Working...
    X