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
Octubre 23rd, 2008 at 4:00 pm
el codigo me funciona muy bien cuando lo ejecuto desde un archivo nuevo.
Pero en el momento de ejecutarlo desde una aplicacion como el sugarcrm este trata de cargarme todas las imagenes y elementos de la aplicacion.
ya que necesito que solamente genere un archivo excel con losm datos que yo le especifico podrian explicarme como hacer para que no me cargue la informacion de la aplicacion que menciono,
espero me hayan entendido.
Gracias
Noviembre 10th, 2008 at 4:42 pm
como hago para exportar a una plantilla de excel existente desde php?