{"id":25976,"date":"2021-06-17T12:05:00","date_gmt":"2021-06-17T09:05:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25976"},"modified":"2021-10-18T02:03:44","modified_gmt":"2021-10-17T23:03:44","slug":"comment-lire-et-ecrire-des-fichiers-de-feuille-de-calcul-en-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-lire-et-ecrire-des-fichiers-de-feuille-de-calcul-en-php\/","title":{"rendered":"Comment lire et \u00e9crire des fichiers de feuille de calcul en PHP"},"content":{"rendered":"<p>En travaillant sur des applications Web, nous rencontrons souvent une situation o\u00f9 nous devons jouer avec des fichiers de feuille de calcul. Nous pouvons vouloir lire les donn\u00e9es des feuilles de calcul et les traiter. Parfois, il est \u00e9galement n\u00e9cessaire de cr\u00e9er et d&rsquo;\u00e9crire des fichiers tableur.<\/p>\n<p>Dans cet article, nous \u00e9tudions comment lire et \u00e9crire des fichiers tableur en PHP. Le code que nous allons expliquer fonctionnera sur 3 types de feuilles de calcul \u2013 CSV, XLSX et ODS.<\/p>\n<h3>Commencer<\/h3>\n<p>En tant que d\u00e9veloppeur, j&rsquo;aimerais exp\u00e9rimenter diff\u00e9rents packages qui peuvent \u00eatre utiles pour r\u00e9soudre des probl\u00e8mes du monde r\u00e9el. R\u00e9cemment, je suis tomb\u00e9 sur un paquet appel\u00e9 <a href=\"https:\/\/github.com\/box\/spout\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">box\/spout<\/a>. J&rsquo;ai aim\u00e9 la fa\u00e7on dont la biblioth\u00e8que effectuait les t\u00e2ches. En utilisant cette biblioth\u00e8que, vous pouvez traiter des fichiers de feuille de calcul avec seulement quelques lignes de code.<\/p>\n<p>Cette biblioth\u00e8que est capable de traiter des fichiers de toute taille. Il se peut que vous ayez affaire \u00e0 un gros fichier. Au cours du processus, le fichier volumineux ne doit pas consommer de m\u00e9moire et cr\u00e9e un probl\u00e8me de performances. La biblioth\u00e8que de bec r\u00e9sout ce probl\u00e8me. Il n&rsquo;a besoin que de 3 Mo de m\u00e9moire pour traiter n&rsquo;importe quel fichier.<\/p>\n<p>Avant de commencer, votre serveur doit r\u00e9pondre aux exigences ci-dessous.<\/p>\n<ul>\n<li>PHP version 7.2 ou sup\u00e9rieure<\/li>\n<li>Extension PHP <code>php_zip<\/code>activ\u00e9e<\/li>\n<li>Extension PHP <code>php_xmlreader<\/code>activ\u00e9e<\/li>\n<\/ul>\n<p>L&rsquo;utilisateur peut v\u00e9rifier si toutes les exigences ci-dessus sont satisfaites sur votre serveur en utilisant la <code>phpinfo()<\/code>m\u00e9thode. Cr\u00e9ez un fichier PHP temporaire et placez-y l&rsquo;instruction ci-dessous.<\/p>\n<p>Ex\u00e9cutez maintenant ce fichier PHP sur le navigateur et vous verrez des configurations PHP telles que la version, les extensions, etc. Vous devriez voir <code>xmlreader<\/code>et les <code>zip<\/code>extensions sont activ\u00e9es comme indiqu\u00e9 dans la capture d&rsquo;\u00e9cran ci-dessous.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20182-6081c957ae160.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-20182-6081c957ae160.png\" alt=\"Comment lire et \u00e9crire des fichiers de feuille de calcul en PHP\" ><\/a><\/p>\n<p>Une fois que vous remplissez les conditions requises, installez le <code>box\/spout<\/code>package via la commande ci-dessous.<\/p>\n<pre><code>composer require box\/spout<\/code><\/pre>\n<h3>Lire et \u00e9crire des fichiers de feuille de calcul en PHP<\/h3>\n<p>Le package Spout vous permet d&rsquo;interagir avec les fichiers XLSX, CSV et ODS. \u00c0 titre d&rsquo;exemple, j&rsquo;\u00e9cris un code pour les fichiers XLSX.<\/p>\n<p>Cr\u00e9ez un exemple de fichier XLSX <code>users.xlsx<\/code>dans le r\u00e9pertoire racine et ajoutez-y des entr\u00e9es factices. Dans mon cas, le fichier contient les entr\u00e9es ci-dessous.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20182-6081c95872223.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-20182-6081c95872223.png\" alt=\"Comment lire et \u00e9crire des fichiers de feuille de calcul en PHP\" ><\/a><\/p>\n<p>Ensuite, j&rsquo;\u00e9crirai un code dans un <code>reader.php<\/code>fichier qui lira <code>users.xlsx<\/code>et imprimera les donn\u00e9es qu&rsquo;il contient.<\/p>\n<p><strong>lecteur.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once 'vendor\/autoload.php';\n\u00a0\nuse BoxSpoutReaderCommonCreatorReaderEntityFactory;\n\u00a0\n$filePath = getcwd().'\/users.xlsx';\n\u00a0\n$reader = ReaderEntityFactory::createReaderFromFile($filePath);\n\u00a0\n$reader-&gt;open($filePath);\n\u00a0\nforeach ($reader-&gt;getSheetIterator() as $sheet) {\n\u00a0\u00a0\u00a0\u00a0foreach ($sheet-&gt;getRowIterator() as $row) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$cells = $row-&gt;getCells();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0foreach ($cells as $cell) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $cell-&gt;getValue();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\n$reader-&gt;close();<\/code><\/pre>\n<p>C&rsquo;est aussi simple que cela. Allez-y et essayez-le.<\/p>\n<p>D&rsquo;un autre c\u00f4t\u00e9, nous pouvons facilement cr\u00e9er un fichier XLSX et y \u00e9crire des donn\u00e9es. Cr\u00e9ons un fichier <code>writer.php<\/code>et ajoutons le code ci-dessous.<\/p>\n<p><strong>\u00e9crivain.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once 'vendor\/autoload.php';\n\u00a0\nuse BoxSpoutWriterCommonCreatorWriterEntityFactory;\nuse BoxSpoutCommonEntityRow;\n\u00a0\n$filePath = getcwd().'\/new-users.xlsx';\n\u00a0\n$writer = WriterEntityFactory::createXLSXWriter();\n\u00a0\n$writer-&gt;openToFile($filePath);\n\u00a0\n\/\/ Here is data for XLSX file\n$data = [\n\u00a0\u00a0\u00a0\u00a0['Name', 'Email'],\n\u00a0\u00a0\u00a0\u00a0['Steve', 'steve@test.com'],\n\u00a0\u00a0\u00a0\u00a0['David', 'david@test.com'],\n];\n\u00a0\nforeach ($data as $d) {\n\u00a0\u00a0\u00a0\u00a0$cells = [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WriterEntityFactory::createCell($d[0]),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WriterEntityFactory::createCell($d[1]),\n\u00a0\u00a0\u00a0\u00a0];\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$singleRow = WriterEntityFactory::createRow($cells);\n\u00a0\u00a0\u00a0\u00a0$writer-&gt;addRow($singleRow);\n}\n\u00a0\n$writer-&gt;close();<\/code><\/pre>\n<p>Le code ci-dessus cr\u00e9e un <code>new-users.xlsx<\/code>fichier dans votre r\u00e9pertoire racine. Si vous ouvrez ce fichier, vous verrez quelques lignes (utilis\u00e9es dans le code) y \u00eatre ins\u00e9r\u00e9es.<\/p>\n<p>Dans le cas des fichiers CSV et ODS, vous devez cr\u00e9er un <code>$writer<\/code>objet comme suit.<\/p>\n<pre><code>$filePath = getcwd().'\/new-users.ods';\n$writer = WriterEntityFactory::createODSWriter();\n\u00a0\n$filePath = getcwd().'\/new-users.csv';\n$writer = WriterEntityFactory::createCSVWriter();<\/code><\/pre>\n<p>J&rsquo;esp\u00e8re que vous comprenez comment lire et \u00e9crire des fichiers tableur en PHP. J&rsquo;aimerais entendre vos pens\u00e9es et suggestions dans la section des commentaires ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-lire-un-fichier-csv-et-excel-en-php-a-l-aide-de-phpspreadsheet\/\" title=\"Comment lire un fichier CSV et Excel en PHP \u00e0 l&#039;aide de PhpSpreadsheet\">Comment lire un fichier CSV et Excel en PHP \u00e0 l&rsquo;aide de PhpSpreadsheet<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-exporter-des-donnees-de-base-de-donnees-mysql-vers-excel-a-l-aide-de-php\/\" title=\"Comment exporter des donn\u00e9es de base de donn\u00e9es MySQL vers Excel \u00e0 l&#039;aide de PHP\">Comment exporter des donn\u00e9es de base de donn\u00e9es MySQL vers Excel \u00e0 l&rsquo;aide de PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-convertir-du-html-en-pdf-en-php\/\" title=\"Comment convertir du HTML en PDF en PHP\">Comment convertir du HTML en PDF en PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voulez-vous savoir comment lire et \u00e9crire des fichiers tableur en PHP\u00a0? Dans cet article, nous \u00e9tudions comment interagir avec des fichiers tableur en utilisant<\/p>\n","protected":false},"author":1,"featured_media":20183,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[273],"tags":[844],"class_list":["post-25976","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=25976"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25976\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20183"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=25976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=25976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=25976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}