✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come leggere e scrivere file di fogli di calcolo in PHP

570

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, è anche necessario creare e scrivere file di fogli di calcolo.

In questo articolo, studiamo come leggere e scrivere file di fogli di calcolo in PHP. Il codice che andremo a spiegare funzionerà su 3 tipi di fogli di calcolo: CSV, XLSX e ODS.

Iniziare

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 box/beccuccio. Mi è 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.

Questa libreria è in grado di elaborare file di qualsiasi dimensione. È 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.

Prima di iniziare, il tuo server dovrebbe soddisfare i seguenti requisiti.

  • PHP versione 7.2 o successiva
  • Estensione PHP php_zipabilitata
  • Estensione PHP php_xmlreaderabilitata

L’utente può verificare se tutti i requisiti di cui sopra sono soddisfatti sul server utilizzando il phpinfo()metodo. Crea un file PHP temporaneo e inserisci la seguente istruzione.

Ora esegui questo file PHP sul browser e vedrai le configurazioni PHP come versione, estensioni, ecc. Dovresti vedere xmlreadere le zipestensioni sono abilitate come mostrato nello screenshot qui sotto.

Come leggere e scrivere file di fogli di calcolo in PHP

Una volta soddisfatti i requisiti, installa il box/spoutpacchetto tramite il comando seguente.

composer require box/spout

Leggere e scrivere file di fogli di calcolo in PHP

Il pacchetto Spout ti consente di interagire con file XLSX, CSV e ODS. Ad esempio, sto scrivendo un codice per i file XLSX.

Crea un file XLSX di esempio users.xlsxnella directory principale e aggiungi alcune voci fittizie. Nel mio caso, il file ha voci di seguito.

Come leggere e scrivere file di fogli di calcolo in PHP

Successivamente, scriverò un codice in un reader.phpfile che leggerà users.xlsxe stamperà i dati al suo interno.

lettore.php

<?php
require_once 'vendor/autoload.php';
 
use BoxSpoutReaderCommonCreatorReaderEntityFactory;
 
$filePath = getcwd().'/users.xlsx';
 
$reader = ReaderEntityFactory::createReaderFromFile($filePath);
 
$reader->open($filePath);
 
foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $row) {
        $cells = $row->getCells();
        foreach ($cells as $cell) {
            echo $cell->getValue();
        }
    }
}
 
$reader->close();

È così semplice. Vai avanti e provalo.

D’altra parte, possiamo facilmente creare un file XLSX e scriverci i dati. Creiamo un file writer.phpe aggiungiamo il codice qui sotto.

scrittore.php

<?php
require_once 'vendor/autoload.php';
 
use BoxSpoutWriterCommonCreatorWriterEntityFactory;
use BoxSpoutCommonEntityRow;
 
$filePath = getcwd().'/new-users.xlsx';
 
$writer = WriterEntityFactory::createXLSXWriter();
 
$writer->openToFile($filePath);
 
// Here is data for XLSX file
$data = [
    ['Name', 'Email'],
    ['Steve', '[email protected]'],
    ['David', '[email protected]'],
];
 
foreach ($data as $d) {
    $cells = [
        WriterEntityFactory::createCell($d[0]),
        WriterEntityFactory::createCell($d[1]),
    ];
 
    $singleRow = WriterEntityFactory::createRow($cells);
    $writer->addRow($singleRow);
}
 
$writer->close();

Il codice sopra crea un new-users.xlsxfile nella directory principale. Se apri questo file, vedrai che alcune righe (utilizzate nel codice) sono inserite in esso.

Nel caso di file CSV e ODS, è necessario creare un $writeroggetto come segue.

$filePath = getcwd().'/new-users.ods';
$writer = WriterEntityFactory::createODSWriter();
 
$filePath = getcwd().'/new-users.csv';
$writer = WriterEntityFactory::createCSVWriter();

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.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More