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:

Trulala de cordoba 08/06/2005 08:36

Hola amigos:

Yo he pegado el código que dan, pero cuando ejecuto el ejemplo no me exporta a excel ¿Tengo que tener algún componente especial de ASP?
Gracias

Pachangero 08/06/2005 08:40

Saludos

Trulala de cordoba el codigo que copiastes fue el que sugeri supongo pero recuerda que se debe de guardar como archivo ASP, por ejemplo:

Consulta.asp

Trulala de cordoba 08/06/2005 13:09

Gracias amigo Pachangero.
Vos sabes que el archivo si lo guardo como consulta.asp
Con el código que vos pusiste si me crea el excel. El problema está con otros archivos .asp que tengo por ejemplo clientes_listado.aso que muestran un listado de clientes y le pego al principio el código:

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

Pero al ejecutarlo a clientes_listado.asp no me de para guardar el excel y no recibo ningún error.
¿Tenes idea que puede ser?
Mil gracias

Pachangero 09/06/2005 09:42

Saludos

Trulala te refieres a que cuando pones el código a un archivo generado te lo guarda pero el archivo esta en blanco, cuando haces una consulta especifica? :pensando:

Si es asi debes de guardar el dato o datos con los que estas buscando en un input para que cuando quieres exportarlo utilice esos datos en la busqueda y asi te guarde la información.

De lo contrario estara en blanco. :si:

El archivo de clientes_listado.asp en si es generado por una consulta general, o sea todos los datos o son datos especificos lo que la generan?

un_tio 09/06/2005 10:49

¿Cómo puedo, después de haber creado una hoja excel con los datos de la base de datos, luego leer desde el servidor la hoja Excel y comprobar si tiene cambios respecto a los datos originales?

Pachangero 09/06/2005 11:00

Saludos

Tio el archivo generado se guarda en la maquina del cliente, en el servidor unicamente contiene la información que esta en la base de datos.

Para poder modificar la información utilizas los métodos de ASP para actualizarla en la base de datos. :-)

Ahora si lo que quieres es generar un archivo en el Servidor en este caso no le encuentro apropiado porque estarias llenando el servidor de archivos que no necesita, ahora si son temporales puede funcionar.

Mas no veo el caso de generarlos en el servidor porque la información esta mejor ubicada en la base de datos y si quiere el usuario utilizar esa información para cualquier asunto lo mejor seria que se guardara en su maquina y el uso depende de cada uno.

Pachangero 09/06/2005 11:05

Saludos

Se me paso leer tu comentario anterior a este, debe de existir un método para generarlo y poder utilizarlo.

Mas te repito no le veo el caso, porque estarias ocupando espacio en el servidor.

Es mi punto de vista.

un_tio 09/06/2005 11:34

Pachanguero, sí que tiene utilidad el que el servidor pueda leer la hoja excel. Yo no quiero guardar en el servidor cada hoja excel que se haga, ¡claro que no! Yo lo que quiero es, usando el método ya dicho que envía una hoja excel al cliente, que después el cliente, días después si quiere, pueda consultar y modificar valores de esa hoja excel y devolvérsela al servidor, actualizando éste los valores (de la base de datos, no de la hoja excel la cual actuaría simplemente como interfaz).

Pachangero 09/06/2005 11:37

Saludos

Tio el siguiente link te muestra los siguientes puntos

* Consultar documentos Excel
* Crear documentos Excel en el Servidor con OWC
* Crear documentos Excel en el Servidor desde consultas a bases de datos Access
* Crear documentos Excel en el Cliente

Espero que alguno te sirva

http://www.aspfacil.com/articulos/190301.asp

Mas mi pregunta sigue siendo

Alguien sabe de algun método para generar archivos de excel con imagenes incluidas? :pensando:

un_tio 09/06/2005 11:38

Ya lo conocía, y esa es una información muy básica, necesaria para poder empezar pero que no me ayuda con mi problema. ¡Lo que quiero es saber qué celdas de la hoja de excel puede haber editado el cliente!

un_tio 14/06/2005 20:15

¿Cómo hacer que algunos datos salgan en otras hojas de excel, dentro del mismo archivo?

un_tio 23/06/2005 09:09

Cita:

Iniciado por Pachangero
]

Mas mi pregunta sigue siendo

Alguien sabe de algun método para generar archivos de excel con imagenes incluidas? :pensando:

Conozco el método.

Uno, sería desde el propio lenguaje html, y el otro... prescindir del lenguaje html y escribir "a pelo" lo que querremos que salga en la tabla. Esto hace poco que he descubierto que funciona, y podrás poner alguna función que llame a una imagen directamente sobre la celda.

Por otro lado... ¿alguien ha probado a abrir después, desde ASP, los archivos de excel generados con el método que habíamos dicho hasta ahora? Porque a mí al menos, no me funcionan. Pienso que es porque se incrusta un código html en el excel, sin formar un verdadero archivo excel (por lo que después es ilegible desde ASP al tratar de abrirlo como un .xls, aunque no es ilegible desde el propio programa Excel).

Pachangero 23/06/2005 15:31

Exportar sin guardar los datos
 
Saludos

TIO

A tu primera respuesta la probare y comentare el resultado.

