Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASP Clásico (http://www.forosdelweb.com/f15/)
-   -   Exportar de ASP a EXCEL (http://www.forosdelweb.com/f15/exportar-asp-excel-301173/)

Pachangero 24/05/2005 08:17

Exportar de ASP a EXCEL
 
Saludos

Mi duda que tengo es la siguiente:

Quisiera exportar una consulta de ASP a Excel, nada mas que primero se realiza la consulta y si el usuario quiere tenerla en un archivo de Excel, pueda realizarlo.

Me ha funcionado cuando la instrucción SQL esta definida pero si es por algun campo, me marca un error.

En otras palabras, primero se tiene que ver la consulta especifica (por ejemplo por nombre de equipo), una vez que vio la consulta y ahora quiere tenerla en un archivo de Excel, ahi es donde tengo mi problema.

Espero su ayuda y gracias de antemano.

Muzztein 24/05/2005 08:35

hijoles.... pero que redaccion del demonio tienes.

no entendí.

Pachangero 24/05/2005 08:54

Saludos

Disculpa, haber si me explico mejor.

Lo que quiero es que cuando se realice una consulta especifica, primero el usuario ve la informacion y cuando desee que se exporte a excel, pueda realizarlo.

Estoy buscando alguna solución pero todas las que he encontrado la tienen de la siguiente manera

por ejemplo:

sSQL="Select * From Tabla"

Y lo que yo quiero es:

sql = "SELECT * FROM Tabla WHERE Equipo = '"& Clave2 &"'"

Gracias

Pachangero 24/05/2005 08:59

Lo que yo estoy haciendo es lo siguiente:

Primero muestro la consulta al usuario

sSQL="Select * From Tabla where Equipo= '"& clave2 &"' Order By Equipo"

Después almaceno los valores que necesito en unos campos

<form action="ConEspExp.asp" method="post">
<table>
<tr>
<td> <input type="text" name="Equipo2" value="<%= Trim(Request.Form("Equipo"))%>"> </td>
<td> <input type="text" name="orden2" value="<%= Trim(Request.Form("orden"))%>"> </td>
<td> <input type="button" name=Caract value="Exportar Archivo" onClick="javascript:Consulta()"> </td>
</tr>
</table>
</form>

Y cuando se presiona el boton para exportar aparece vacio.

Gracias

MikiBroki 24/05/2005 09:18

Y por qué no pruebas lo siguiente?:

Cuando pones estas dos líneas, lo siguiente a ellas sale a un documento en Word, a mi me funciona perfectamente:

response.ContentType = "application/msword"
Response.AddHeader "Content-Disposition", "attachment;filename=Informe.doc"

No lo he probado con Excel, prueba a ver cambiando el Contentype a "application/msword" y el nombre del fichero a "Informe.xls", por ejemplo.

Así, directamente se abre el Excel mostrando la hoja, y el usuario si quiere la guarda o imprime.

Un saludo.

Pachangero 24/05/2005 10:05

Saludos

De hecho utilizo estas lineas

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta.xls"

Funcionan bien pero cuando quiero guardar el archivo este esta vacio.

Ahorita estoy viendo la manera de usar variables, haber que resultado da.

Pachangero 24/05/2005 11:37

Saludos

Ya pude resolver el problema, la solución consistia en ver bien el proceso de los datos que necesitaba.

Y de ahi utilizarlas, gracias por ayuda brindada.

MikiBroki 24/05/2005 12:23

Me alegro de que te funcionara, ¿podrías poner la parte del código en que llenas la hoja de Excel, si es posible?

Nos vemos.

un_tio 24/05/2005 18:17

Cita:

Iniciado por MikiBroki
Y por qué no pruebas lo siguiente?:

Cuando pones estas dos líneas, lo siguiente a ellas sale a un documento en Word, a mi me funciona perfectamente:

response.ContentType = "application/msword"
Response.AddHeader "Content-Disposition", "attachment;filename=Informe.doc"

No lo he probado con Excel, prueba a ver cambiando el Contentype a "application/msword" y el nombre del fichero a "Informe.xls", por ejemplo.

Así, directamente se abre el Excel mostrando la hoja, y el usuario si quiere la guarda o imprime.

Un saludo.

Suena muy interesante. ¿Cómo que lo siguiente va a un documento Word? ¿Cómo se haría exactamente que el resultado de una consulta fuera a un documento Word?

El caso es que a mí me interesaría a un documento Excel, y esa manera es mucho más cómoda que otra que había pensado (de ir construyendo una a una las celdas).

La verdad es que si puede, pachanguero podría aclararnos por qué no podía y qué hay que hacer para que la consulta se guarde.

MikiBroki 24/05/2005 20:47

Hola Un_Tio

después de poner esas dos líneas de nada, no hay que hacer nada más que construir el código de forma normal: por ejemplo, una vez que llenas un Recordset insertas y IMG y creas una tabla, vas creando las filas y columnas normalmente para cada registro a mostrar... y se te abre el Word con un documento en el que ves los datos mostrados en el formato que has dado.

Salu2

un_tio 24/05/2005 21:19

Hmmm, es que no sé a qué llamas "forma normal", ni qué quieres decir con "insertar". ¿Creo las filas y columnas como si fuera a mostrarlas por pantalla, con una etiqueta <table> y demás? ¿a eso te refieres?

Saludos

MikiBroki 25/05/2005 00:20

Exáctamente, yo también me sorprendí de la sencillez cuando me enseñaron cómo era.

Pachangero 26/05/2005 07:49

Saludos

Exacto como menciona MikiBroki, tienes que realizar una tabla en las condiciones que consideres adecuadas, una vez que lo hicistes pones el codigo.

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta.xls"

Ubicado despues de la etiqueta <HEAD> aunque lo probe y tambien me funciono antes de la etiqueta </body>, pero prefiero la primera opción.

Y el proceso es automatico.

De las dos lineas la primera
Response.ContentType = "application/vnd.ms-excel"
Te convierte a Excel.

La segunda
Response.AddHeader "content-disposition", "inline; filename=Consulta.xls"
Permite ponerle un nombre por default a tu archivo que generas.

Espero haber aclarado tu duda un_tio.

Pachangero 26/05/2005 07:51

Saludos

Con respeto a mi problema era cambiarle un nombre a un elemento que usaba :borracho:, una vez que lo hice funciono como lo deseaba.

MikiBroki 26/05/2005 07:52

Y para guardar las cosas en Excel, no hay que hacer nada especial para las celdas?

Pachangero 26/05/2005 07:58

Saludos

Tu utilizas los elementos necesarios para realizar la tabla, me refiero a

<Table>
<tr>
<td> Registro </td>
</tr>
<tr>
<td> 51 </td>
</tr>
</table>

Dandole la forma que se necesite, una vez que ya la tienes realizada, agregas el codigo anterior, en la posición indicada

<head>
<% Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta Especifica.xls" %>
<title> Consulta </title> </head>

Y listo, cualquier duda aqui estamos.

un_tio 30/05/2005 21:45

¡Gracias! ¿Y un procedimiento inverso sencillo para recuperar el archivo excel y mostrarlo por pantalla? (yo ya sé uno, pero no sé si estará en la misma línea que éste).

obravo 31/05/2005 08:41

... y existe alguna manera de darle un nombre fijo al documento creado (sea de excel o de word)? ....
Por ejemplo: Tengo un desarrollo, en la que genero el nombre de un fichero a traves de ciertos parametros (usuario, estacion de trabajo, dia, mes, año, tipo, ...). Quisiera asignar automaticamente ese nombre generado, y asi evitar que el operador le de un nombre equivocado.

MikiBroki 31/05/2005 08:53

Buenas,

Si a partir de este código la salida es a fichero:


Código:

response.ContentType = "application/msword"
Response.AddHeader "Content-Disposition", "attachment;filename=Informe.doc"

Supongo que serviría algo como:

Código:

<%
Dim nombre
nombre = "pepe"
%>

Response.AddHeader "Content-Disposition", "attachment;filename=" <%= nombre & ".doc" %> ">

Saludos.

wichmar 31/05/2005 10:29

Me proporcionarian el codigo
 
Hola, sabes soy nuevo en esto y me parece ineteresante me ayudaria bastante que me proporcionaran el codigo para pasar una consulta de asp a exel ya que relizo consultas y de unos datos que ingresan ala web y tengo que pasarlo a exel y no sabes cuanto me cuesta.
espero que me ayuden...

Pachangero 31/05/2005 10:57

Saludos

Wichmar bienvenido

Este es un ejemplo sencillo pero lleva lo esencial para exportarlo

Código:

<html>
<head>
<% Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=Consulta Especifica.xls" %>
<title> Consulta </title> </head>

<body>
<Table>
<tr>
<td> Registro </td>
</tr>
<tr>
<td> 51 </td>
</tr>
</table>

</body>
</html>

Lo demas depende de como quieras que sea la tabla a mostrar, me refiero a los datos que lleve asi como el formato que quieras que tenga.

Cualquier duda aqui estamos.

Pachangero 31/05/2005 11:12

Saludos

Por cierto el ejemplo se debe de guardar como archivo ASP, por ejemplo:
Consulta.asp

Pachangero 31/05/2005 11:13

Saludos

Cita:

obravo

... y existe alguna manera de darle un nombre fijo al documento creado (sea de excel o de word)? ....
Por ejemplo: Tengo un desarrollo, en la que genero el nombre de un fichero a traves de ciertos parametros (usuario, estacion de trabajo, dia, mes, año, tipo, ...). Quisiera asignar automaticamente ese nombre generado, y asi evitar que el operador le de un nombre equivocado.
Hasta donde yo sé, se puede asignar un nombre al archivo generado pero el nombre final lo pone el usuario que desee exportarlo.

Porque como aparece la ventana de Guardar como... cuando el usuario quiere guardar el archivo generado.

wichmar 31/05/2005 12:11

Esta bien..gracias
 
como podria, llevarlos cuando se trata de una consulta la cual se realiza con un select.

Pachangero 31/05/2005 12:52

Saludos

Pues primero debes de hacer la conexion a la base de datos, despues indicar la sentencia SQL, ejecutarla.

Posteriormente debes de mostrar el contenido de la base de datos en forma de tabla, de acuerdo a las condiciones que tu quieras.

Despues limpias.

Revisa como hacer una consulta en ASP.

Nos vemos despues.

nana_01 01/06/2005 08:26

tengo una consulta, para la creacion del excel, yo puedo utilizar un excel ke tiene un formato, lo ke kiero decir pasar la informacion deseada de la consulta del asp a un archivo excel ya existente.................

lo ke pasa ke el archivo excel tiene imagenes y ya tiene listo un formato de impresion...

se podria utilizar las mismas lineas de codigo?, o es necesario hacer alguna modificacion?....................

saludos..............

Pachangero 01/06/2005 08:45

Saludos

Nana

Hice la prueba que mencionas sobre la imagen, cuando quiero exportar el archivo de ASP a EXCEL con una imagen, esta no aparece.

En este momento no sabria como solucionarlo, si alguien tiene un idea, BIENVENIDA. :-)

Creo que este tema lo he visto en el foro o en otro lugar, buscare y si encuentro algo aqui lo pondre :pensando: , claro después de probarlo.

Recuerden que todos aprendemos de todos, poco o mucho pero aprendemos. :si:

nana_01 01/06/2005 08:59

Cita:

Iniciado por Pachangero
Saludos

Nana

Hice la prueba que mencionas sobre la imagen, cuando quiero exportar el archivo de ASP a EXCEL con una imagen, esta no aparece.

En este momento no sabria como solucionarlo, si alguien tiene un idea, BIENVENIDA. :-)

Creo que este tema lo he visto en el foro o en otro lugar, buscare y si encuentro algo aqui lo pondre :pensando: , claro después de probarlo.

Recuerden que todos aprendemos de todos, poco o mucho pero aprendemos. :si:


muchas gracias por responder tan luego............... me salvarias la vida........

por el momento tengo un problema enorme con crystal 10 y asp, y estoy tratando de solucionarlo.......... :stress:

saludos :-D

un_tio 02/06/2005 17:59

Una duda:

-Dicho método envía el .xls al cliente. ¿Hay algún modo tan sencillo como ese que lo que haga sea, además de eso, guardar el archivo en el servidor?

Y una respuesta a una duda que muchos pueden haberse planteado: las celdas del excel aparecen sin líneas. ¿Cómo "devolvérselas"? Muy fácil, ;-) poniendo en la etiqueta table border=1 (o el que se quiera) :-D . Así al menos se pondrán líneas para las celdas con campos, aunque el resto seguirán sin líneas (incluso mejor así).

Pachangero 08/06/2005 08:20

Saludos

Estuve viendo alguna opción para exportar de asp a excel la imagen, hasta ahora no he encontrado la solución :pensando: , si alguien sabe como hacerlo o tiene alguna idea.

Se agradece la ayuda. :si:


La zona horaria es GMT -6. Ahora son las 20:48.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.