✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cómo leer y escribir archivos de hoja de cálculo en PHP

367

Mientras trabajamos en aplicaciones web, a menudo nos encontramos con una situación en la que necesitamos jugar con archivos de hojas de cálculo. Es posible que queramos leer datos de hojas de cálculo y procesarlos. A veces, también es necesario crear y escribir archivos de hojas de cálculo.

En este artículo, estudiamos cómo leer y escribir archivos de hojas de cálculo en PHP. El código que vamos a explicar funcionará en 3 tipos de hoja de cálculo: CSV, XLSX y ODS.

Empezando

Como desarrollador, me gustaría experimentar con diferentes paquetes que pueden ser útiles para resolver problemas del mundo real. Recientemente, encontré un paquete llamado box / spout. Me gustó la forma en que la biblioteca realizaba las tareas. Con esta biblioteca, puede procesar archivos de hojas de cálculo con solo unas pocas líneas de código.

Esta biblioteca es capaz de procesar archivos de cualquier tamaño. Es posible que se trate de un archivo de gran tamaño. Durante el proceso, el archivo grande no debería consumir la memoria y crea un problema de rendimiento. La biblioteca Spout resuelve este problema. Solo necesita 3 MB de memoria para procesar cualquier archivo.

Antes de comenzar, su servidor debe cumplir con los siguientes requisitos.

  • PHP versión 7.2 o superior
  • Extensión PHP php_ziphabilitada
  • Extensión PHP php_xmlreaderhabilitada

El usuario puede comprobar si se cumplen todos los requisitos anteriores en su servidor utilizando el phpinfo()método. Cree un archivo PHP temporal y coloque la siguiente declaración en él.

Ahora ejecutar este archivo PHP en el navegador y verá configuraciones de PHP como la versión, extensiones, etc. Debe ver xmlreadery zipextensiones están habilitadas como se muestra en la siguiente imagen.

Cómo leer y escribir archivos de hoja de cálculo en PHP

Una vez que cumpla con los requisitos, instale el box/spoutpaquete a través del siguiente comando.

composer require box/spout

Leer y escribir archivos de hoja de cálculo en PHP

El paquete Spout le permite interactuar con archivos XLSX, CSV y ODS. Como ejemplo, estoy escribiendo un código para archivos XLSX.

Cree un archivo XLSX de muestra users.xlsxen el directorio raíz y agregue algunas entradas ficticias. En mi caso, el archivo tiene las siguientes entradas.

Cómo leer y escribir archivos de hoja de cálculo en PHP

A continuación, escribiré un código en el reader.phparchivo que leerá users.xlsxe imprimirá los datos que contiene.

reader.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();

Es así de simple. Adelante, pruébalo.

Por otro lado, podemos crear fácilmente un archivo XLSX y escribir datos en él. Creemos un archivo writer.phpy agreguemos el código a continuación.

escritor.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();

El código anterior crea un new-users.xlsxarchivo en su directorio raíz. Si abre este archivo, verá que se insertan algunas filas (utilizadas en el código).

En el caso de archivos CSV y ODS, debe crear un $writerobjeto de la siguiente manera.

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

Espero que comprenda cómo leer y escribir archivos de hojas de cálculo en PHP. Me gustaría escuchar sus pensamientos y sugerencias en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: 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