Discussion:
Excel Zeilenumbruch in Zelle erzeugen
(zu alt für eine Antwort)
Andy Müller
2004-11-25 08:00:01 UTC
Permalink
Hallo NG,
Ich muss Datensätze in eine Exceldatei exportieren und zwar OHNE PEAR!
Dazu hab ich schon auf www.php-faq.de gesucht und gefunden, wie man das
grundsätzlich bewerkstelligen kann (wie man Excel sozusagen mit Tabs und
Linefeeds überlistet). Jetzt habe ich aber das Problem, dass ich in den
Datensätzen auch Zeilenumbrüche drinhab. Wenn ich die einfach
durchreiche, erzeugt Excel eine neue Zeile. Also hab ich mir PHPMyAdmin
angeschaut, weil die ja einen CSV-Export für Excel haben und dort
bestimmte Ascii-Codes für die Zeilenumbrüche verwendet werden, die Excel
dann richtig in der Zelle setzt. Wenn ich diese Codes aber bei mir
einsetze bekomm ich nur ein nicht darstellbares Zeichem, aber keinen
Umbruch.
Weiß jemand, welcher Ascii-Code da gesetzt werden muss, damit ich nen
Zeilenumbruch inner Zelle bekomm???

Codesnip:
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: inline; filename=\"export.xls\"");
echo "Titel ##hier will ich umbrechen## (A1)\r\nA2\tB2\r\nA3\tB3";

Vielen Dank schon mal im Voraus.

Andy
Patrick Daether
2004-11-25 08:17:29 UTC
Permalink
Post by Andy Müller
Hallo NG,
Ich muss Datensätze in eine Exceldatei exportieren und zwar OHNE PEAR!
Mit php_writeexcel hatte ich bisher keine Problme.
http://www.bettina-attack.de/jonny/projects/php_writeexcel/

Gruß

Patrick
Andy Müller
2004-11-25 10:57:09 UTC
Permalink
Post by Patrick Daether
Mit php_writeexcel hatte ich bisher keine Problme.
http://www.bettina-attack.de/jonny/projects/php_writeexcel/
Vielen Dank für deine schnelle Antwort.
Leider scheint das nicht ganz zu funktionieren. Die Umbrüche in den
Zellen macht er jetzt zwar, aber er zeigt trotzdem immer noch ein nicht
darstellbares Zeichen an, das ich nicht wegkriege. Zudem wäre mir eine
schlanke Lösung lieber als jetzt hier groß mit Classes rumzuschaukeln.

Wie gesagt, ich krieg ja alles hin, bis auf die Umbrüche innerhalb einer
Zelle...

Gruß,
Andy
Andy Müller
2004-11-25 13:25:44 UTC
Permalink
Hallo NG,
hab jetzt selbst die Lösung gefunden:
Felder, die Zeilenumbrüche enthalten, müssen in doppelte
Anführungszeichen gesetzt sein und der Umbruch selbst darf nur ein \n
und kein \r\n sein, muss man also bei Bedarf ersetzen.

Der Code sieht dann folgendermaßen aus:

header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: inline; filename=\"export.xls\"");
$zeile1 = "\"Titel\n(A1)\"\r\n"; // 1. Zeile mit Umbruch
$zeile2 = "A2\tB2"; //2. Zeile

Vielleicht kanns ja mal noch jemand brauchen.
Da in meinem Fall keinerlei Formatierungen etc. innerhalb der Zelle
notwendig waren, wars die einfachste Variante, bevor ich anfange mit
Drittklassen rumzuspielen...

Danke nochmal an Patrick für seinen schnellen Tipp.

Gruß,
Andy

Loading...