I needed to make a little app to make some listings in Excel and the easiest and fastest way to do it accesible to everyone was to upload it to the web. So I’ve searched how to create Excel files from PHP.
To do this I found the class IAM_XLS. With it you can create a .XLS file and add data to it (from a msql query or generating the data) and give it out to the explorer to download. Here you have an example of code:
<?php
require("iam_xls.php");//Create EXCEL file in memory
$mid_excel = new IAM_XLS('tickets');$i = 0;
$fila = 0;
while($i <= 50) {
//Write on cells
$mid_excel->WriteCellNumber($fila, 0, $i);
$mid_excel->WriteCellText($fila, 1, "texto");
$fila++;
$i++;
}//Spit out the file in the browser
$mid_excel->OutputFile();?>
Pretty simple, I had never done anything like this and in a few minutes I had it working.
It comes with enough documentation, in web format.

Read AwesomeBytes in english!
#1 by Eleazan on 16:58 - 16:58
Quote
Uhm, yo me había encontrado ya con este problema… aunq mi solución fue menos fina.
Prueba un simple documentos, con tablas… y pones esto de header:
header(“Content-type: application/vnd.ms-excel”);
header(“Content-Disposition: filename=\”nombre.XLS\”;”);
Para mi fué más rápido (ya estaba todo creado, sólo segun el parametro, ponía el header, o no xD)
Pingback: Generar un archivo de Excel desde PHP « Eleazan's Source
Pingback: Generar un archivo de Excel desde PHP « Eleazan's Source
#2 by Mike on 20:48 - 20:48
Quote
Hola, yo tengo un generador de reportes que funciona muy bien usando fopen y fclose. El problema es que necesito subirlo a un servidor externo y necesito evitar que se guarden los reportes en este servidor. Necesito que se pueda descargar sin quedar guardado en el servidor o que se pueda destruir en el servidor una vez que descargado.
#3 by Mike on 20:58 - 20:58
Quote
Por cierto, yo uso \t para pasar de una celda a otra y \n para la vuelta de carro. Ya esta completa y no quisiera volverla a hacer para usar tablas de html para definir las celdas del archivo excel, además de que ya tiene html porque es una pagina que se muestra en navegador.
De momento es descargable con un vil enlace pero eso sólo permite descargar una copia del archivo alojado en el servidor. ¿Cómo hago el archivo descargable (sólo añadiendo php, no haciendo el archivo otra vez) sin que éste se guarde en el servidor?
#4 by r0s on 21:15 - 21:15
Quote
No acabo de entender tu pregunta del todo, y además no soy un experto en este tema, solo necesité hacer este pequeño hack un día concreto. Lo único que te puedo decir es que el pedazo de código que he publicado en este artículo no guarda nada en el servidor, genera el excel al vuelo para que el usuario le salga para descargar al hacer click en un botón por ejemplo.
Si te sirve con crear y destruir el archivo tras ser descargado… Puedes simplemente darle un tiempo de vida al archivo, de digamos (depende del tamaño del archivo sobretodo) 5 minutos o algo así. Dejas algún script que vaya borrando los archivos generados cada 5 minutos y ya está.
#5 by Ariel Ferrandini on 07:48 - 07:48
Quote
Hola, hoy en día el mejor generador de Excel desde mi punto de vista es la librería PHPExcel creada por Microsoft y con la que se pueden hacer maravillas incluso trabajar con fórmulas y calcularlas desde PHP.
Por otra parte, una de las cosas que más me gusta de usar PHPExcel es la posibilidad de tener plantillas creadas en Excel y utilizarlas para rellenarlas con datos y guardarlas en otro archivo sin necesidad de tener que implementar estilos desde PHP :D