A la pregunta. Pues hasta ahorita no lo he probado, mas que nada porque no he tenido que hacerlo hasta ahora mas lo vere y comentare.

Ahora tengo una duda

Hasta ahora yo he podido exportarlo pero los datos estan guardados en la Base de Datos.

Alguien ha podido exportar pero que los datos no esten guardados en la base de datos?

Lo que intento es lo siguiente:

Tengo un formulario donde tengo ubicados dos Input.

Uno me sirve para guardar los datos a la Base de datos y el otro lo tengo para exportar el archivo.

El detalle es que he intentado ponerlos en el mismo pero ejecuta el guardado.

Si los pongo separados o sea dos FORM en la misma pagina funciona pero eso no se ve muy estetico

He investigado ciertas opciones con Javascript pero todavia ando probando haber como adaptarlo.

Si alguien ha tenido un caso parecido, se agradecen los comentarios o sugerencias

De antemano GRACIAS por la ayuda

un_tio 28/06/2005 03:34

Cita:

Iniciado por Pachangero
A tu primera respuesta la probare y comentare el resultado.

¿Lo has probado? ¿Has mirado si puedes leer hojas excel que hayas creado tú mediante los métodos descritos (el addheader y poner código html)?

un_tio 29/06/2005 03:50

Otra duda, que ya preguntó creo que pachanguero: ¿Cómo se puede en la hoja de excel que cree desde ASP, insertar imágenes u objetos?

Pachangero 01/07/2005 11:22

Saludos

Tio acabo de probar, exporta la información sin codigo HTML hasta donde lo probe, mas la foto sigue sin exportarla.

Ese tema de exportar con imagenes lo he visto mucho pero las soluciones han sido excasas

Cita:

Originalmente Escrito por un_tio
¿Lo has probado? ¿Has mirado si puedes leer hojas excel que hayas creado tú mediante los métodos descritos (el addheader y poner código html)?
Como respuesta a tu pregunta no he podido realizar la lectura, he estado muy ocupado en el trabajo.

Aunque claro cuando encuentre alguna manera u opción para expotar con imagenes aqui la colocare, así como espero que si alguien sabe como hacerlo, ponga la solución a este problema que tenemos varios.

moron 01/07/2005 11:53

Hola gente.
puse todo el código para que genere el excel, pero me dice:
"Imposible obtener acceso al archivo "http://...." Puede haber varios motivos:
-El nombre del archivo o la ruta no existen.
-Otro programa está usando el archivo....bla,bla
-El nombre del libro es el mismo que el de otro documento que es de solo lectura.

y después aparece ese mensaje de error del xp diciendo que excel detecto un problema y debe cerrarse

Obviamente no existe, si lo quiero crear.
Como no existe, no es posible que lo esten usando.
El nombre del archivo no es el mismo que ninguno.



Alguien sabe a que se debe?

Pachangero 04/07/2005 10:30

Saludos

Moron imagino que usastes el ejemplo que puse

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>

Reuerda que debes de guardarlo con la extensión ASP

Ejemplo Consulta.asp

Ahora para poder accesar a el archivo debes de poner en tu ventana del explorador, ejemplo

http://localhost/Consulta.asp

El nombre de tu servidor local y despues el nombre del archivo a usar; si lo tienes en una carpeta debes de ponerla, ejemplo:

http://localhost/Consultas/Consulta.asp

Una vez que lo hicistes debe de mostrarte la ventana de Abrir, Guardar o Cancelar.

Espero que te sirve de lo contrario dinos y veremos que solución darte.

trasgukabi 07/07/2005 01:20

Un_tio, no nos olvidemos que estamos trabajando con un lenguaje de script, ni siquiera compilado. Hay ciertas cosas que se escapan de las posibilidades de ASP. La solución que ha dado Pachanguero me parece el primer paso para poder modificar más detalladamente una hoja excel, ya que tienes la posibilidad de traer los datos de la hoja como un recordset.

un_tio 07/07/2005 05:22

Cita:

Iniciado por trasgukabi
Un_tio, no nos olvidemos que estamos trabajando con un lenguaje de script, ni siquiera compilado. Hay ciertas cosas que se escapan de las posibilidades de ASP. La solución que ha dado Pachanguero me parece el primer paso para poder modificar más detalladamente una hoja excel, ya que tienes la posibilidad de traer los datos de la hoja como un recordset.

Ya sé que es de tipo script. Pero no estoy de acuerdo en que lo limites tanto, ya que éste tiene el mismo lenguaje que basic y muchísimas potencialidades. No porque sea script sabes (o sabemos) sus límites a priori, por lo que no hay que autoponerse límites "porque sí", y en este caso no tiene nada que ver con eso (aunque efectivamente pueda haber casos en los que sí haya límites por ser script).

Cita:

Iniciado por trasgukabi
La solución que ha dado Pachanguero me parece el primer paso para poder modificar más detalladamente una hoja excel, ya que tienes la posibilidad de traer los datos de la hoja como un recordset.

No me has entendido... ¡lo que digo es que el método de Pachanguero no me ha funcionado, no puede ser ni primer paso si algo falla antes de empezar! (si la hoja excel era creada desde ASP, como dije). Por tanto te pregunto: ¿Has intentado hacer esto que digo alguna vez?


La zona horaria es GMT -6. Ahora son las 23:52.

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