Mediante el framework oficial PEAR podemos extender la capacidad de nuestras aplicaciones de un modo rápido y sencillo. Pear nos ofrece una completa biblioteca de librerias que nos permite hacer prácticamente de todo.
Una de esas librerias es por ejemplo Spreadsheet_Excel_Writer , que permite escribir archivos en excel desde nuestra aplicación, especificando estilos, colores, alineamiento, funciones y comentarios de celda además de otras otras cosas que podemos hacer con una aplicación ofimática que maneje estos ficheros.
Para poder usar ésta libreria, debemos instalar pear en nuestro servidor (link en castellano y de forma manual) y después llamar a la libreria dentro de nuestro código, por ejemplo:
< ?
//incluimos la libreria
require_once ‘Spreadsheet/Excel/Writer.php’;
//damos nombre al documento
$filename=”prueba.xls”;
//abrimos un nuevo documento
$docexcel = new Spreadsheet_Excel_Writer();
//abrimos una hoja del documento
$nuevahoja =& $docexcel->addWorksheet(”Titulo de la Hoja”);
//escribimos en sus celdas
$fila=0;
$columna=0;
$valor=”Hola”;
$nuevahoja->write($fila, $columna, “$valor_de_la_celda”);//enviamos el documento para descargarlo y lo cerramos
$docexcel->send($filename);
$docexcel->close();
?>
Enero 11th, 2008 at 4:49 pm
Tengo instalado el pear y el Spreadsheet_Excel_Writer, soy nuevo en esto asi que he tomado varios ejemplos para ver como funciona, pero siempre que los ejecuto me sale la siguiente warning:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\plantilla\index.php:9)
in C:\php5\PEAR\Spreadsheet\Excel\Writer.php on line 67
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\plantilla\index.php:9)
in C:\php5\PEAR\Spreadsheet\Excel\Writer.php on line 68
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\plantilla\index.php:9)
in C:\php5\PEAR\Spreadsheet\Excel\Writer.php on line 69
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\plantilla\index.php:9)
in C:\php5\PEAR\Spreadsheet\Excel\Writer.php on line 70
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\plantilla\index.php:9)
in C:\php5\PEAR\Spreadsheet\Excel\Writer.php on line 71
Espero me puedan ayudar
De antemano gracias!!
Abril 9th, 2008 at 3:21 am
Simple amigo… lo mas dificil es instalar la cuestion en appserv…
el problema es que enviaste las cabeceras html anterior mente en el archivo… asi q cuando le pones $libro->send(”arhivo.xls”) no puede volver a enviar las cabeceras…. HTML….
//por ejemplo:
—————————————————–
holaaddFormat();
$negrita->setBold();
// Necesitamos una hoja en la cual poner nuestros datos
$hoja =& $libro->addWorksheet(‘Hoja1’);
// Verificamos que la hoja se haya generado correctamente
if (PEAR::isError($hoja)) {
die($hoja->getMessage());
}
// Este es el titulo
$hoja->write(0, 0, “Escribir hojas en excel”, $negrita);
// Generamos nuestro libro de excel
$libro->send(’ejemplo.xls’);
$libro->close();
?>
——————————————————
solucion:
Saca el hola del principio del codigo y listo
Julio 18th, 2008 at 5:03 am
Hola, muy interesante el contenido. He instalado y trabajado el codigo y me funciona perfectamente. La pregunta es, si necesito escribir en algunas celdas en particular de un archivo de Excel ya existente, es posible hacerlo? Ante todo, gracias por tu ayuda
Agosto 29th, 2008 at 4:05 pm
Ricardo
encontraste la solución a tu problema?? yo necesito hacer lo mismo y aun no encuentro nada, te agradeceria si tienes algo a ver si lo publicas.
gracias
Septiembre 6th, 2008 at 9:38 am
@Ricardo @Cesar
Quizás deberíais leeros esto
http://www.ibm.com/developerworks/xml/library/os-phpexcel/index.html