Gracias al sistema de componentes rehutilizables en PHP llamado PEAR (sitio web oficial).
El proyecto PEAR tiene como metas:
Podemos añadir a los desarrollos nuevas funcionalidades sin necesidad de reinventar la rueda. Generalmente los componentes de PEAR son conjuntos de librerias y clases que hacen que el trabajo sea muy fácil. En este caso nos referimos a la generación de archivos Excel (.xls) con PHP.
El componente Spreadsheet Excel Writer de PEAR permite aplicar estilos a las celdas, aplicar formulas dentro de las hojas, generar hojas dentro del archivo entre otras muchas más cosas.
Para comprender su funcionamiento, veamos un ejemplo:
<?php
require_once('Writer.php');
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
// sending HTTP headers
$workbook->send("archivo.xls");
// Creating a worksheet
$worksheet =& $workbook->addWorksheet('');
//Styles
$titulo = &$workbook->addFormat();
$titulo->setBold();
$titulo->setSize(25);
$worksheet->setColumn(0,0,75);
$worksheet->setRow(14, 30);
$worksheet->writeString(14,1,'titulo',$titulo);
$worksheet->write(17,0,'17/12/2008');
$worksheet->writeString(20,0,'texto');
$array = array('0' => 'elem1', '1' => 'elem2');
$worksheet->writeCol(17,5,$array,$normal);
$workbook->close();
?>
Como véis es bastante simple generar un Excel, si queremos poner bordes y colores, se complica algo más, pero al tratar la hoja como una gran matriz, sólo es laborioso. En la extensa documentación del componente encontráreis mucha más información sobre los métodos y propiedades, que no son pocas.
Trabajo en Linux y no se como instalar el PEAR y cargar el paquete correspondiente. He bajado:
wget http://pear.php.net/get/PEAR-1.4.3.tar
lo he descomprimido:
tar xvf PEAR-1.4.3.tar
he bajado también:
wget http://pear.php.net/get/Spreadsheet_Excel_Writer-0.9.1
y ahí me he quedado porque no me funciona el pear install del paquete.
Dice siempre -bash: pear: command not found
Podrías explicarme así como para totntos como hacer paso a paso, la parte del scrip de php ha quedado clara, pero fallo en lospasos previos.
Hola, Ana, ¿que distribución usas de linux? Puedes instalar facilmente pear para php en Ubuntu, por ejemplo, haciendo esto: apt-get install php-pear
PEAR generalmente se encuentra en los repositorios de todas las grandes distribuciones, a no ser, que necesites algo muy especial probaría de instalarlo por esta vía.
Prueba y cuenta que tal te ha ido
Gracias a tu artículo me enteré del mundo PEAR. Estaba acostumbrado a buscar clases sueltas en sourceforge, no pensé que existiera un arbol organizado de extensiones.
Con respecto a este paquete en particular… tienes idea de cómo guardar el XLS en un archivo? Todos los ejemplos concluyen con la planilla abriéndose en excel, pero yo necesito generar un batch de 180 planillas y no las quiero en pantalla todas a la vez!
(pregunto acá porque pear.php.net no tiene foro ni comments)
Hola, Felipe, si te fijas en el código que hay en el post, hay una línea que dice: $workbook->send(”archivo.xls”); Eso hace que el navegador se “descargue” el xls que estamos generando, para hacer que se guarde en el disco duro del servidor, no hay que poner esa línea, y añadir en la línea anterior:
$workbook = new Spreadsheet_Excel_Writer();
Esto:
$workbook = new Spreadsheet_Excel_Writer(”archivo.xls”);
Lo que estamos haciendo modificando esa primera línea del código y eliminando la siguiente, es indicar que lo vamos a guardar en el servidor con el nombre “archivo.xls” por lo que el navegador no se descargara nada
Supongo que será esto lo que necesitas, para cualquier cosa ya sabes, estamos a 1 tiro del teclado
Fuente: http://pear.php.net/manual/en/package.fileformats.spreadsheet-excel-writer.intro.php
Mostro!
Y yo intentando usar frwite!
Sigo abusando de tu paciencia: ¿Sabes si es posible capturar el contenido del XLS como string antes de guardarlo en el directorio?