www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » PHP für Fortgeschrittene » Daten aus Excel in PHP nutzen

Daten aus Excel in PHP nutzen

Oft kommt es vor, dass Daten in einer Excel-Tabelle vorliegen und wir diese in PHP nutzen möchten. Dabei ist es oft mit einem einmaligen Export getan und der Aufwand soll überschaubar bleiben.

Der erste spontane Lösungsansatz ist, nach einer Möglichkeit sich umzusehen, eine Excel-Datei irgendwie direkt einlesen zu können. Das macht nur sehr bedingt Spaß, da es sich bei Excel-Dateien mit der Dateiendung .xls um ein proprietäres Format handelt, dass sich intern je nach Excel-Version ändern kann.

Meistens sind wir weder an Formeln noch an Design interessiert, dass Excel mit in den Excel-Dateien abspeichert. Wir wollen nur die Daten nutzen.

Wenn wir die Daten aus nur einem Tabellenblatt (was meistens der Fall ist) benötigen, ist die Vorgehensweise herzhaft einfach! „Copy-and-paste“ ist die Lösung. Im ersten Schritt alle Daten des Excel-Tabellenblatts markieren (STRG + a) und dann in die Zwischenablage kopieren (STRG + c). Und wohin nun damit? In ein HTML-Formular-Feld – dieses wird dann an ein kleines PHP-Script gesendet. Das PHP-Programm trennt die Zeilen und die Spalten und kann daraus dann das benötigte Endprodukt basteln oder wir speichern die Daten einfach in einem Array ab und können dieses dann Eintrag für Eintrag durchlaufen.

PHP-Programm erstellen zum Excel-Daten auslesen

Nun bauen wir Schritt für Schritt das Programm auf. Als Erstes benötigen wir ein einfaches HTML-Formular. Da sehr viele Daten kommen können, müssen wir über die Methode post übertragen und ein <textarea> nutzen:

<h1>aus Excel-Tabelle über copy und paste einfügen</h1>
<form name="" action="" method="post">
<textarea name="inhalt" rows="10" cols="160"></textarea>
<br>
<input name="" type="submit" value="speichern">
</form>

Wir speichern unser PHP-Programm unter dem Dateinamen „daten-aus-excel-nutzen.php“ ab.

Nachdem wir bei action kein Ziel eingetragen haben, ruft sich das PHP-Programm selber auf. Also werden wir vor der Formularausgabe eine Abfrage einbauen, ob bereits Daten aus dem Datenfeld inhalt übertragen wurden:

<?php
if ( isset( $_REQUEST['inhalt'] ) and trim( $_REQUEST['inhalt'] ) <> '' )
{
    // Daten verarbeiten
    exit;
}
?>
<form name="" action="" method="post">
<textarea name="inhalt" rows="10" cols="160"></textarea>
<br>
<input name="" type="submit" value="speichern">
</form>

Kommen Daten rein (sprich das Formular wurde mit den aus Excel herauskopierten Daten über die Zwischenablage gefüllt und abgesendet) können wir diese Daten aufbereiten.

Dazu trennen wir die einzelnen Zeilen über die PHP-Anweisung explode und der Zeichenfolge für das Zeilenende „\r“. Das Ergebnis packen wir in das Array $zeileninhalt.

if ( isset( $_REQUEST['inhalt'] ) and trim( $_REQUEST['inhalt'] ) <> '' )
{
    // Daten verarbeiten
    $zeileninhalt = explode("\r", $_REQUEST['inhalt']);
    exit;
}

Jetzt haben wir einzelne Zeilen und müssen die einzelnen Zellen noch aufteilen. Wir durchlaufen das Array $zeileninhalt und wenden wieder die PHP-Anweisung explode mit der Zeichenfolge für TAB-Stopps an „\t“.

    foreach ($zeileninhalt AS $nr => $zeile) {
        $daten[$nr] = explode("\t", $zeile);
    }

Um eventuelle Leerzelle vorzubeugen, killen wir diese über die Anweisung trim.

    foreach ($zeileninhalt AS $nr => $zeile) {
        $daten[$nr] = explode("\t", trim($zeile));
    } 

Nach dieser Aktion liegt der komplette Excel-Zwischenablage-Inhalt in dem Array mit dem Namen $daten vor und kann nun beliebig mit PHP weiter genutzt werden.

Hier der komplette PHP-Programmcode:

<?php
if ( isset( $_REQUEST['inhalt'] ) and trim( $_REQUEST['inhalt'] ) <> '' )
{
    // Daten verarbeiten
    $zeileninhalt = explode("\r", $_REQUEST['inhalt']);
    foreach ($zeileninhalt AS $nr => $zeile) {
        $daten[$nr] = explode("\t", trim($zeile));
    }
    echo "<pre>";
    print_r($daten);
    exit;
}
?>
<h1>aus Excel-Tabelle über copy und paste einfügen</h1>
<form name="" action="" method="post">
<textarea name="inhalt" rows="10" cols="160" style="width: 100%;"></textarea>
<br>
<input name="" type="submit" value="speichern">
</form>

Jetzt könnten wir die Daten natürlich in eine MySQL-Datenbank noch schreiben oder andere Dinge damit anstellen – je nach Aufgabenstellung.

Viel Spaß beim Testen und nutzen des kleinen Hilfsprogramms.

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe