Generación de Planillas Excel desde PHP

Feb 13, 2010 No Comments by

¿Necesitamos generar una planilla excel dinámica?
La generación de una “Planilla Excel” no es una tarea complicada, en muchos lenguajes, como Java y C#, existen librerias libres que nos permiten generar documentos office independiente de la plataforma, como los proyectos Apache POI y su Port NPOI, en PHP, tenemos desde hace un tiempo atrás el proyecto PEAR Spreadsheet_Excel_Writer.

Instalación

Hay dos alternativas para instalar un package PEAR, una es utilizando los gestores de pear como pear o pyrus y la otra es realizar una instalación manual descargando el package y sus dependencias.

# Usando pear
pear install OLE-1.0.0RC1
pear install Spreadsheet_Excel_Writer-0.9.2
# usando pyrus
php pyrus.phar install pear/Spreadsheet_Excel_Writer-0.9.2
# descarga manual
wget "http://download.pear.php.net/package/Spreadsheet_Excel_Writer-0.9.2.tgz"

O podemos descargar el ejemplo funcional de más abajo.

Generación de una Planilla

Spreadsheet_Excel_Writer dispone de métodos para la manipulación de nuestra planilla dinámica, podemos crear una o más hojas, trabajar con las celdas, incluso manejar formulas, pero lo más habitual (o facil xD) es crear una planilla de una hoja con los datos que vamos a exportar.

Vamos a crear una pequeña función data_to_excel, que nos permite generar una planilla dinámica excel desde un arreglo bidimensional.

<?php
$pear = "/usr/share/php5/php/";
ini_set("include_path",ini_get("include_path").":$pear");
require_once("Spreadsheet/Excel/Writer.php");

function data_to_excel( $array , $name = "Hoja" )
{
	header("Content-type: application/vnd.ms-excel");
	header("Content-Disposition: attachment; filename=$name.xls");

	$x = & new Spreadsheet_Excel_Writer();
	$x->setVersion(8);
	$s = &$x->addWorksheet( $name );

	$sx = 0;
	$sy = 0;
	foreach( $array as $k => $r )
	{
		foreach( $r as $kk => $c )
		{
			if ( is_int( $c ) or is_float( $c ) )
				$s->write($sx, $sy, $c);
			else
				$s->writeString($sx, $sy, $c);
			$sy++;
		}
		$sx++;
		$sy = 0;
	}
	$x->close();
}

$data[] = array( "Id" , "Codigo" , "Producto" ,  "Valor" , "Stock" , "Costo" );
for( $i=0;$i<100;$i++ )
{
	$data[] = array( ($i + 1 ) , "00000000".$i , "PK1000".$i ,  rand(10000,99999) , rand(1,100) , rand(1000,9999)*0.79 );
}
data_to_excel($data);

La función es sencilla, solo instancia a la clase Spreadsheet_Excel_Writer, agrega una nueva hoja y luego recorre el arreglo para ir insertando los datos en las celdas de nuestra planilla, muy útil a la hora de exportar datos, tablas, etc.



Descargar artículo “Generación de Planillas en PHP” más ejemplo funcional.

ejemplos de planillas excel con spreadsheet_excel_reader, crear planilla excel, planilla dinámica excel, manual para generar excel con php, exportar arreglo a excel
PHP

About the author

Ingeniero en Informática, Oracle Certified Master Java EE 6 Enterprise Architect, Oracle Certified Professional Java Programmer. Experto en distintas ramas de la computación y otras "yerbas" xD. Si te gusto este post, sígueme en @deerme_org, escríbeme a info AT deerme.org o contactame por linkedin.
No Responses to “Generación de Planillas Excel desde PHP”

Leave a Reply


two - 1 =