Excel-Datei generieren und zum Client senden

12/11/2007 - 14:53 von Konrad Hammerer | Report spam
Hi!

Ich habe folgende Aufgabenstellung:

Ich lese Daten aus einer DB und zeige diese dem Anwender per asp.net in
einer ASP-Table im Browser an. Nun soll der User auf Wunsch diese Daten
als Excel-Datei auf seinen Desktop downloaden können.

Nun dachte ich mir als einfachste Lösung, ich erzeuge eine csv-Datei und
schicke diese mittels

Response.ContentEncoding = Encoding.UTF8;
Response.ContentType = "text/csv";
Response.AddHeader("content-disposition", "attachment; filename=liste.csv");
Response.Write(output.ToString());
...
Response.End();

zum Client. Dies hat aber 2 Nachteile:

1)
Es gehen alle Sonderzeichen (àüö...) verloren (falsches Encoding???).

2)
Ich muss als Trennzeichen ein "," verwenden, damit Excel es dann in
seine Spalten aufteilt.

Nun meine Frage: Wie kann ich die Sonderzeichen übertragen und wie kann
ich das Trennzeichen-Problem so lösen, dass auch ein Komma (,) in meinen
Werten vorhanden sein darf. Meine Werte aus der DB enthalten nàmlich
durchaus auch Kommas und somit ist das csv-Format ungültig bzw. hat
unterschiedlich viele Spalten!

Oder muss ich einen ganz anderen Ansatz gehen, wie z. B. ein richtiges
Excel zu generieren (was brauche ich dafür)???

Vielen Dank und Grüße,
Konrad
 

Lesen sie die antworten

#1 Patrick Finger
12/11/2007 - 15:16 | Warnen spam
Salü..

Hab mal sowas geschrieben... Mein eigenes GridView mit drei Icons am
oberen rechten Rand "Export as Word" "Export as Excel" und "Export as CSV"

Wenn Du nach "GridView export" googelst solltest Du einiges an Infos finden.


1)
Es gehen alle Sonderzeichen (àüö...) verloren (falsches Encoding???).


Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-9");

2)
Ich muss als Trennzeichen ein "," verwenden, damit Excel es dann in
seine Spalten aufteilt.


Ich vermute man kann im Excel angeben, was als separator verwendet
werden soll. Dann gibt es bestimmt auch die Möglichkeit, einen Separator
zu escapen..

Oder muss ich einen ganz anderen Ansatz gehen, wie z. B. ein richtiges
Excel zu generieren (was brauche ich dafür)???


Kann man auch.. benötigt aber schon einiges mehr an Aufwand und bringt
in Deinem Fall keinen wirklichen Mehrwert.
Das Schlagwort zum Generieren von Word oder Excel-Dokumenten auf einem
Server ist: ASPOSE

Vielen Dank und Grüße,



HTH, Gruss zurück

Ähnliche fragen