Crear archivos de Excel en PHP

Las hojas de cálculo se han convertido en una parte esencial para mantener, organizar y analizar los datos. Dado que las soluciones automatizadas están más en el negocio en estos días, la tendencia de crear y manipular documentos de Excel (XLS/XLSX) ha surgido y está creciendo a un ritmo enorme. De acuerdo con el escenario mencionado anteriormente, este artículo cubre cómo crear archivos Excel XLSX o XLS en aplicaciones web basadas en PHP.

API de PHP para crear archivos de Excel

Para crear y manipular archivos de Excel en aplicaciones web basadas en PHP, utilizaremos Aspose.Cells for PHP via Java. Es una potente API que proporciona una amplia gama de funciones para la automatización de Excel. Puede descargar el paquete API desde aquí.

Uso

Los siguientes son los requisitos previos que debe cumplir para usar Aspose.Cells para PHP a través de Java.

Una vez que haya completado los requisitos previos, siga los pasos a continuación para ejecutar el archivo ejemplo.php para la prueba.

  1. Coloque el archivo Java.inc en la carpeta raíz del paquete de la API que ha descargado.
  2. Ejecute JavaBridge.jar usando los siguientes comandos en el símbolo del sistema:
    • cd aspose.cells

    • %JAVAHOME%\bin\java -Djava.ext.dirs=lib -jar JavaBridge.jar SERVLETLOCAL:8080

  3. Ejecute example.php desde la carpeta raíz de la API usando el siguiente comando:
    • ejemplo de php.php

Cree archivos Excel XLS o XLSX usando PHP

Los siguientes son los pasos para crear un archivo Excel XLSX/XLS usando PHP.

El siguiente ejemplo de código muestra cómo crear un archivo XLSX de Excel usando PHP.

require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once("aspose.cells.php");

use aspose\cells;

// Crear un objeto de clase de Workbook
$workbook = new cells\Workbook();

// Accede a las hojas de trabajo
$sheets = $workbook->getWorksheets();

// Acceda a las celdas de la hoja de trabajo deseada
$cells = $sheets->get(0)->getCells();

// Insertar valor a la celda
$cells->get("A1")->putValue("Hello world!");

// Guarde el archivo de Excel
$workbook->save("output.xlsx", cells\SaveFormat::XLSX);

Escribir datos en un archivo de Excel existente usando PHP

En la sección anterior, creamos un archivo de Excel desde cero. Ahora, editemos un archivo de Excel existente e insertemos datos en él. Los siguientes son los pasos para escribir datos en un archivo XLSX usando Aspose.Cells para PHP a través de Java.

El siguiente ejemplo de código muestra cómo modificar un archivo de Excel y escribir datos en él mediante PHP.

// Cree un objeto de clase de Workbook para cargar un archivo de Excel
$workbook = new cells\Workbook("workbook.xlsx");

// Accede a las hojas de trabajo
$sheets = $workbook->getWorksheets();

// Acceda a las celdas de la hoja de trabajo deseada
$cells = $sheets->get(0)->getCells();

// Insertar valor a la celda
$cells->get("A1")->putValue("Hello world!");

// Guarde el archivo de Excel
$workbook->save("updated.xlsx");

Crear gráficos en un archivo de Excel usando PHP

Los siguientes son los pasos para crear gráficos en un archivo de Excel usando PHP.

El siguiente ejemplo de código muestra cómo crear gráficos en archivos de Excel en PHP.

// Cargue el archivo de Excel
$workbook = new Workbook("Book2.xlsx");

// Obtener la referencia de la primera hoja de cálculo
$worksheets = $workbook->getWorksheets();
$sheet = $worksheets->get(0);

// Agregar algún valor de muestra a las celdas
$cells = $sheet->getCells();
$cell = $cells->get("A1");
$cell->setValue(50);
$cell = $cells->get("A2");
$cell->setValue(100);
$cell = $cells->get("A3");
$cell->setValue(150);
$cell = $cells->get("B1");
$cell->setValue(4);
$cell = $cells->get("B2");
$cell->setValue(20);
$cell = $cells->get("B3");
$cell->setValue(50);

// Obtener gráficos en la hoja de trabajo
$charts = $sheet->getCharts();

