Trabajo con CSV en PHP: biblioteca PhpSpreadsheet

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course
```html

¿Qué es PhpSpreadsheet y para qué sirve?

PhpSpreadsheet es una potente biblioteca de PHP para trabajar con hojas de cálculo. Permite leer, escribir y editar archivos en formatos CSV, XLS, XLSX, ODS y otros. A diferencia de las funciones integradas de PHP (por ejemplo, fgetcsv), PhpSpreadsheet ofrece un enfoque orientado a objetos, procesamiento automático de codificaciones, soporte para estilos, fórmulas y grandes volúmenes de datos. La biblioteca es ideal para importar/exportar datos desde formularios web, generar informes, migrar entre bases de datos e integrarse con Excel/Google Sheets.

Instalación

La instalación se realiza a través de Composer:

composer require phpoffice/phpspreadsheet

Después de la instalación, incluya la carga automática:

require 'vendor/autoload.php';

Funciones principales

  • Lectura de CSV — carga de un archivo en un objeto Spreadsheet con detección automática del delimitador.
  • Escritura de CSV — creación y guardado de un archivo con configuración de delimitador, comillas y BOM.
  • Trabajo con hojas — creación, eliminación, renombrado y copia de hojas.
  • Formateo — estilos de celdas (fuentes, colores, bordes, alineación).
  • Fórmulas y funciones — soporte para SUM, AVERAGE, IF y otras.
  • Procesamiento de grandes datos — escritura en flujo a través de Xlsx Writer para reducir el consumo de memoria.

Ejemplo de código: lectura y escritura de CSV

Lectura de un archivo CSV y visualización de datos:

use PhpOffice\\PhpSpreadsheet\\IOFactory;

$inputFileName = './data.csv';$spreadsheet = IOFactory::load($inputFileName);$worksheet = $spreadsheet->getActiveSheet();$data = $worksheet->toArray();

foreach ($data as $row) { echo implode(', ', $row) . "";}

Escritura de datos en CSV:

use PhpOffice\\PhpSpreadsheet\\Spreadsheet;use PhpOffice\\PhpSpreadsheet\\Writer\\Csv;

$spreadsheet = new Spreadsheet();$sheet = $spreadsheet->getActiveSheet();

$sheet->setCellValue('A1', 'Nombre');$sheet->setCellValue('B1', 'Email');$sheet->setCellValue('A2', 'Iván');$sheet->setCellValue('B2', 'ivan@example.com');

$writer = new Csv($spreadsheet);$writer->setDelimiter(';');$writer->setEnclosure('"');$writer->save('./output.csv');

Cuándo usarlo

Se recomienda PhpSpreadsheet en los siguientes casos:

  • Se necesita soporte para múltiples formatos (CSV, XLSX, ODS) en un mismo proyecto.
  • Se requiere un formateo preciso (colores, fuentes, combinación de celdas).
  • Es necesario trabajar con fórmulas o grandes conjuntos de datos (más de 10 000 filas).
  • Se prefiere un estilo POO y no se desea escribir analizadores de bajo nivel.

Para tareas simples (por ejemplo, leer un solo CSV con una estructura conocida) se pueden utilizar las funciones integradas de PHP. Pero si el proyecto crece y requiere flexibilidad, PhpSpreadsheet se convertirá en una herramienta indispensable.

```

Recommendations