exportar datos desde ASP a EXCEL

guido
07 de Octubre del 2008
por favor, si alguien sabe como exportar datos desde una pgina 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 imgenes si no estn 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 imgenes, ese es el problema :(

Etamay
07 de Octubre del 2008
slo 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 generacin de una planilla Excel a travs 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 da. Esto sucede cuando el da en menor a 12.

La definicin 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>" & "DIVISIN SOLICITANTE:" & "</i></b></td><td align=letf><b><i> " & " Gerencia Soporte & Implantacin" & "</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 algn objeto en el servidor, no habra problema (incluso de pago), siempre que fuese posible insertar imgenes ...
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 configuracin de IE.

1.- Incluir un objeto excel en el codigo VBScript. Una vez que esta incluido lo puedes manejar con el cdigo 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, aadir 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 pgina asp directamente desde excel. Para ello la mejor manera es que la pgina asp presente unicamente los datos separados por tabuladores y las lneas separadas por avances de lnea
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 iteracin 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
Segn mi respuesta anterior:

1.- Incluir un objeto excel en el codigo VBScript. Una vez que esta incluido lo puedes manejar con el cdigo 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, aadir 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 dimensin 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
'Aades 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 mtodo 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 pequea todo perfecto, pero cuando se hace ms 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 lneas

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

Pero despus de que sale el dilogo 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 extensin 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 lneas

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

Pero despus de que sale el dilogo 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 extensin 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 pgina asp, el resultado de la peticin 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 lnea) y lo grabas con extensin .csv

Si quieres puedes poner en la primera lnea 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 pgina 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 ms 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 fcil 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>