// Agregar un gráfico a la hoja de cálculo
$chartIndex = $charts->add(ChartType::PYRAMID, 5, 0, 15, 5);
$chart = $charts->get($chartIndex);

// Agregue NSeries (fuente de datos del gráfico) al gráfico que va desde "A1"
// celda a "B3"
$serieses = $chart->getNSeries();
$serieses->add("A1:B3", true);

// Escribir el archivo de Excel 
$workbook.save("Excel_with_Chart.xlsx");

Crear una tabla dinámica en un archivo de Excel usando PHP

Las tablas dinámicas en las hojas de cálculo de Excel se utilizan para agregar filtros a los datos, calcular totales, resumir datos, etc. Las tablas dinámicas se pueden crear utilizando el rango de celdas de la hoja de cálculo. Los siguientes son los pasos para crear una tabla dinámica en una hoja de cálculo de Excel usando PHP.

El siguiente ejemplo de código muestra cómo crear una tabla dinámica en Excel usando PHP.

// Cargar documento a convertir
$workbook = new Workbook("Book2.xlsx");

// Obtener la referencia de la primera hoja de cálculo
$worksheets = $workbook->getWorksheets();
$sheet = $worksheets->get(0);

// Agregar algún valor de muestra a las celdas
$cells = $sheet->getCells();
$cell->setValue("Sport");
$cell = $cells->get("B1");
$cell->setValue("Quarter");
$cell = $cells->get("C1");
$cell->setValue("Sales");

$cell = $cells->get("A2");
$cell->setValue("Golf");
$cell = $cells->get("A3");
$cell->setValue("Golf");
$cell = $cells->get("A4");
$cell->setValue("Tennis");
$cell = $cells->get("A5");
$cell->setValue("Tennis");
$cell = $cells->get("A6");
$cell->setValue("Tennis");
$cell = $cells->get("A7");
$cell->setValue("Tennis");
$cell = $cells->get("A8");
$cell->setValue("Golf");

$cell = $cells->get("B2");
$cell->setValue("Qtr3");
$cell = $cells->get("B3");
$cell->setValue("Qtr4");
$cell = $cells->get("B4");
$cell->setValue("Qtr3");
$cell = $cells->get("B5");
$cell->setValue("Qtr4");
$cell = $cells->get("B6");
$cell->setValue("Qtr3");
$cell = $cells->get("B7");
$cell->setValue("Qtr4");
$cell = $cells->get("B8");
$cell->setValue("Qtr3");

$cell = $cells->get("C2");
$cell->setValue(1500);
$cell = $cells->get("C3");
$cell->setValue(2000);
$cell = $cells->get("C4");
$cell->setValue(600);
$cell = $cells->get("C5");
$cell->setValue(1500);
$cell = $cells->get("C6");
$cell->setValue(4070);
$cell = $cells->get("C7");
$cell->setValue(5000);
$cell = $cells->get("C8");
$cell->setValue(6430);

// Obtener tablas dinámicas
$pivotTables = $sheet->getPivotTables();

// Agregar una tabla dinámica a la hoja de trabajo
$index = $pivotTables->add("=A1:C8", "E3", "PivotTable2");

// Acceda a la instancia de la tabla dinámica recién agregada
$pivotTable = $pivotTables->get($index);

// Mostrar totales generales para filas
$pivotTable->setRowGrand(false);

// Arrastre el primer campo al área de la fila
$pivotTable->addFieldToArea(PivotFieldType::ROW, 0);

// Arrastre el segundo campo al área de la columna
$pivotTable->addFieldToArea(PivotFieldType::COLUMN, 1);

// Arrastre el tercer campo al área de datos
$pivotTable->addFieldToArea(PivotFieldType::DATA, 2);

// Escribir el archivo de Excel
$workbook.save("Excel_with_Table.xlsx");

Obtenga una licencia de API gratuita

Puede usar la API de forma gratuita sin limitaciones de evaluación utilizando una licencia temporal.

Conclusión

En este artículo, ha aprendido cómo crear archivos de Excel desde cero usando PHP. Además, ha visto cómo escribir datos en un archivo de Excel existente y generar gráficos o tablas. Puede explorar más sobre la API de PHP Excel utilizando la documentación. En caso de que tenga alguna pregunta, no dude en hacérnosla saber a través de nuestro foro.

Ver también