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();
?>
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!!
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
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
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
@Ricardo @Cesar
Quizás deberíais leeros esto
http://www.ibm.com/developerworks/xml/library/os-phpexcel/index.html
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
como hago para exportar a una plantilla de excel existente desde php?
La verdad es que yo soy bastante estúpido, pq no pude instalar toda la mierda que publicaste… y más estúpido soy por llevarte el apunte con eso de cambiar el php.ini, y llenarme de archivos que seguramente no me servirán para un carajo de forma que ya no me anda el apache y un montón de cosas más… Así que gracias, pero no estoy al nivel de los que pudieron hacer andar toda esta maraña de mierdas!!!. Suerte y Saludos… y si se te ocurre hacer una versión del tutorial explicado para IDIOTAS anotame primero en la lista.
@Jose suerte en tu vida y esas cosas
Saludos, quisiera aportar algo de ayuda con referente a insertar imágenes a un archivo excel, usando esta maravillosa clase; porque tuve muchos problemas para averiguarlo.
$hoja->insertBitmap(0,0,’/var/www/sitio-web/images/imagen.bmp’);
Ahora, me gustaria que alguien me ayudara para combinar celdas
Saludos y gracias
Amigos, disculpen la ignorancia pero yo estoy necesitando de este recurso para mi apliacion pero estoy trabajando con xammp en windows…. me sirve esta aplicacion o no?.