La Web del Programador: Comunidad de Programadores
 
    Pregunta:  26614 - LLENAR UNA PLANILLA EXCEL CON PHP
Autor:  Fredy Hurtado
Hola, he buescado por todas parte pero todavia no puedo encontrar nada.
¿Como puedo llenar una planilla excel desde una aplicacion en php?

Gracias.

  Respuesta:  rodrigo villegas
La configuración para la cual programo es el servidor en Linux y los clientes en Win98.
Lo que yo hago es crear una página Web que contiene tantos 'submit' como diferentes hojas Excel quiero crear. Al pulsar cada botón, se ejecuta un código php que genera un fichero en Visual Basic, en un directorio temporal, y después presenta otra pagina Web con un 'link' que apunta al fichero VB.

El PHP empieza de la siguiente manera:
// Inicio del código PHP

unlink(".../script.vbs"); // La barra / es por ser el servidor en Linux.
$f = open(".../script.vbs", "w");
$s = "dim xl\r\n";
$s .= "set xl = CreateObject(\"Excel.Application\")\r\n";
$s .= "xl.Visible = true\r\n"; // Esto hace que se abra Éxcel y se vea
todo.
$s .= "xl.WorkBooks.Add\r\n"; // Crea libro nuevo en hoja (no necesario)
.................
A partir de aquí haces las consultas a las bases de datos, cargas las variables, haces las operaciones, etc...
.................
Cuando quieras introducir el valor de una variable PHP ($valor) en la hoja
(en la celda 1,1 y en negrita):
$s .= "xl.Cells(1,1).Select\r\n";
$s .= "xl.Selection.Font.FontStyle = \"Negrita\"\r\n";
$s .= "xl.Cells(1,1).Value = \"" . $valor . "\"\r\n";
.................
Cuando quieras introducir una etiqueta en una celda ("Totales"):
$s .= "xl.Cells(1,1).Select\r\n";
$s .= "xl.Selection.Font.FontStyle = \"Negrita\"\r\n";
$s .= "xl.Cells(1,1).Value = \"Totales\"\r\n";
.................
Cuando termines de rellenar la hoja:

fwrite($f, $s);
fclose($f);

// Fin del código PHP
?>