CSV Export in PHP

Textdatei für Tabellendaten

Innovatives Webdesign
Logodesign und Grafikdesign
Digitales Marketing

In diesem Tutorial erfährst du, wie man in PHP mit nur 1 Klick eine CSV-Datei erzeugt, exportiert und lokal auf dem Rechner abspeichert.

Erstellung CSV-Datei

In diesem PHP Tutorial werden die Daten durch ein Array simuliert. Normalerweise werden diese Daten und Werte aus einer Datenbank ausgelesen und in eine HTML-Tabelle eingetragen und dargestellt. Mit objektorientieren PHP ist es einfach, diese Daten mit nur 1 Klick zu exportieren und abzuspeichern.

Der Code ist kommentiert und dürfte somit selbsterklärend sein. Sollte sich dennoch Fragen ergeben, werde ich diese so rasch wie möglich beantworten.

// Beginn PHP-Code
session_start();

// Session Array setzen
if (!isset($_SESSION['daten'])) { 
	$_SESSION['daten'] = [];
}

/*
* Simuliertes Test-Array Object
* Daten kommen normalerweise aus Datenbank
*/
$daten = [
	(object)['id' => 1,
	'artikel_nr' => '001',
	'produktname' => 'Kommode',
	'preis' => 150,
	'mwst' => 20],
	
	(object)['id' => 2,
	'artikel_nr' => '002',
	'produktname' => 'Wohnzimmersofa',
	'preis' => 699,
	'mwst' => 20],
	
	(object)['id' => 3,
	'artikel_nr' => '003',
	'produktname' => 'Küchentisch',
	'preis' => 550,
	'mwst' => 20],	
	];


// Daten in Session schreiben
$_SESSION['daten'] = $daten;

/*
* Ende PHP-Code
* CSV Download
* Link: ...href="csv_export.php">CSV-Export...
*/ 
// Beginn PHP Code
session_start();

// Temporäre Datei erstellen objektorientiert
$csv = new SplTempFileObject();

foreach($_SESSION['daten'] as $spalte) {
	
	// Object extrahieren
	$spalte = get_object_vars($spalte);
	
	// Umlaute für Excel konvertieren
	$spalte = mb_convert_encoding($spalte, "UTF-16LE", "UTF-8");
   
	// CSV erstellen
	$csv->fputcsv($spalte);
}

// Zeiger auf Anfang setzen
$csv->rewind();

// Headerinfo für Ausgabe
header("Content-Type: text/csv");
header('Content-Disposition: attachment; filename="daten.csv"');

// CSV ausgeben
$csv->fpassthru();
PHP Tutorial von Peter Ortner | Webart-Media

CSV Definition

Das Dateiformat CSV ist eine einfache Textdatei und steht für "Comma-separated values". Das heißt, Werte werden mit einem Komma getrennt und können so in anderen Programmen (beispielsweise Office, Excel, XML, Datenbanken,...) verwendet werden.