Martin Lantzsch
Software Entwickler
19. Juli 2012

PHP – Array zu Excel

19. Juli 2012 - Geschrieben von Martin - Keine Kommentare

Eine Excel Datei generiert man wohl am besten mit „PHPExcel„, hat am meisten Funktionen, unterstützt sehr viele Excel Eigenschaften – aber, genau da liegt der Hund begraben. Es ist für viele Projekte und einfache Exporte einfach zu viel.

Deshalb verwende ich für solche Fälle immer die „php-excel“ Klasse.

Diese hat keine 200 Zeilen Code, ist extrem schnell und wandelt ganz einfach verschachtelte Array’s in Excel Tabellen um.

<?php
require 'php-excel.class.php';
$data = array(
	array('Spaltenüberschrift 1', 'Spaltenüberschrift 2', 'Spaltenüberschrift 3'),
	array('Wert A2', 'Wert B2', 'Wert C2'),
	array('Wert A3', 'Wert B3', 'Wert C3')
);
$xls = new Excel_XML('UTF-8', false, 'Name der Arbeitsmappe');
$xls->addArray($data);
$xls->generateXML('Dateiname');

Dies wird nun dem Browser eine Excel Datei namens „Dateiname.xls“ zum Download anbieten, welche wie folgt aufgebaut ist:

Spaltenüberschrift 1 Spaltenüberschrift 2 Spaltenüberschrift 3
Wert A2 Wert B2 Wert C2
Wert A3 Wert B3 Wert C3
24. November 2011

Excel CSV, CSV phpMyAdmin

24. November 2011 - Geschrieben von Martin - Ein Kommentar

Aus Excel kann man ja schöne CSV Dateien exportieren, die man bequem weiterverwenden kann. Wie zum Beispiel mittels phpMyAdmin in eine MySQL Datenbank importieren.

Soweit klappt das auch ganz gut, wenn da nur die fiesen Umlaute nicht wären. Nach dem Import wird ein String entweder am Umlaut abgeschnitten oder selbiger fällt heraus. Um dies zu umgehen muss man in Excel das Sheet als UTF-8 Enkodiert exportieren. Doch importiert man es nun auch als UTF-8 kodiertes CSV mit phpMyAdmin hat man das selbe Fehlverhalten wie vorher.

Stellt man nun beim Import die Kodierung auf „latin2“ (auch bekannt als ISO 8859-2) um, sind die Umlaute da. Klingt komisch, ist aber so.

11. Oktober 2011

Excel ausgestiegen

11. Oktober 2011 - Geschrieben von Martin - Keine Kommentare


Ops, da war mein VBA (Visual Basic for Applications ;)) Script wohl zu komplex. Excel Tabelle in XML Exportiert, das Script auf JavaScript portiert und schwups war mein Ergebnis auf dem Schirm :)