Wie lese ich mit phpSpreadsheet gezielt Felder aus einer Excel-Datei aus und speichere sie in einer Datenbanktabelle?

Antwort vom

Um mit [PhpSpreadsheet](https://phpspreadsheet.readthedocs.io/) bestimmte Felder aus einer Excel-Datei auszulesen und in eine Datenbanktabelle zu speichern, gehst du typischerweise wie folgt vor: **1. PhpSpreadsheet installieren** Am einfachsten per Composer: ```bash composer require phpoffice/phpspreadsheet ``` **2. Excel-Datei laden und Felder auslesen** Beispiel für das Auslesen bestimmter Zellen (z.B. A2, B2, C2): ```php use PhpOffice\PhpSpreadsheet\IOFactory; $spreadsheet = IOFactory::load('deine_datei.xlsx'); $worksheet = $spreadsheet->getActiveSheet(); // Einzelne Zellen auslesen $wertA = $worksheet->getCell('A2')->getValue(); $wertB = $worksheet->getCell('B2')->getValue(); $wertC = $worksheet->getCell('C2')->getValue(); ``` Oder für mehrere Zeilen (z.B. alle Zeilen ab Zeile 2): ```php $daten = []; foreach ($worksheet->getRowIterator(2) as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $rowData = []; foreach ($cellIterator as $cell) { $rowData[] = $cell->getValue(); } $daten[] = $rowData; } ``` **3. Verbindung zur Datenbank herstellen** Beispiel mit PDO (MySQL): ```php $pdo = new PDO('mysql:host=localhost;dbname=deinedatenbank', 'benutzer', 'passwort'); ``` **4. Daten in die Datenbank einfügen** Angenommen, du hast eine Tabelle `meinetabelle` mit den Spalten `spalte1`, `spalte2`, `spalte3`: ```php $sql = "INSERT INTO meinetabelle (spalte1, spalte2, spalte3) VALUES (?, ?, )"; $stmt = $pdo->prepare($sql); foreach ($daten as $row) { $stmt->execute([$row[0], $row[1], $row[2]]); } ``` **Zusammengefasst:** - Excel-Datei mit PhpSpreadsheet laden - Gewünschte Felder/Zellen auslesen - Mit PDO eine Verbindung zur Datenbank herstellen - Daten per SQL-INSERT einfügen **Weitere Infos:** - [PhpSpreadsheet Dokumentation](https://phpspreadsheet.readthedocs.io/en/latest/) - [PDO (PHP Data Objects)](https://www.php.net/manual/de/book.pdo.php) Falls du spezielle Felder (z.B. nach Spaltennamen) brauchst, kannst du die erste Zeile als Header interpretieren und dann gezielt nach Spaltennamen suchen.

Verwandte Fragen

Kann ich mit PhpSpreadsheet Excel-Dateien auslesen und Daten in eine Datenbank speichern?

Ja, mit PhpSpreadsheet kannst du Excel-Dateien (z.B. .xlsx oder .xls) auslesen und die enthaltenen Daten anschließend in eine Datenbank speichern. PhpSpreadsheet bietet Funktionen, um Excel-Date...

Wie ermittle ich mit PhpSpreadsheet die Nummer der letzten Zeile mit Daten beim Auslesen einer Excel-Datei?

Ja, mit PhpSpreadsheet kannst du die Nummer der letzten Zeile mit Daten in einem Arbeitsblatt ermitteln. Dafür gibt es die Methode getHighestRow() des Worksheet-Objekts. Sie gibt die höchste...

Wie lassen sich mit phpSpreadsheet bestimmte Zellen aus einer Excel-Datei auslesen und in einer Datenbank speichern?

Um mit PhpSpreadsheet einzelne Zellen aus einer Excel-Datei auszulesen und in einer Datenbank zu speichern, gehst du typischerweise wie folgt vor: 1. PhpSpreadsheet installieren Am einfachsten per C...

Wie lese ich mit phpSpreadsheet eine Excel-Datei aus und zeige sie als HTML im Browser an?

Um mit PhpSpreadsheet eine Excel-Datei auszulesen und deren Inhalt als HTML im Browser anzuzeigen, gehst du wie folgt vor: 1. Installation von PhpSpreadsheet (falls noch nicht geschehen): bash compos...

Wie prüfe ich in PHP8, ob ein Datenbankwert nur aus Zahlen und Punkt besteht?

Ja, das kannst du mit PHP 8 herausfinden. Du kannst dazu reguläre Ausdrücke (Regular Expressions) verwenden. Mit der Funktion pregmatch() prüfst du, ob ein String nur aus Ziffern und ge...

Kann man mit PHP8 prüfen, ob der Wert einer Datenbankspalte vom Typ float ist?

Mit PHP8 kannst du nicht direkt aus PHP heraus feststellen, ob der Wert einer Datenbankspalte vom Typ float ist, da PHP beim Abrufen von Daten aus einer Datenbank (z.B. mit PDO oder MySQLi) die Typinf...

Wie lese ich mit phpSpreadsheet eine Datei von einem Netzlaufwerk ein?

Um mit PhpSpreadsheet eine Datei von einem bestimmten Netzlaufwerk einzulesen, gehst du grundsätzlich genauso vor wie beim Einlesen einer lokalen Datei. Wichtig ist, dass der PHP-Prozess auf das...

Wie kann ich in PHP8 Excel-Dateien erstellen?

In PHP8 kannst du Excel-Dateien am besten mit der Bibliothek PhpSpreadsheet erstellen. PhpSpreadsheet ist der Nachfolger von PHPExcel und unterstützt das Erstellen, Bearbeiten und Auslesen von Ex...

Ist Shapes("Rechteck 1").Visible = True korrekt in Excel-VBA?

Der Ausdruck Shapes("Rechteck 1").Visible = True ist in Excel-VBA nicht korrekt, da das Visible-Eigenschaftsmerkmal für Shapes in Excel-VBA nicht existiert. In Excel-VBA steuerst du d...

Wie füge ich mit PHPSpreadsheet eine Summenformel in eine bestimmte Zelle ein?

Um mit PHPSpreadsheet in einer bestimmten Zelle eine Summenberechnung einzufügen, kannst du eine Excel-Formel in die gewünschte Zelle schreiben. Das geht so: php use PhpOffice\PhpSpreadshee...