Okay, ich möchte eine .csv-Datei in C # erstellen. Ich habe mich umgesehen und bemerkt, dass viele Leute das System verwenden. IO.memorystream und system.io.streamwriter.
Das Problem ist folgendes: Ich habe eine Webanwendung. Ich möchte dem Benutzer die Möglichkeit geben, nach Excel zu exportieren. Problem ist, Excel kann nicht auf dem Server installiert werden (nicht fragen). Ich möchte einen .csv-Blatt-Export für einen Bericht schreiben können. Jetzt werden die Kopfzeilen und Daten der Berichte für alle Berichte unterschiedlich sein (Durchschleifen löst das Problem). Hat jemand ein Beispiel oder bessere Ressourcen für mich?
Es kann sich auch lohnen, einen Content-Disposition-Header mit einem empfohlenen Dateinamen zu senden.
Edit: In letzter Zeit, mit Fällen, in denen man eine Aktion zwischen Elementen in einer Enumeration (wie Komma und Newline oben) interspacen muss, bevorzuge ich lieber einen booleschen Wert, der weiter geprüft wird. Ich handle direkt mit dem Enumerator , und behandeln Sie dann das erste Element getrennt von dem Rest. Ich fing an, dies als ein Mikro-Opt in einem Effizienz-Push zu tun, bin aber gewachsen, um es einfach besser als einen Code-Pfad zu finden, der für den ersten Gegenstand unterschiedlich ist. Als solches würde ich das obige wie folgt schreiben:
%Vor% Sie sollten die Beispiele mit System.IO.MemoryStream
und System.IO.StreamWriter
einfach verwenden können.
Anstatt den MemoryStream in eine Datei zu schreiben, würden Sie ihn in ASP.NET als ResponseStream zurückgeben (stellen Sie sicher, dass Sie die entsprechenden Headerwerte festlegen, damit der Browser weiß, dass er eine Datei herunterlädt).
Excel ist nur erforderlich, wenn Sie Office Interop verwenden. Mit StringWriter erstellen Sie einfach eine Datei und fügen einige Antwortinformationen hinzu. Excel ist nur beim Öffnen der Datei erforderlich.
Es gibt wirklich keine Magie beim Erstellen einer CSV-Datei. Das einzige Problem mit CSV-Dateien ist, dass es nicht wirklich einen Standard gibt und die meisten Importeure nur ein bestimmtes Verhalten für den Importprozess implementieren. Wenn Sie Glück haben, bekommen Sie etwas, das relativ gut erraten kann.
Beim Generieren der CSV-Datei müssen nur die Zeilen gedruckt werden. Wie für die tatsächlichen Details, machen Sie sich mit:
Wenn Sie jedoch nach Excel exportieren möchten, können Sie das Microsoft OOXML SDK verwenden:
Das OOXML-SDK ist eine C # -Bibliothek, mit der Sie Excel-Dateien auf dem Server generieren können. Der Brian Jones Blog ist eine großartige Quelle, um diese Bibliothek zu benutzen:
Wenn es Ihnen nichts ausmacht, eine Bibliothek von Drittanbietern zu verwenden und die Lizenz LGPL in Ihrem Projekt in Ordnung ist, dann FileHelpers ist ein großartiges Werkzeug dafür.
Dies ist die Funktion zum Erstellen der CSV-Datei:
%Vor%Ansonsten können Sie unter folgendem Link verweisen: