Después de muchas neuronas que se fueron y litros y litros de cafe supe que un excel generado por asp no se puede leer, porque, fácil para leer un asp debes definir el rango o la hoja pero que pasa si es dinamico, todo mal...
bueno como puedes manejar la forma en que generas la planilla excel puedes hacer lo siguiente:
PRIMERA PARTE GENERAL EXCEL
Bueno lo primero que tenemos que hacer es el encabezado que todos ya sabemos
Código PHP:
<%
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "filename=guarde_con_numero_de_rut.xls;"
%>
luego generas la planilla.
la planilla esta compuesta por una tabla que la convierte en excel, pero aqui es donde esta la clave:
Código PHP:
<table name=inicio>
<tr align="center" valign="middle" bgcolor="#FFFFFF" name="encabezado">
<td align="center" bgcolor="#FFFFCC" name="num">N°</td>
<td align="center" bgcolor="#FFFFCC" name="id">nombre</td>
<td align="center" bgcolor="#FFFFCC" name="apellidos">apellidos</td>
<td align="center" bgcolor="#FFFFCC" name="nota">Nota</td>
</tr>
Si te fijas la etiqueta tr y td tiene un atributo que se llama
name= que es uno de los atributo que una vez generado el archivo, el programa excel no lo elimina o altera.
luego viene tu consulta sql donde llenas la tabla con las filas:
Código PHP:
<%
sql2 = "select idtrab, nombre, apellidos, nota"
...
do while not rst.eof
%>
<tr align="center" valign="middle" bgcolor="#FFFFFF" name="<%=rst("idtrab")%>">
<td align="center" name="numero"><%=k%></td>
<td align="center" name="nombre"><%=rst("nombre")%></td>
<td align="left" name="apellidos"><%=rst("apellidos")%></td>
<td align="left" name="nota"><%=rst("nota")%></td>
</tr>
<%
rst.movenext
loop
%>
</table name=fin>