Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#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" ...
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
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
Seiten: 1