Te pongo otro para excel en Spanish y por lo que veo más corto que lo que ya hay. Eso si, con esto lo que hace es crearte un fichero excel en el servidor. Eso no siempre puede ser recomendable. Yo lo he hecho asi, por que es lo que necesito en mi aplicación, yo quiero que los excel generados se conserven y se los puedan descargar los usuarios para un uso posterior
Código PHP:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/Gestom.asp" -->
<%
'Creas el recordset. Si no trabajas con DSN, hay que crear primero la conexión
Dim Empresas__MMColParam
Empresas__MMColParam = "1"
if (Request.QueryString("NOla") <> "") then Empresas__MMColParam = Request.QueryString("NOla")
%>
<%
Dim Empresas__MMColParamB
Empresas__MMColParamB = "1"
if (Request.Querystring("anyo") <> "") then Empresas__MMColParamB = Request.Querystring("anyo")
%>
<%
set Empresas = Server.CreateObject("ADODB.Recordset")
Empresas.ActiveConnection = MM_Gestom_STRING
Empresas.Source = "SELECT Cluster, Cuenta FROM lis_empresas_recibidas WHERE NOla = '" + Replace(Empresas__MMColParam, "'", "''") + "' AND año = " + Replace(Empresas__MMColParamB, "'", "''") + ""
Empresas.CursorType = 0
Empresas.CursorLocation = 2
Empresas.LockType = 3
Empresas.Open()
Empresas_numRows = 0
' Se crean las variables a utilizar (PathXXX corresponde a la ruta
' del archivo de tipo XXX que utilizaremos).
PathXLS = Server.MapPath("./exportacion/Listado_empresas_recibidas_nola_"&Request.querystring("nola")&"_anyo_"&Request.querystring("anyo")&".xls")
FinLinea = ""
' Creo los objetos que utilizaremos, serán de los tipos FSO, TextStream y Connection
If not empresas.eof then
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set Arch_Excel = fso.CreateTextFile(PathXLS, True)
'Set oConn = Server.CreateObject("ADODB.Connection")
' Recorro todo el recordset recuperando sus valores y escribiéndolos en el archivo Excel
If not empresas.bof or not empresas.eof then empresas.MoveFirst
'Aqui le metes la primera linea, con los encabezados de los campos para que despues sepas que hay en cada columna.
'Es muy importante que el orden de los campos de la select coincida con el orden de lo que pones aqui en el encabezado,
'ya que sino, no te coincidirán los datos con el encabezado.
'El chr(9) es para pasar a la siguiente columna
encabezado = "Cluster" & chr(9) &"Cuenta"
Arch_Excel.writeline encabezado
Do while Not empresas.EOF
FinLinea = ""
For each x in empresas.fields
FinLinea = FinLinea & x.value & chr(9)
Next
Arch_Excel.writeline FinLinea
empresas.MoveNext
Loop
' Cierro y destruyo todos los objetos utilizados para liberar memoria del servidor
Arch_Excel.Close
Set Arch_Excel = Nothing
Set fso = Nothing
end if
%>
'Despues creas la página con un enlace para poder abrir y descargar
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#0099CC" text="#000000">
<%enlace = "./exportacion/Listado_empresas_recibidas_nola_"&Request.querystring("nola")&"_anyo_"&Request.querystring("anyo")&".xls"%>
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF"><b>El
listado se ha generado correctamente en una hoja Excel.</b></font></p>
<p><font color="#FFFFFF"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><a href="<%=enlace%>">Descargar
archivo Excel Generado</a></font></b></font></p>
<p><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b><font color="#FFFFFF">(NOTA:
Para descargar el archivo debe pulsar el enlace con el boton derecho y seleccionar
"Guardar Como")</font></b></font></p>
</body>
</html>
<%
Empresas.Close()
%>