Über den Author / Internet / Excel Datei per PHP erstellen

Excel Datei per PHP erstellen

~1 Min. Lesezeit

Überall im Web sieht man Tabellen oder sonstige Daten, welche man gerne per Knopfdruck exportieren möchte.

Ob Tasklisten oder Projekttermine, ein Knopfdruck auf ein Icon und Excel geht auf und zeigt die Daten an.

Das dies möglich ist, muss entweder ein spezieller Excel Generierer installiert werden, oder mit einem Trick gearbeitet werden.

Der Trick ist einfach, man generiere eine HTML-Tabelle und gebe dies als XLS aus, Excel liest das Format und konvertiert es, ohne das der Benutzer dies mitbekommt.

ls erstes müssen wir unserem Server seitigen PHP File mitteilen, das die Ausgabe als XLS erfolgen soll:

header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=Dateiname.xls");

Anschliessend holen wir die Daten:

$db = mysql_connect('localhost','username','password');
$abfrage = mysql_query("SELECT * FROM `database`.`table` WHERE `oeffentlich`='1'",$db);
if (mysql_num_rows($abfrage) >= '1')
{
	echo "<table width=\"100%\" cellpadding=\"1\" cellspacing=\"1\">";
	while($row = mysql_fetch_assoc($abfrage))
	{
		echo "<tr>".
			"<td>".$row['id']."</td>".
			"<td>".$row['name']."</td>".
			"<td>".$row['bearbeiter']."</td>".
			"<td>".$row['status']."</td>".
		"</tr>";
	}
	echo "</table>";
}

Das PHP Generiert eine einfache HTML Tabelle, welche als „Dateiname.xls“ dem Client zugeschickt wird (trotz er eine PHP Datei aufruft im Web), welche dann gespeichert oder direkt per Excel aufgemacht werden kann.

Nachtrag 19.08.2016: Mir ist zu Ohren gekommen dass diese Methode nicht mehr funktionieren sollte wegen Sicherheitsproblemen. Bei mir geht diese jedoch noch. Es gibt aber andere Möglichkeiten, z.B. mit der PHPExcel Klasse: https://github.com/PHPOffice/PHPExcel.

About Stefan

Ein männlicher IT Nerd, durchstöbert das Web nach speziellen Gadgets, unentbehrlicher Software und Alles was man im IT Sektor nicht verpassen darf. Immer hilfsbereit wenn Probleme zu lösen sind oder das Unmögliche umgesetzt werden sollte.

Weitere interessante Artikel

Windows 10 Lizenz kostenlos erhalten

~0 Min. LesezeitUm Windows 10 kostenlos zu erhalten ist kein Trick oder sonst was nötig, …

User Profile migrieren oder backuppen

~0 Min. LesezeitFirmen synchronisieren User Profile über die Domain. Privatpersonen verlieren oft das User Profil, …

7 Kommentare

  1. Sehr guter Tipp,

    klappt sehr gut!

  2. Das ist eine sehr gute Lösung, jedoch werden bei mir ä,ö und ü als ä,ö, und ü in excel angezeigt.

  3. das ist wirklich eine schön kurze Möglichkeit.
    hat jemand evtl auch eine Lösung wie man verhindert, dass voranstehende Nullen im Excel dargestellt werden?
    Wenn man Postleitzahlen wie z.b. 04103 hat.
    Habe es mit einem ‚ gemacht, aber dieser wird ja als Zeichen dargestellt.
    Vielleicht hat jemand eine bessere Lösung für dieses Problem

    • Generell wird ein ‚ nicht angezeigt, ausser du packst die Zahl auch in „“ ein.

      wert1,wert2,’zahl

      Dann wird das Zeichen nicht angezeigt.

      „wert1″,“wert2″,“‚zahl“

      Zeichen wird angezeigt. Generell sind “ nur bei Texten zu verwenden.

  4. Eine sehr elegante Lösung! Danke.

  5. Udo Hoffmeister

    seit dem 13.07.2016 funktioniert das nicht mehr – anscheinend war dieser Weg eine Sicherheitslücke.
    Gibt es dafür eine Lösung ? (trifft W7 bis W10)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.