{"id":24769,"date":"2021-05-25T12:05:00","date_gmt":"2021-05-25T09:05:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24769"},"modified":"2021-10-18T02:39:10","modified_gmt":"2021-10-17T23:39:10","slug":"so-exportieren-sie-mysql-datenbankdaten-mit-php-nach-excel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/so-exportieren-sie-mysql-datenbankdaten-mit-php-nach-excel\/","title":{"rendered":"So exportieren Sie MySQL-Datenbankdaten mit PHP nach Excel"},"content":{"rendered":"<p>Vor kurzem ver\u00f6ffentlichte ich einen Artikel <a href=\"https:\/\/themewp.inform.click\/de\/so-lesen-sie-csv-und-excel-dateien-in-php-mit-phpspreadsheet\/\" title=\"How to Read CSV and Excel File in PHP Using PhpSpreadsheet\" >How to Read CSV and Excel File in PHP Using PhpSpreadsheet<\/a> und einer der Leser fragte nach dem Exportieren von MySQL-Datenbankeintr\u00e4gen in eine Excel-Datei. Der Benutzer ben\u00f6tigt m\u00f6glicherweise seine Daten in der Excel- oder CSV-Datei, damit er sie einfach lesen oder teilen kann. In diesem Artikel haben wir besprochen, wie man Daten aus einer Datenbank in Excel- und CSV-Dateien exportieren kann. Dar\u00fcber hinaus werden wir auch untersuchen, wie man diese exportierte Datei als Anhang in der E-Mail versenden kann.<\/p>\n<h3>Einstieg<\/h3>\n<p>Um <a href=\"https:\/\/phpspreadsheet.readthedocs.io\/en\/latest\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">loszulegen<\/a>, m\u00fcssen Sie zuerst die <a href=\"https:\/\/phpspreadsheet.readthedocs.io\/en\/latest\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PhpSpreadsheet-<\/a> Bibliothek installieren. Ich empfehle <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> f\u00fcr die Installation der Bibliothek zu verwenden. \u00d6ffnen Sie das Terminal in Ihrem Projekt-Root-Verzeichnis und f\u00fchren Sie den Befehl aus:<\/p>\n<pre><code>composer require phpoffice\/phpspreadsheet<\/code><\/pre>\n<p>PhpSpreadsheet ist die Bibliothek, die das Lesen und Schreiben verschiedener Dateiformate unterst\u00fctzt. Unten ist der Screenshot der unterst\u00fctzten Dateiformate.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20480-6081f88658855.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20480-6081f88658855.png\" alt=\"So exportieren Sie MySQL-Datenbankdaten mit PHP nach Excel\" ><\/a><\/p>\n<p>Unser Endziel ist der Export von Datenbanktabellendatens\u00e4tzen in eine Excel-\/CSV-Datei. Ich nehme die Tabelle &#8218;Produkte&#8216; als Beispiel. Lassen Sie uns eine Tabelle &quot;Produkte&quot; in der Datenbank erstellen, indem Sie die folgende Abfrage ausf\u00fchren.<\/p>\n<pre><code>CREATE TABLE `products` (\u00a0`id` int(11) NOT NULL AUTO_INCREMENT,\n\u00a0`product_name` varchar(255) NOT NULL,\n\u00a0`product_sku` varchar(255) NOT NULL,\n\u00a0`product_price` varchar(255) NOT NULL,\n\u00a0PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;<\/code><\/pre>\n<p>F\u00fcgen Sie als N\u00e4chstes einige Dummy-Eintr\u00e4ge in die Tabelle ein, damit Sie einige Datens\u00e4tze in der exportierten Datei sehen.<\/p>\n<pre><code>INSERT INTO `products` (`id`, `product_name`, `product_sku`, `product_price`) VALUES\n(1, 'Apple', 'app_111', '$1000'),\n(2, 'Lenovo', 'len_222', '$999'),\n(3, 'Samsung', 'sam_689', '$1200'),\n(4, 'Acer', 'ace_620', '$900');<\/code><\/pre>\n<p>Danach erstellen Sie eine <code>db.php<\/code>Datei, in die wir die Datenbankverbindung schreiben w\u00fcrden.<\/p>\n<p><strong>db.php<\/strong><\/p>\n<pre><code>&lt;?php\n$db_host = 'DATABASE_HOST';\n$db_username = 'DATABASE_USERNAME';\n$db_password = 'DATABASE_PASSWORD';\n$db_name = 'DATABASE_NAME';\n\u00a0\n$db = new mysqli($db_host, $db_username, $db_password, $db_name);\n\u00a0\nif($db-&gt;connect_error){\n\u00a0\u00a0\u00a0\u00a0die(\"Unable to connect database: \". $db-&gt;connect_error);\n}<\/code><\/pre>\n<p>Stellen Sie sicher, dass Sie die Platzhalter durch die tats\u00e4chlichen Werte im obigen Code ersetzen. Im n\u00e4chsten Teil des Tutorials weise ich einen separaten Abschnitt zum Exportieren von Daten nach Excel, in CSV und zum Senden der E-Mail mit einer exportierten Datei als Anhang zu.<\/p>\n<h3>Exportieren von MySQL-Datenbankdaten nach Excel mit PHP<\/h3>\n<p>Sie haben die Bibliothek installiert und verf\u00fcgen \u00fcber eine Datenbanktabelle mit Dummy-Eintr\u00e4gen. Jetzt k\u00f6nnen Sie fortfahren und den eigentlichen Code schreiben, der eine Excel-Datei mit den darin ausgef\u00fcllten Daten exportiert.<\/p>\n<p>Erstellen Sie eine <code>index.php<\/code>Datei im Stammverzeichnis. In dieser Datei schreibe ich eine SELECT-Abfrage, um Daten aus der Datenbank abzurufen, diese Daten in Excel zu schreiben und schlie\u00dflich automatisch herunterzuladen.<\/p>\n<p><strong>index.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"db.php\";\n\u00a0\nuse PhpOfficePhpSpreadsheetSpreadsheet;\nuse PhpOfficePhpSpreadsheetWriterXlsx;\n\u00a0\n$spreadsheet = new Spreadsheet();\n$Excel_writer = new Xlsx($spreadsheet);\n\u00a0\n$spreadsheet-&gt;setActiveSheetIndex(0);\n$activeSheet = $spreadsheet-&gt;getActiveSheet();\n\u00a0\n$activeSheet-&gt;setCellValue('A1', 'Product Name');\n$activeSheet-&gt;setCellValue('B1', 'Product SKU');\n$activeSheet-&gt;setCellValue('C1', 'Product Price');\n\u00a0\n$query = $db-&gt;query(\"SELECT * FROM products ORDER BY id DESC\");\n\u00a0\nif($query-&gt;num_rows &gt; 0) {\n\u00a0\u00a0\u00a0\u00a0$i = 2;\n\u00a0\u00a0\u00a0\u00a0while($row = $query-&gt;fetch_assoc()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('A'.$i, $row['product_name']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('B'.$i, $row['product_sku']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('C'.$i, $row['product_price']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$i++;\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\n$filename = 'products.xlsx';\n\u00a0\nheader('Content-Type: application\/vnd.ms-excel');\nheader('Content-Disposition: attachment;filename='. $filename);\nheader('Cache-Control: max-age=0');\n$Excel_writer-&gt;save('php:\/\/output');<\/code><\/pre>\n<p>Wenn Sie diese PHP-Datei in einem Browser ausf\u00fchren, wird automatisch eine Excel-Datei heruntergeladen und dieses Excel-Blatt hat die folgende Ausgabe.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20480-6081f88658855.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20480-6081f88658855.png\" alt=\"So exportieren Sie MySQL-Datenbankdaten mit PHP nach Excel\" ><\/a><\/p>\n<h3>Exportieren von MySQL-Datenbankdaten in CSV mit PHP<\/h3>\n<p>Im vorherigen Abschnitt haben wir Daten in eine Excel-Datei exportiert. Wenn jemand Daten in eine CSV-Datei exportieren m\u00f6chte, m\u00fcssen Sie einige Zeilen im obigen Code \u00e4ndern.<\/p>\n<p><strong>csv.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"db.php\";\n\u00a0\nuse PhpOfficePhpSpreadsheetSpreadsheet;\nuse PhpOfficePhpSpreadsheetWriterCsv;\n\u00a0\n$spreadsheet = new Spreadsheet();\n$Excel_writer = new Csv($spreadsheet);\n\u00a0\n$spreadsheet-&gt;setActiveSheetIndex(0);\n$activeSheet = $spreadsheet-&gt;getActiveSheet();\n\u00a0\n$activeSheet-&gt;setCellValue('A1', 'Product Name');\n$activeSheet-&gt;setCellValue('B1', 'Product SKU');\n$activeSheet-&gt;setCellValue('C1', 'Product Price');\n\u00a0\n$query = $db-&gt;query(\"SELECT * FROM products ORDER BY id DESC\");\n\u00a0\nif($query-&gt;num_rows &gt; 0) {\n\u00a0\u00a0\u00a0\u00a0$i = 2;\n\u00a0\u00a0\u00a0\u00a0while($row = $query-&gt;fetch_assoc()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('A'.$i, $row['product_name']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('B'.$i, $row['product_sku']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('C'.$i, $row['product_price']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$i++;\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\n$filename = 'products.csv';\n\u00a0\nheader('Content-Type: application\/text-csv');\nheader('Content-Disposition: attachment;filename='. $filename);\nheader('Cache-Control: max-age=0');\n$Excel_writer-&gt;save('php:\/\/output');<\/code><\/pre>\n<h3>Senden Sie eine E-Mail mit einer Datei als Anhang<\/h3>\n<p>Bisher haben wir in diesem Artikel gesehen, wie Sie die Datei im CSV- und Excel-Format herunterladen. Einige Benutzer m\u00f6chten die exportierte Datei m\u00f6glicherweise als Anhang in der E-Mail senden. Mal sehen, wie man es erreicht.<\/p>\n<p>Installieren Sie zuerst die <a href=\"https:\/\/github.com\/PHPMailer\/PHPMailer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMailer-<\/a> Bibliothek mit dem Befehl:<\/p>\n<pre><code>composer require phpmailer\/phpmailer<\/code><\/pre>\n<p>Nach der Installation der Bibliothek k\u00f6nnen Sie einen beliebigen SMTP-Server zum Senden einer E-Mail verwenden. Es liegt an dir. Sie k\u00f6nnen Ihren vom Hosting bereitgestellten SMTP-Server, AWS SES oder Gmail-SMTP-Server verwenden. Wenn Sie mit dem Gmail-SMTP-Server arbeiten, lesen Sie unseren Artikel <a href=\"https:\/\/themewp.inform.click\/de\/senden-sie-e-mails-mit-dem-gmail-smtp-server-aus-dem-php-skript\/\" title=\"Senden von E-Mails mit dem Gmail-SMTP-Server von PHP-Skript,\">Senden von E-Mails mit dem Gmail-SMTP-Server von PHP-Skript,<\/a> der die daf\u00fcr erforderliche Konfiguration erkl\u00e4rt.<\/p>\n<p>Der Code wird zuvor geschrieben l\u00e4dt die Datei automatisch herunter. Aber jetzt, anstatt sie herunterzuladen, speichern wir die Datei im Verzeichnis und senden sie dann als Anhang. Kurz gesagt, wir haben unten den Code zum Speichern der Datei.<\/p>\n<pre><code>...\n$filename = 'products.csv';\n\u00a0\nif (!file_exists('files')) {\n\u00a0\u00a0\u00a0\u00a0mkdir('files', 0755);\n}\n$Excel_writer-&gt;save('files\/'.$filename);<\/code><\/pre>\n<p>Unser endg\u00fcltiger Code zum Senden eines Anhangs in einer E-Mail sieht wie folgt aus:<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"db.php\";\n\u00a0\nuse PhpOfficePhpSpreadsheetSpreadsheet;\nuse PhpOfficePhpSpreadsheetWriterCsv;\n\u00a0\n\/\/Import PHPMailer classes into the global namespace\nuse PHPMailerPHPMailerPHPMailer;\nuse PHPMailerPHPMailerException;\n\u00a0\n$spreadsheet = new Spreadsheet();\n$Excel_writer = new Csv($spreadsheet);\n\u00a0\n$spreadsheet-&gt;setActiveSheetIndex(0);\n$activeSheet = $spreadsheet-&gt;getActiveSheet();\n\u00a0\n$activeSheet-&gt;setCellValue('A1', 'Product Name');\n$activeSheet-&gt;setCellValue('B1', 'Product SKU');\n$activeSheet-&gt;setCellValue('C1', 'Product Price');\n\u00a0\n$query = $db-&gt;query(\"SELECT * FROM products ORDER BY id DESC\");\n\u00a0\nif($query-&gt;num_rows &gt; 0) {\n\u00a0\u00a0\u00a0\u00a0$i = 2;\n\u00a0\u00a0\u00a0\u00a0while($row = $query-&gt;fetch_assoc()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('A'.$i, $row['product_name']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('B'.$i, $row['product_sku']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$activeSheet-&gt;setCellValue('C'.$i, $row['product_price']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$i++;\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\n$filename = 'products.csv';\n\u00a0\nif (!file_exists('files')) {\n\u00a0\u00a0\u00a0\u00a0mkdir('files', 0755);\n}\n$Excel_writer-&gt;save('files\/'.$filename);\n\u00a0\n\/\/ send as an attachment\n$mail = new PHPMailer(true);\ntry {\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;isSMTP();\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Host = 'SMTP_HOST';\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;SMTPAuth = true;\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Username = 'SMTP_USERNAME';\u00a0\u00a0 \/\/username\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Password = 'SMTP_PASSWORD';\u00a0\u00a0 \/\/password\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;SMTPSecure = 'ssl';\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Port = 465;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;addAttachment('files\/'.$filename);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;isHTML(true);\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Subject = 'Our Exported File';\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;Body\u00a0\u00a0\u00a0 = 'Our Exported File';\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$mail-&gt;send();\n\u00a0\u00a0\u00a0\u00a0echo 'Message has been sent';\n} catch (Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo 'Message could not be sent. Mailer Error: '. $mail-&gt;ErrorInfo;\n}<\/code><\/pre>\n<p>Ersetzen Sie die Platzhalter durch die tats\u00e4chlichen Werte und die E-Mail wird mit einem Anhang an die E-Mail-Adresse des Empf\u00e4ngers gesendet.<\/p>\n<p>Ich hoffe, Sie verstehen, wie Sie MySQL-Datenbankeintr\u00e4ge in die Excel- oder CSV-Datei exportieren und auch als Anhang senden. Bitte teilen Sie Ihre Gedanken und Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-uebertragen-sie-dateien-in-php-auf-einen-remote-server\/\" title=\"So \u00fcbertragen Sie Dateien in PHP auf einen Remote-Server\">So \u00fcbertragen Sie Dateien in PHP auf einen Remote-Server<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/senden-sie-e-mails-mit-mailjet-alternative-zum-gmail-smtp-server-in-php\/\" title=\"Senden Sie E-Mails mit Mailjet (Alternative zum Gmail-SMTP-Server) in PHP\">Senden Sie E-Mails mit Mailjet (Alternative zum Gmail-SMTP-Server) in PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-konvertieren-sie-html-in-pdf-in-php\/\" title=\"So konvertieren Sie HTML in PDF in PHP\">So konvertieren Sie HTML in PDF in PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f6chten Sie MySQL-Datenbankdaten mit PHP nach Excel exportieren? In diesem Artikel zeigen wir Ihnen, wie Sie Daten mit minimalem Code einfach in eine Excel-Datei exportieren k\u00f6nnen<\/p>\n","protected":false},"author":1,"featured_media":21909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[272],"tags":[845],"class_list":["post-24769","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24769"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24769\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}