Erstellen einer CSV-Datei in C #

7

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?

    
Tom 20.08.2010, 15:06
quelle

7 Antworten

13

Dies ist der Ansatz, den ich normalerweise mache. Wahrscheinlich nicht die effizienteste, aber.

%Vor%     
JohnC 20.08.2010, 15:10
quelle
10
%Vor%

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%     
Jon Hanna 20.08.2010 17:28
quelle
4

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).

    
Justin Niessner 20.08.2010 15:10
quelle
4

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.

    
Jordan Arron 20.08.2010 15:13
quelle
3

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:

Ссылка

    
miguel.de.icaza 20.08.2010 15:11
quelle
3

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.

    
Geoff Appleford 20.08.2010 15:17
quelle
2

Dies ist die Funktion zum Erstellen der CSV-Datei:

%Vor%

Ansonsten können Sie unter folgendem Link verweisen:

Ссылка

    
Gopal Palraj 11.01.2018 12:05
quelle

Tags und Links