Crear y leer archivos Excel con PHP
Hoy en día Microsoft Excel es uno de los gestores de planillas de cálculo mas utilizados en todo el mundo, mas allá de que Google Docs sea muy simple, gratis y online, el Excel es uno de los pilares dentro de la suite de Microsoft. Es por eso que cuando creamos una aplicación buscando ser lo mas útil para el usuario debemos contemplar la opción de permitir exportar la información para ser visualizada en Excel, para eso les voy a recomendar una clase php para generar documentos xls realmente simple.
PHP Excel Creator library es una pequeña librería que nos provee de las clases php necesarias tanto para crear como para leer ficheros Excel desde PHP sin demasiadas complicaciones, yo la conocí hace unos días gracias a Juokaz y la verdad que desde que la vengo utilizando no tengo ninguna complicación, la implementación de esta clase es sencilla, a continuación coloco el mismo ejemplo que utilice yo cuando la utilice por primera vez.
-
require ('..path/Writer.php');
-
-
$filename = 'myFile.xls';
-
-
$workbook = new Spreadsheet_Excel_Writer();
-
$workbook->send($filename);
-
-
// Look at documentation
-
$workbook->setVersion(8);
-
// Temporary files directory
-
$workbook->setTempDir('/tmp');
-
-
$worksheet =& $workbook->addWorksheet('Items');
-
$worksheet->setInputEncoding('UTF-8');
-
$worksheet->setMargins(0.25);
-
$worksheet->centerHorizontally(1);
-
-
$worksheet->activate();
-
-
$format_header =& $workbook->addFormat();
-
$format_header->setBold();
-
$format_header->setSize(12);
-
-
$worksheet->write(0, 0, 'Code',$format_header);
-
$worksheet->setColumn(0, 0, 30);
-
$worksheet->write(0, 1, 'Title',$format_header);
-
$worksheet->setColumn(1, 1, 50);
-
-
$format_row =& $workbook->addFormat();
-
$format_row->setSize(12);
-
-
foreach ($items as $item)
-
{
-
$worksheet->writeString($i, 0, $item->code, $format_row);
-
$worksheet->writeString($i, 1, $item->title, $format_row);
-
}
-
-
$workbook->close();
Como verán la utilización de esta clase no tiene demasiada complejidad, además con solo un valor podemos definir la versión de Excel con la que queremos generar el archivo, y de paso nos olvidamos de toda la complejidad que tiene parsear un documento de Excel a “mano”.
Otra clase que había probado hace tiempo y me pareció muy buena también es phpexcel, pero la verdad para el uso que le doy yo las dos se comportan de forma muy similar, quizás para grandes requerimientos a fin de evitar un alto consumo de recursos la ultima clase que les comento sea un poco mejor, pero esto había que confirmarlo con algunos benchmarks.
Por el momento sigo muy contento con PHP Excel Creator library





Junio 18th, 2009 a las 13:09
gran articulo
Junio 18th, 2009 a las 13:30
@Rayban: Me alegro que te guste
Junio 18th, 2009 a las 21:03
Excelente este artículo he visto a muchos sufriendo por encontrar una solución de este tipo y más esta tan sencilla. Mil gracias
Junio 19th, 2009 a las 9:48
Hi,
muy buen articulo, hace unos meses tuve que general archivos xls pero no encontre ninguna lib que lo hiciera de forma correcta (que funcionara por asi decirlo
) asi que termine generando cvs
Regards,
Shadow.
Junio 19th, 2009 a las 11:47
@Victor: Si es complicado encontrar algo tan sencillo para generar archivos de excel, la verdad que esta bueno, gracias por el comentario!
@Shadow: Gracias, me alegro que te sirva
Julio 15th, 2009 a las 16:55
disculpa no me funciona! donde puedo encontrar ducumentacion gratis!, lo copie tal cual tu ejemplo y:
Fatal error: Call to undefined method: spreadsheet_excel_writer_worksheet->raiseerror() in C:\AppServ\www\Otro excel\excel-2.0\Worksheet.php on line 1518
y no quiero menterme con la libreria, no se para que sirbe el dir /temp de todos modos lo cree
Julio 15th, 2009 a las 16:59
@danny: Que raro deberia funcionar, quizas este mal la ruta en la primer linea por lo que dices ahi require (‘..path/Writer.php’); fijate ubicarla correctamente sino puedes leer mas acerca de esta clase en http://pizzaseo.com/php-excel-creator-class espero haber podido ayudado un poco mas
Julio 16th, 2009 a las 10:59
[...] un tiempo me había emocionado jugando con una clase que permitía crear documentos de Excel desde PHP, en esta ocasión y gracias a Delicious descubro mPDF y como el titulo de la entrada dice y el [...]
Agosto 27th, 2009 a las 17:37
soy novato en php
perdona mi ignorancia, cuando hice lo de las librerias si creo el archivo, pero i problema es como implementarlo para leer un archivo?
agradezco tu respueta
Septiembre 18th, 2009 a las 19:26
Saludos !
Soy nuevo en PHP me gustaria saber si alguien tienen noción como debo empezar para crear un cotizador en linea, que por medio del area de un triangulo cotize el precio de un producto :S.
Alguien puede darme una idea o decirme sobre un recurso.
Gracias.
@Pablo gracias el articulo