MySQL-Tabelle in PHP nach Excel exportieren

Subodh Poudel 30 März 2022
MySQL-Tabelle in PHP nach Excel exportieren

Wir werden in diesem Artikel sehen, wie man die Tabelle in MySQL mit PHP mit PHP exportiert.

Exportieren Sie die MySQL-Tabelle in PHP nach Excel

Wir können die Excel-Header in PHP verwenden, um die Tabelle in MySQL in eine Excel-Datei zu importieren. Wir sollten den Content-type-Header als application/xls angeben, um den Excel-Header einzuschließen. Um die Excel-Datei herunterzuladen, sollten wir den Header Content-Disposition als attachment verwenden und den Dateinamen mit der Option filename versehen. Wir können die benötigte Tabelle in PHP abfragen und das Ergebnis in einer Variablen speichern. Die Variable sollte eine HTML-Tabelle sein, die die abgefragten Ergebnisse enthält. Dann können wir die Header-Informationen mit der Funktion header() an den Browser senden und mit der Funktion echo die Variable ausgeben, die die Tabelle enthält. Wir werden die Schritte zum Exportieren einer MySQL-Tabelle in eine Excel-Datei aufschlüsseln.

Zum Beispiel haben wir in unserer Datenbank eine Tabelle namens users.

+----+-----------+----------+------------+
| id | firstname | lastname | dob        |
+----+-----------+----------+------------+
|  1 | james     | gunn     | 1998-08-13 |
|  2 | bille     | joe      | 1970-02-15 |
+----+-----------+----------+------------+

Jetzt exportieren wir die Tabelle in eine Excel-Datei. Lassen Sie uns zunächst eine Schaltfläche erstellen, um die Tabelle in Excel zu exportieren.

<form method="post" action="index.php">
<input type="submit" name="submit" value="Export" />
</form>

Wir haben ein Formular erstellt, das die Daten an die Datei index.php übermittelt, wenn auf die Schaltfläche geklickt wird. Das name-Attribut unseres Buttons ist submit. Wir werden diesen Wert später verwenden, um zu prüfen, ob die Daten im Formular übermittelt wurden.

Zunächst müssen wir eine Verbindung zur Datenbank herstellen. Verwenden Sie dazu die Funktion mysqli_connect() und geben Sie Ihre Serverdetails an. Speichern Sie die Verbindung in der Variablen $connect.

$connect = mysqli_connect("hostname", "username", "password", "db_name");

Beachten Sie, dass die als Parameter für die obige Funktion geschriebenen Werte lediglich Platzhalter sind. Sie sollten es mit Ihren Serverinformationen füllen.

Als nächstes können wir mit der Funktion isset() prüfen, ob das Formular abgeschickt wurde. Da das Attribut method in dem von uns erstellten Formular post ist, sollten wir zur Überprüfung das Array $_POST verwenden. Wir verwenden den Wert des Attributs name, submit, als Index des Arrays $_POST innerhalb der Funktion isset().

Schreiben Sie danach die SQL-Abfrage und speichern Sie die Ausgabe in der Variablen $res. Die Abfrage zur Auswahl aller Zeilen aus der Tabelle Benutzer ist unten.

SELECT * FROM users;

Führen Sie dann die Abfrage mit der Funktion mysqli_query() aus. Die Datenbankverbindungsvariable ist der erste Parameter in der Funktion und die MySQL-Abfrage ist der zweite Parameter. Wir können das Abfrageergebnis mit der Funktion mysqli_num_rows() überprüfen. Die Funktion gibt die Anzahl der Zeilen aus der Datenbank zurück. Die Anzahl der Zeilen muss größer als Null sein, um weitere Operationen auszuführen. Schreiben Sie die if-Bedingung, um die Bedingung auszuwerten.

Erstellen Sie innerhalb der if-Bedingung eine Variable $export und speichern Sie die HTML-Tabelle darin. Erstellen Sie die Tabellenüberschriften mit dem th-Tag. Erstellen Sie die Überschriften mit demselben Namen wie die Spaltennamen in der Tabelle. Holen Sie danach die Daten mit der Funktion mysqli_fetch_array() aus der Datenbank. Weisen Sie die Funktion einer $row-Variablen zu.

Verwenden Sie als Nächstes die Variable $row, um die Daten mit dem Spaltennamen als Index zu extrahieren. Umschließen Sie die Variable mit dem td-Tag, damit die Daten in die Tabelle eingetragen werden. Ein Beispiel ist unten gezeigt.

<td>'.$row["id"].'</td>

Schließen Sie als Nächstes alle Tabellen-Tags. Die Variable $export enthält die Tabelle als String. Schreiben Sie als Nächstes die Funktion header(), um den an den Browser gesendeten Inhalt als Excel-Datei zu bezeichnen. Verwenden Sie erneut die Funktion zum Herunterladen der Excel-Datei. Das Beispiel ist unten gezeigt.

 header('Content-Type: application/xls');
 header('Content-Disposition: attachment; filename=info.xls');

Drucken Sie abschließend die Variable $export mit der Funktion echo aus. Beachten Sie, dass der gesamte PHP-Teil in der Datei index.php ausgeführt wird.

Das letzte Codebeispiel ist unten gezeigt.

Beispielcode:

$connect = mysqli_connect("hostname", "username", "password", "db_name");
if(isset($_POST["submit"]))
{
 $query = "SELECT * FROM users";
 $res = mysqli_query($connect, $query);
 if(mysqli_num_rows($res) > 0)
 {
 $export .= '
 <table> 
 <tr> 
 <th> id </th>
 <th>firstname</th> 
 <th>lastname</th> 
 <th>dob</th> 
 
 </tr>
 ';
 while($row = mysqli_fetch_array($res))
 {
 $export .= '
 <tr>
 <td>'.$row["id"].'</td> 
 <td>'.$row["firstname"].'</td> 
 <td>'.$row["lastname"].'</td> 
 <td>'.$row["dob"].'</td> 
 
 
 </tr>
 ';
 }
 $export .= '</table>';
 header('Content-Type: application/xls');
 header('Content-Disposition: attachment; filename=info.xls');
 echo $export;
 }
}

Wenn wir auf die Schaltfläche Exportieren klicken, können wir die Excel-Datei herunterladen, die den Inhalt der Datenbank enthält. Auf diese Weise können wir die MySQL-Tabelle in eine Excel-Datei in PHP exportieren.

Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Verwandter Artikel - PHP MySQL