Beiträge

Excel-Dateien erstellen und bearbeiten

Mit der Bibliothek PhpExcel lassen sich in PHP bequem Excel-Dateien erstellen und bearbeiten. Selbst einzelne Sheets können neu angelegt oder bearbeitet werden. Das funktioniert einfacher und komfortabler als das Arbeiten mit Word-Dateien.

Auf der Bibliothekswebseite stehen etliche Beispiele bereit, um fast alle Bereiche rund um Excel in PHP abzudecken.

Selbst Zellen mit Formeln können befüllt und erhalten werden. Dazu gibt es die Funktion:

$objWriter->setPreCalculateFormulas(FALSE);

Hier ein Beispiel, um eine Excel-Datei zu öffnen , zu bearbeiten und zu speichern:


<?php
error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('Europe/London');
 
/** Include PHPExcel */
require_once 'Classes/PHPExcel.php';
 
/** PHPExcel_IOFactory */
include 'Classes/PHPExcel/IOFactory.php';
//die Datei demo.xls liegt im gleichen Verzeichnis wie diese PHP-Datei
$objPHPexcel = PHPExcel_IOFactory::load('Demo.xls');
//welches Sheet soll geladen warden?
$objWorksheet = $objPHPexcel->getSheet(1);
//in der nächsten Zeile setzen wir im 1. Sheet in der Zelle A6 den Wert „Mathias Bauer“
$objWorksheet->getCell('A6')->setValue('Mathias Bauer');
//den neu gesetzten Wert auslesen und ausgeben
$value = $objWorksheet->getCell('A6')->getValue();
echo $value;
//das 2. Sheet laden
$objWorksheet0 = $objPHPexcel->getSheet(2);
//und in der Zelle E11 den Wert “An der Gersprenz 7” setzen
$objWorksheet0->getCell('E11')->setValue('An der Gersprenz 7');
//den neu gesetzten Wert auslesen und anzeigen
$value = $objWorksheet0->getCell('E11')->getValue();
echo $value;
//das default Sheet setzen, welches nach dem Öffnen der Datei mit Excel angezeigt warden soll
$objPHPexcel->setActiveSheetIndex(0);
//das Dateiformat setzen
$objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel, 'Excel2007');
//evtl. vorhandene Formeln nicht ausführen, sondern lediglich die neuen Werte setezen
$objWriter->setPreCalculateFormulas(FALSE);
//Werte in neuer Datei speichern
$objWriter->save('Demo2.xlsx');
?>

Wenn Ihnen die Lösung weitergeholfen hat, würde ich mich über ein „Like” oder einen Kommentar sehr freuen. Danke!