exportar datos desde ASP a EXCEL

guido
07 de Octubre del 2008
por favor, si alguien sabe como exportar datos desde una página asp a excel, responda este llamado de ayuda.
Gracias.

PuroASP
07 de Octubre del 2008
Visita este link, a mi me sirvio bastante, espero te sirva

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

Kapdorf
07 de Octubre del 2008
Ya lo he mirado, pero no poner nada acerca de incluir imágenes si no están en la BD, y con href no me vale ya que quiero que el usuario descarge a su PC la hoja Excel y le aparezcan las imágenes, ese es el problema :(

Etamay
07 de Octubre del 2008
sólo quiero un boton (input) o un link que me diga exportar a excel (despues de haber hecho mi consulta dentro db) y que me aparezca el cuadro para elegir donde guardarlo y ponerle nombre..probé el codigo application/vnd.ms-excel"...pero me aparece defrente para exportar sin que me deje ver el resultado de mi consulta

zentauro
07 de Octubre del 2008
Una consulta, estoy realizando la generación de una planilla Excel a través de ASP, al momento d egenerar la planilla, muestra campos que tienen una fecha, de la siguiente forma: 03-04-2006, sindo que el valor que posee el texto es: 04/06/2006. Con esto les digo que reconoce los primeros 2 caracteres como mes, en vez de día. Esto sucede cuando el día en menor a 12.

La definición de la planilla es:

FileName=Path & "test.csv"
Response.Expires = 0
Response.clear
Response.ContentType= "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment;filename=CargaBonos.csv;"
Response.Charset = "UTF-8"
Response.ContentEncoding = System.Text.Encoding.Default

La forma de impriumit cada celda es:

Response.Write "<table><tr><td></td><td align=letf><b><i>" & "DIVISIÓN SOLICITANTE:" & "</i></b></td><td align=letf><b><i> " & " Gerencia Soporte & Implantación" & "</i></b></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td align=letf><b><i>" & "Fecha Reporte: " & "" & objFecha & "</i></b></td></tr></table>"
Response.Write "<table><tr><td></td><td align=letf><b><i>" & "NOMBRE RESPONSABLE: " & "</i></b></td><td align=letf><b><i> " & vrsResponsable(2) & "</i></b></td></tr></table>"
Response.Write "<table><tr><td></td><td align=letf><b><i>" & "DESDE: " & "</i></b></td><td align=letf><b><i> " & "" & objFecDesde & "</i></b></td></tr></table>"
Response.Write "<table><tr><td></td><td align=letf><b><i>" & "HASTA: " & "</i></b></td><td align=letf><b><i> " & "" & objFecHasta & "</i></b></td></tr></table>"

Esperando una ayuda, gracias.

Dxanatos
07 de Octubre del 2008
Alguien sabe como insertar imagenes en un fichero excel creado desde ASP?
Puedo hacer de todo (con el objeto OWC10.Spreadsheet), excepto insertar imagenes en el excel para darle un formato personalizado. Alguna ayuda?
Si es necesario instalar algún objeto en el servidor, no habría problema (incluso de pago), siempre que fuese posible insertar imágenes ...
Muchas gracias anticipadas!

pacomer
07 de Octubre del 2008
es muy facil lo unico que tienes que hacer es poner esto al principio de tu pagina
Response.ContentType = "application/vnd.ms-excel"

FernandoC
07 de Octubre del 2008
Hay varias maneras mas, y sobre todo mas potentes de pasar datos de ASP a excel. Hay que permitir los controles activex en la configuración de IE.

1.- Incluir un objeto excel en el codigo VBScript. Una vez que esta incluido lo puedes manejar con el código de VBasic para excel ( el que te genera la grabadora de excel), aunque hay que pelearselo.
De esta manera puedes abrir,leer,cerrar,modificar, incluir imagenes, añadir hojas, etc..
Lo mas dificultoso es pasa los datos del servidor al cliente.
<script Language="VBScript">
set ApliExcel=CreateObject("Excel.Application")
set LibroExcel=ApliExcel.Workbooks.add
o
set LibroExcel=ApliExcel.Workbooks.open(c:.../.../...)
0
set LibroExcel=ApliExcel.Workbooks.open(http://../.../...)
LibroExcel.sheets.add.select
set h1=Libroexcel.sheets(1)
with h1
.name="primera"
.range("a1")=<%=Valor1%>
.rows(1).interior.colorindex .....
end with

.
.
-
</script>

Con este procedimiento puedes pasar datos de servidor a cliente en excel, manejando casi el 100% de las posibilidades de EXCEL.

2.- Puedes abrir la página asp directamente desde excel. Para ello la mejor manera es que la página asp presente unicamente los datos separados por tabuladores y las líneas separadas por avances de línea
response.write( dato1 & chr(9) & dato2 & .... & chr(10))

Suerte

NELLY
07 de Octubre del 2008
PEGA ESTE CODIGO AL INICIO DE LA PAGINA ASP

Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader \"pragma\",\"no-cache\"
Response.AddHeader \"cache-control\",\"private\"
Response.CacheControl = \"no-cache\"
strLCID = 7177
session.LCID = strLCID
Response.Buffer=true
\\'Response.ContentType =\"application/vnd.ms-excel\"
Response.ContentType=\"application/vnd.ms-excel\"
nombreArch=\"XY.xls\"
Response.AddHeader \"content-disposition\", \"attachment; filename=\"\"\" & nombreArch & \"\"\"\"


Y LUEGO VIENE LA PARTE DE ASP LA CONSULTA DE LA BASE DE DATOS ...


rdelrio
07 de Octubre del 2008
Necesito exportar el resultado de cada iteración de un ciclo ASP a una hoja distinta de un mismo libro Excel.
Tiene alguien alguna idea de como poder hacer esto?
Gracias

FernandoC
07 de Octubre del 2008
Según mi respuesta anterior:

1.- Incluir un objeto excel en el codigo VBScript. Una vez que esta incluido lo puedes manejar con el código de VBasic para excel ( el que te genera la grabadora de excel), aunque hay que pelearselo.
De esta manera puedes abrir,leer,cerrar,modificar, incluir imagenes, añadir hojas, etc..
Lo mas dificultoso es pasa los datos del servidor al cliente.
en el servidor
<script Language="VBScript">
dim Valores(99,99) ' Donde 99 es la dimensión de la matriz
</script>


<%
while not .eof()
%>
<script Language=VBScript>
i=<%=i%>
j=<%=j%>
Valor=<%=.fields(i).value%>
Valores(i,j)=Valor
</script>

<%
.move 1
wend
%>


<script Language="VBScript">
set ApliExcel=CreateObject("Excel.Application")
set LibroExcel=ApliExcel.Workbooks.add
' Esto te crea un libro en blanco (nuevo)
LibroExcel.sheets.add.select
'Añades una hoja nueva, si fuese preciso, para cada una de las hojas que necesites.

set h1=Libroexcel.sheets(1)

with h1
.name="primera"

.range("a1")=Valores

' aqui solo paso un valor.
.rows(1).interior.colorindex .....

end with

.
.
-
</script>

Con este procedimiento puedes pasar datos de servidor a cliente en excel, manejando casi el 100% de las posibilidades de EXCEL.

Nota: Este no es el mejor método de hacerlo, pero si es el mas sencillo de explicar y de aplicar. Como puedes ver esta explicado a vuela pluma, pero creo que lo que falta esta claro.

Amthorn
07 de Octubre del 2008
Mi problema está en que si uso:
Response.Buffer = TRUE
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "filename=ficha.xls;"

mientras la tabla es pequeña todo perfecto, pero cuando se hace más grande, y hablo de 21 filas por 2 columnas que tampoco es tanto, me da un error, dice que excel no puede abrirlo. ¿Sabeis que puedo hacer?

schmucke
07 de Octubre del 2008
la exportacion hacia excel tiene un limite de datos, por que actualmente tengo un reporte y me extrae 7 mil registro pero cuando los envio a excel me genera un error de que la pagina no existe y cuando el reporte es de 3 mil registro si realiza la exportacion

Chofos
07 de Octubre del 2008
Una pregunta: estoy intentando desplegar una consulta como un archivo de Excel y ya tengo incluidas las líneas

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "filename=excel.xls"

Pero después de que sale el diálogo de ejecutar o guardar el archivo me marca un error "Internet Explorer cannot download consulta.asp from localhost".
Mi archivo se llama consulta.asp, he intentado cambiarle la extensión a .xls pero aunque se abre no me despliega nada del RecordSet...¿alguna sugerencia? Se los agradeceria MUCHO

Juanita iOk
07 de Octubre del 2008
Una pregunta: estoy intentando desplegar una consulta como un archivo de Excel y ya tengo incluidas las líneas

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "filename=excel.xls"

Pero después de que sale el diálogo de ejecutar o guardar el archivo me marca un error "Internet Explorer cannot download consulta.asp from localhost".
Mi archivo se llama consulta.asp, he intentado cambiarle la extensión a .xls pero aunque se abre no me despliega nada del RecordSet...¿alguna sugerencia? Se los agradeceria MUCHO

Tengo el mismo problema... nadie tiene una solucion... o alguna sugerencia...!!! Por favor....

Florentino
07 de Octubre del 2008
Mandame un correo aqui, yo exporto datos a excel desde asp, esta es mi direccion:
[email protected]

Salu2

felix
07 de Octubre del 2008
'Dim crExportOptions As ExportOptions
'Dim crDiskFileDestinationOptions As DiskFileDestinationOptions
'Dim Fname As String

'''Crea el Informe
''crReportDocument = New ReportDocument
'''//********************************************

'''// Carga el Reporte
'' crReportDocument.Load(Ruta)
'crReportDocument.SetParameterValue("hasta", CInt(pcfinal))
'crReportDocument.SetParameterValue("desde", CInt(pcinicial))
'''//********************************************

'''// Asocia el conjunto de datos con el reporte
'crReportDocument.SetDataSource(Dsorigen)
'''//********************************************

'''// Configura la Informacion de Conexion del Reporte preparado para exportar
'crReportDocument.Database.Tables.Item(cNomb_tabla).LogOnInfo.ConnectionInfo.ServerName = Servidor
'crReportDocument.Database.Tables.Item(cNomb_tabla).LogOnInfo.ConnectionInfo.UserID = Login
'crReportDocument.Database.Tables.Item(cNomb_tabla).LogOnInfo.ConnectionInfo.Password = Password
'crReportDocument.Database.Tables.Item(cNomb_tabla).LogOnInfo.ConnectionInfo.DatabaseName = NomBD '"bdemp20"
'''//********************************************

'''// Directorio a donde va a exportar
'Fname = Server.MapPath("exports" & cNomb_Report & ".pdf")
'''//********************************************

'''// Configura la opcion de Exportar: PDF,EXEL etc.
'crDiskFileDestinationOptions = New DiskFileDestinationOptions
'crDiskFileDestinationOptions.DiskFileName = Fname
'crExportOptions = crReportDocument.ExportOptions
'With crExportOptions
' .DestinationOptions = crDiskFileDestinationOptions
' .ExportDestinationType = ExportDestinationType.DiskFile
' .ExportFormatType = ExportFormatType.PortableDocFormat
'End With
'''//********************************************

'''// Exporta el Reporte
'crReportDocument.Export()
'crReportDocument.Close()
'''//********************************************

'''// Redirecciona
''Response.Clear()
'Response.ContentType = "application/pdf"
'Response.Redirect(Fname)

''Response.WriteFile(Server.MapPath("exportsrptCuentas_contables.pdf"))
''Response.WriteFile(Server.MapPath("exportsrptCuentas_contables.pdf"), IO.FileMode.Open, IO.FileAccess.ReadWrite)





'' to the Client's browser.
''Response.ClearContent()
''Response.ClearHeaders()
''Response.ContentType = "application/pdf"
''Response.WriteFile(Fname)
''Response.Flush()
''Response.Close()

'' delete the exported file from disk
''System.IO.File.Delete(Fname)


''Response.Redirect(ExportPath + ExportedFileName)

pulgosita
07 de Octubre del 2008
Hola:
Alguien sabes como hacer para guardar el estilo .css cuando genero de asp a excel, cuando me transforma el archivo en excel, no me trae los estilos, alguien sabes como se hace??

rodolfo prado
07 de Octubre del 2008
Sou brasileiro.
Como que eu posso usar o OWC10 e salvar o arquivo (ficheiro) em formato Excel 97??

juan diego
07 de Octubre del 2008
Set ExcelArchivo = Server.CreateObject("OWC.Spreadsheet")

ExcelArchivo.Cells(1,1).Value = "hola"
ExcelArchivo.Cells(1,2).Value = "hola"
ExcelArchivo.Cells(1,3).Value = "hola"
Path=Server.MapPath("Ejercicio3.xls")
ExcelArchivo.ActiveSheet.Export Path,0

Claudia
07 de Octubre del 2008
Estoy exportando datos de asp a excel.
Uso : <% Response.AddHeader "Content-Disposition", "attachment;filename=cabecera_analisis.xls" %>
y sale ok, Pero si el usuario elige GRGABAR en lugar de ABRIR me queda mi paginita ASP abierta y no se como puedo cerrarla. Le pongo window.close en el codigo y nada.
Desde ya muchas gracias.

Este es parte del codigo:
<% Option Explicit %>
<% Response.AddHeader "Content-Disposition", "attachment;filename=cabecera_analisis.xls" %>

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>

<head>
<title> - Informaci&oacute;n Gerencial - RHPro &reg;</title>
</head>
<body leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0">
<table>
<tr colspan=5>
<th>Cabeceras de An&aacute;lisis</th>
</tr>
<tr>
<th nowrap>C&oacute;digo</th>
<th nowrap>Descripci&oacute;n</th>
<th nowrap>Fecha Desde</th>
<th nowrap>Fecha Hasta</th>
<th nowrap>Real/Presupuestado</th>
</tr>
</table>
</body>
</html>

microtools
07 de Octubre del 2008
Utiliza las "consultas web" que incorpora Excel 97
ó superior, para llamar a una página asp, el resultado de la petición será recogido por excel
en una hoja de trabajo.

rapomon
07 de Octubre del 2008
Recorre la consulta y separa los valores por comas (un registro por línea) y lo grabas con extensión .csv

Si quieres puedes poner en la primera línea los nombres de los campos.

Este tipo de ficheros de texto los abre excel como si fueran ficheros .xls

rider
07 de Octubre del 2008
guido: agrega este script a la cabecera de la página que quieres que aparezca con formato excel:

<%Response.ContentType = "application/vnd.ms-excel"%>

r2am
07 de Octubre del 2008
Hay tres formas (que yo sepa) de hacerlo. La más sencilla es usar un content-type:

<% Response.ContentType = "application/vnd.ms-excel" %>

Luego basta con generar una tabla con los registros de la base de datos. Muy fácil y efectivo. Saludos a tosdos.

ssss
07 de Octubre del 2008
ccc

kleiber
07 de Octubre del 2008
para extraer archivos, en ejecutar... siendo sp2upd.exe el archivo a extraer
C:DownloadsSp2upd.exe /c /t:C:Sp2files

para corregir el error del objeto [Set oExcel = Server.CreateObject ("OWC.Spreadsheet")]
esto se debe a que su version de office no es 2000, entonces debe usted colocar el archivo
msowc.dll en la direccion C:Archivos de programaMicrosoft OfficeOfficemsowc.dll
y alli soluciona el error.

si tienes otras versiones officexp msowc10.dll entonces el objeto [Set oExcel = Server.CreateObject ("OWC10.Spreadsheet")]
office2003 msowc11.dll entonces el objeto [Set oExcel = Server.CreateObject ("OWC11.Spreadsheet")]

<html>
<body>
<%
Set ExcelArchivo = Server.CreateObject("OWC.Spreadsheet")
ExcelArchivo.Cells(1,1).Value = "hola"
ExcelArchivo.Cells(1,2).Value = "hola"
ExcelArchivo.Cells(1,3).Value = "hola"
Path=Server.MapPath("Libro1.xls")
ExcelArchivo.ActiveSheet.Export Path,0
%>
<center><h3>Archivo XLS generado en el Servidor</h3></center>
</html>
</body>