Crear una hoja de cálculo con PHP
Antes de nada: en este artículo no se explica cómo crear un archivo en formato Excel u OpenOffice.org Calc, sino de cómo hacer que estos programas «crean» que es así.
Crear una hoja de cálculo comprensible para Excel u OpenOffice.org Calc es más fácil de lo que parece. De hecho, el procedimiento que describo en este artículo realmente no crea una hoja de cálculo, sino un documento HTML con una tabla. El truco está en enviar una cabecera indicando un «mime-type» falso que será interpretado por el sistema operativo del cliente como una hoja de cálculo, tal que así:
header("Content-Type: application/vnd.ms-excel"); |
A continuación desgranaré un script de ejemplo que podréis probar aquí y descargar aquí:
En primer lugar generamos un nombre para el archivo de prueba con la fecha de hoy (del servidor, claro):
$filename = "testdata_" . date('Ymd') . ".xls"; |
Le indicamos al navegador que lo que enviamos es un archivo de tipo «application/vnd.ms-excel» y que va de forma adjunta:
header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: application/vnd.ms-excel"); |
En el caso de que querramos forzar la apertura de OpenOffice.org Calc, sustituiremos la extensión del archivo por «ods» y ésta última línea por:
header("Content-Type: application/vnd.oasis.opendocument.spreadsheet"); |
Y, al final, escribimos una tabla HTML normal y corriente con las etiquetas «<table></table>». Si todo va bien el navegador comenzará a descargar el archivo generado y nos preguntará si lo queremos guardar o abrir con el programa predeterminado. A partir de ahí ya es cosa vuestra...