Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 07. März 2013 02:36

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

CSV für Excel Problem

Moin!

Ich habe einen UDT, der eine CSV generiert. Gespeichert wird mit

[== php ==]
file_put_contents($file, $csvline, FILE_APPEND | LOCK_EX);

Die Datei ist UTF-8. Soweit, so gut.

Nur: Excel erkennt anscheinend kein UTF8, wenn man die Datei einfach doppelklickt - das geht nur umständlich über die Import-Funktion.
Workaround: Die CSV in Notepad öffnen, "speichern unter" und im Dialog die Kodierung ANSI wählen.

Nuja, dachte ich, das geht doch vielleicht auch anders: Gleich als ANSI speichern, und habe die Zeichenkette mit mb_convert_encoding umgewandelt. Aber ich habe jetzt -zig Kodierungen ausprobiert, nix funktioniert, Excel erkennt nix.

Hat jemand nen Tipp für mich?

Servus,
Alex

Beitrag geändert von faglork (07. März 2013 02:38)

Offline

#2 08. März 2013 08:26

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: CSV für Excel Problem

Hmm, ein Problem des Zeilenumbruchs?

Windows-typisch ist "\r\n" (nicht \n\r!) ...

Offline

#3 08. März 2013 12:39

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: CSV für Excel Problem

Zeilenumbrüche sind korrekt - die Umlaute sind das Problem ...

Servus,
Alex

Offline

#4 08. März 2013 12:45

czarnowski
kennt CMS/ms
Registriert: 18. Oktober 2012
Beiträge: 457

Re: CSV für Excel Problem

Man sollte prüfen ob die Ausgabe nicht irgendwo bereits umcodiert wurde.
Das kann z.B. dadurch passieren das irgendwo mb_internal_encoding eingesetzt ist.

Erfolgt dann eine erneute Codierung dann hat man Müll.

Mit  mb_check_encoding  könnte man prüfen ob eine Codierung bereits gesetzt ist.


Unabhängig davon ist es besser eine zeilenweise mit der für CSV optimierten PHP Funktion

http://php.net/manual/en/function.fputcsv.php

vorzunehmen.

Offline

#5 08. März 2013 22:25

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: CSV für Excel Problem

Gerade ein etwas älteres Modul zum Thema Excel gefunden - vielleicht lässt sich daraus was "stricken" ...

http://dev.cmsmadesimple.org/projects/cmsexcel

Offline

#6 09. März 2013 23:31

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: CSV für Excel Problem

Ich meine zu erinnern das "Problem" war, dass Excel ein Byte Order Mark (http://de.wikipedia.org/wiki/Byte_Order_Mark) braucht um UTF-8 direkt zu erkennen (wenn du z.B. CSV direkt aus dem Web in Excel öffnest).

Ich weiss jetzt aber nicht ad hoc wie man das am besten löst.

Vielleicht "\xEF\xBB\xBF" oder chr(239) . chr(187) . chr(191) an den Anfang des CSV Strings setzen?

Beitrag geändert von nhaack (09. März 2013 23:33)

Offline

#7 15. März 2013 15:39

faglork
arbeitet mit CMS/ms
Ort: Fränkische Schweiz
Registriert: 15. Dezember 2010
Beiträge: 1.152
Webseite

Re: CSV für Excel Problem

nhaack schrieb:

Ich meine zu erinnern das "Problem" war, dass Excel ein Byte Order Mark (http://de.wikipedia.org/wiki/Byte_Order_Mark) braucht um UTF-8 direkt zu erkennen (wenn du z.B. CSV direkt aus dem Web in Excel öffnest).

Ich weiss jetzt aber nicht ad hoc wie man das am besten löst.

Vielleicht "\xEF\xBB\xBF" oder chr(239) . chr(187) . chr(191) an den Anfang des CSV Strings setzen?

Thx ... das scheint das Problem zu sein allerdings ist es vielschichtig:

http://stackoverflow.com/questions/1550 … -csv-files

Servus,
Alex

Offline