{"id":26259,"date":"2021-06-17T12:20:00","date_gmt":"2021-06-17T09:20:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26259"},"modified":"2021-10-18T03:00:07","modified_gmt":"2021-10-18T00:00:07","slug":"come-leggere-e-scrivere-file-di-fogli-di-calcolo-in-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/come-leggere-e-scrivere-file-di-fogli-di-calcolo-in-php\/","title":{"rendered":"Come leggere e scrivere file di fogli di calcolo in PHP"},"content":{"rendered":"<p>Mentre lavoriamo su applicazioni web, spesso ci imbattiamo in una situazione in cui dobbiamo giocare con file di fogli di calcolo. Potremmo voler leggere i dati da fogli di calcolo ed elaborarli. A volte, \u00e8 anche necessario creare e scrivere file di fogli di calcolo.<\/p>\n<p>In questo articolo, studiamo come leggere e scrivere file di fogli di calcolo in PHP. Il codice che andremo a spiegare funzioner\u00e0 su 3 tipi di fogli di calcolo: CSV, XLSX e ODS.<\/p>\n<h3>Iniziare<\/h3>\n<p>Come sviluppatore, vorrei sperimentare diversi pacchetti che possono essere utili per risolvere problemi del mondo reale. Di recente, mi sono imbattuto in un pacchetto chiamato <a href=\"https:\/\/github.com\/box\/spout\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">box\/beccuccio<\/a>. Mi \u00e8 piaciuto il modo in cui la biblioteca ha eseguito i compiti. Utilizzando questa libreria, puoi elaborare file di fogli di calcolo con poche righe di codice.<\/p>\n<p>Questa libreria \u00e8 in grado di elaborare file di qualsiasi dimensione. \u00c8 possibile che tu abbia a che fare con un file di grandi dimensioni. Durante il processo, il file di grandi dimensioni non dovrebbe consumare la memoria e crea un problema di prestazioni. La libreria Spout risolve questo problema. Ha bisogno solo di 3 MB di memoria per elaborare qualsiasi file.<\/p>\n<p>Prima di iniziare, il tuo server dovrebbe soddisfare i seguenti requisiti.<\/p>\n<ul>\n<li>PHP versione 7.2 o successiva<\/li>\n<li>Estensione PHP <code>php_zip<\/code>abilitata<\/li>\n<li>Estensione PHP <code>php_xmlreader<\/code>abilitata<\/li>\n<\/ul>\n<p>L&#8217;utente pu\u00f2 verificare se tutti i requisiti di cui sopra sono soddisfatti sul server utilizzando il <code>phpinfo()<\/code>metodo. Crea un file PHP temporaneo e inserisci la seguente istruzione.<\/p>\n<p>Ora esegui questo file PHP sul browser e vedrai le configurazioni PHP come versione, estensioni, ecc. Dovresti vedere <code>xmlreader<\/code>e le <code>zip<\/code>estensioni sono abilitate come mostrato nello screenshot qui sotto.<\/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=\"Come leggere e scrivere file di fogli di calcolo in PHP\" ><\/a><\/p>\n<p>Una volta soddisfatti i requisiti, installa il <code>box\/spout<\/code>pacchetto tramite il comando seguente.<\/p>\n<pre><code>composer require box\/spout<\/code><\/pre>\n<h3>Leggere e scrivere file di fogli di calcolo in PHP<\/h3>\n<p>Il pacchetto Spout ti consente di interagire con file XLSX, CSV e ODS. Ad esempio, sto scrivendo un codice per i file XLSX.<\/p>\n<p>Crea un file XLSX di esempio <code>users.xlsx<\/code>nella directory principale e aggiungi alcune voci fittizie. Nel mio caso, il file ha voci di seguito.<\/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=\"Come leggere e scrivere file di fogli di calcolo in PHP\" ><\/a><\/p>\n<p>Successivamente, scriver\u00f2 un codice in un <code>reader.php<\/code>file che legger\u00e0 <code>users.xlsx<\/code>e stamper\u00e0 i dati al suo interno.<\/p>\n<p><strong>lettore.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>\u00c8 cos\u00ec semplice. Vai avanti e provalo.<\/p>\n<p>D&#8217;altra parte, possiamo facilmente creare un file XLSX e scriverci i dati. Creiamo un file <code>writer.php<\/code>e aggiungiamo il codice qui sotto.<\/p>\n<p><strong>scrittore.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>Il codice sopra crea un <code>new-users.xlsx<\/code>file nella directory principale. Se apri questo file, vedrai che alcune righe (utilizzate nel codice) sono inserite in esso.<\/p>\n<p>Nel caso di file CSV e ODS, \u00e8 necessario creare un <code>$writer<\/code>oggetto come segue.<\/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>Spero che tu capisca come leggere e scrivere file di fogli di calcolo in PHP. Mi piacerebbe sentire i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-leggere-file-csv-ed-excel-in-php-utilizzando-phpspreadsheet\/\" title=\"Come leggere file CSV ed Excel in PHP utilizzando PhpSpreadsheet\">Come leggere file CSV ed Excel in PHP utilizzando PhpSpreadsheet<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-esportare-i-dati-del-database-mysql-in-excel-utilizzando-php\/\" title=\"Come esportare i dati del database MySQL in Excel utilizzando PHP\">Come esportare i dati del database MySQL in Excel utilizzando PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-convertire-html-in-pdf-in-php\/\" title=\"Come convertire HTML in PDF in PHP\">Come convertire HTML in PDF in PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vuoi sapere come leggere e scrivere file di fogli di calcolo in PHP? In questo articolo, studiamo come interagire con i file dei fogli di calcolo utilizzando<\/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":[276],"tags":[846],"class_list":["post-26259","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=26259"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26259\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/20183"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=26259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=26259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=26259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}