{"id":25184,"date":"2021-05-25T11:18:00","date_gmt":"2021-05-25T08:18:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25184"},"modified":"2021-10-17T18:49:17","modified_gmt":"2021-10-17T15:49:17","slug":"kuidas-eksportida-mysql-i-andmebaasiandmeid-excelisse-php-abil","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/kuidas-eksportida-mysql-i-andmebaasiandmeid-excelisse-php-abil\/","title":{"rendered":"Kuidas eksportida MySQL-i andmebaasiandmeid Excelisse PHP abil"},"content":{"rendered":"<p>Hiljuti avaldasin artikli <a href=\"https:\/\/themewp.inform.click\/et\/kuidas-lugeda-csv-ja-exceli-faile-php-s-kasutades-phpspreadsheet\/\" title=\"Kuidas lugeda CSV- ja Exceli faile PHP-s PhpSpreadsheetiga\" >Kuidas lugeda CSV- ja Exceli faile PHP-s PhpSpreadsheetiga<\/a> ning \u00fcks lugejatest k\u00fcsis MySQL-i andmebaasikirjete ekspordi kohta Exceli faili. Kasutajal v\u00f5ib olla vaja oma andmeid Exceli v\u00f5i CSV-failis, et nad saaksid neid h\u00f5lpsalt lugeda v\u00f5i jagada. Selles artiklis k\u00e4sitlesime, kuidas saab andmeid andmebaasist eksportida Exceli ja CSV-failidesse. Lisaks sellele uurime ka seda, kuidas saab seda eksporditud faili manusena manusena saata.<\/p>\n<h3>Alustamine<\/h3>\n<p>Alustamiseks peate k\u00f5igepealt installima <a href=\"https:\/\/phpspreadsheet.readthedocs.io\/en\/latest\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PhpSpreadsheet&#8217;i<\/a> teegi. Teegi installimiseks soovitan kasutada <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composerit<\/a>. Avage terminal oma projekti juurkataloogis ja k\u00e4ivitage k\u00e4sk:<\/p>\n<pre><code>composer require phpoffice\/phpspreadsheet<\/code><\/pre>\n<p>PhpSpreadsheet on raamatukogu, mis pakub tuge erinevat t\u00fc\u00fcpi failivormingute lugemiseks ja kirjutamiseks. Allpool on ekraanipilt toetatud failivormingutest.<\/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=\"Kuidas eksportida MySQL-i andmebaasiandmeid Excelisse PHP abil\" ><\/a><\/p>\n<p>Meie eesm\u00e4rk on andmebaasitabelite kirjete eksportimine Exceli \/ CSV-faili. V\u00f5tan n\u00e4iteks toote tabeli. Loome andmebaasi tabeli &#8216;tooted&#8217;, k\u00e4ivitades alloleva p\u00e4ringu.<\/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>J\u00e4rgmisena lisage tabelisse m\u00f5ned n\u00e4ivkirjed, nii et eksporditud failis n\u00e4ete m\u00f5nda kirjet.<\/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>P\u00e4rast seda looge <code>db.php<\/code>fail, kuhu kirjutame andmebaasi \u00fchenduse.<\/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>Asendage kohat\u00e4ited \u00fclaltoodud koodi tegelike v\u00e4\u00e4rtustega. \u00d5petuse j\u00e4rgmises osas eraldan eraldi jaotise andmete eksportimiseks Excelisse, CSV-sse ja meilis\u00f5numi saatmiseks koos eksporditud failiga.<\/p>\n<h3>MySQL-i andmebaasiandmete eksportimine Excelisse PHP abil<\/h3>\n<p>Olete installinud kogu ja olete valmis mannekeenikirjetega andmebaasitabeliga. N\u00fc\u00fcd v\u00f5ite j\u00e4tkata ja kirjutada tegeliku koodi, mis ekspordib Exceli faili koos t\u00e4idetud andmetega.<\/p>\n<p>Looge <code>index.php<\/code>fail juurkataloogis. Selles failis kirjutan andmebaasist andmete toomiseks p\u00e4ringu SELECT, kirjutan need andmed Excelisse ja panen need l\u00f5puks automaatselt alla laadima.<\/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>Kui k\u00e4ivitate selle PHP-faili brauseris, hakkab Exceli fail automaatselt alla laadima ja sellel Exceli lehel on j\u00e4rgmine v\u00e4ljund.<\/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=\"Kuidas eksportida MySQL-i andmebaasiandmeid Excelisse PHP abil\" ><\/a><\/p>\n<h3>MySQL-i andmebaasiandmete eksportimine CSV-faili kasutades PHP-d<\/h3>\n<p>Eelmises osas eksportisime andmed Exceli faili. Kui keegi soovib eksportida andmeid CSV-faili, peate \u00fclaltoodud koodis muutma m\u00f5nda rida.<\/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>Saada meil, mille fail on manusena<\/h3>\n<p>Siiani oleme selles artiklis n\u00e4inud, kuidas fail CSV ja Exceli vormingus alla laadida. M\u00f5ned kasutajad v\u00f5ivad soovida saata eksporditud faili e-kirja manusena. Vaatame, kuidas seda saavutada.<\/p>\n<p>Esmalt installige <a href=\"https:\/\/github.com\/PHPMailer\/PHPMailer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMaileri<\/a> teek k\u00e4suga:<\/p>\n<pre><code>composer require phpmailer\/phpmailer<\/code><\/pre>\n<p>P\u00e4rast teegi installimist saate meili saatmiseks kasutada mis tahes SMTP-serverit. See on sinu teha. V\u00f5ite kasutada oma hostimise pakutavat SMTP-serverit, AWS SES-i v\u00f5i Gmaili SMTP-serverit. Kui kasutate Gmaili SMTP-serverit, lugege meie artiklit <a href=\"https:\/\/themewp.inform.click\/et\/e-kirja-saatmine-gmaili-smtp-serveri-abil-php-skriptist\/\" title=\"Saada\">Saada<\/a> meil <a href=\"https:\/\/themewp.inform.click\/et\/e-kirja-saatmine-gmaili-smtp-serveri-abil-php-skriptist\/\" title=\"Gmaili SMTP-serveri abil PHP-skriptist,\">Gmaili SMTP-serveri abil PHP-skriptist,<\/a> mis selgitab selle jaoks vajalikku seadistamist.<\/p>\n<p>Kood on varem kirjutatud, laadib faili automaatselt alla. N\u00fc\u00fcd aga salvestame faili allalaaditavaks muutmise asemel kataloogi ja saadame selle seej\u00e4rel manusena. L\u00fchidalt \u00f6eldes on meil faili salvestamiseks allpool kood.<\/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>Meie l\u00f5plik kood manuse saatmiseks e-kirjaga on j\u00e4rgmine:<\/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>Asendage kohat\u00e4ited tegelike v\u00e4\u00e4rtustega ja meil saadetakse manusega saaja e-posti aadressile.<\/p>\n<p>Loodan, et saate aru, kuidas MySQL-i andmebaasikirjeid Exceli v\u00f5i CSV-faili eksportida ja ka manusena saata. Palun jagage oma m\u00f5tteid ja ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-faile-php-s-kaugserverisse-edastada\/\" title=\"Kuidas faile PHP-s kaugserverisse edastada\">Kuidas faile PHP-s kaugserverisse edastada<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/saada-e-kirju-php-s-mailjeti-alternatiiv-gmaili-smtp-serverile-abil\/\" title=\"Saada e-kirju PHP-s Mailjeti (alternatiiv Gmaili SMTP-serverile) abil\">Saada e-kirju PHP-s Mailjeti (alternatiiv Gmaili SMTP-serverile) abil<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-teisendada-html-i-pdf-i-php-s\/\" title=\"Kuidas teisendada HTML-i PDF-i PHP-s\">Kuidas teisendada HTML-i PDF-i PHP-s<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kas soovite eksportida MySQL-i andmebaasiandmeid Excelisse PHP abil? Selles artiklis me n\u00e4itame teile, kuidas andmeid saab h\u00f5lpsasti eksportida Exceli faili mimumum-koodiga<\/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":[274],"tags":[842],"class_list":["post-25184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=25184"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25184\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=25184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=25184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=25184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}