net exportar crear convertir con asp archivo abrir excel web-applications asp-classic

exportar - crear un archivo excel en c#



Cómo generar un archivo Excel*.xls desde ASP clásico (6)

Tengo varias tablas html generadas que necesito mostrar como un archivo de Excel. El sitio está codificado en ASP clásico. es posible? ¿Podría hacerse de alguna manera utilizando las bibliotecas de Open Office?

EDITAR: Hasta ahora, he intentado algunas de las sugerencias, pero parece fallar. Idealmente, quiero que el usuario pueda hacer clic en un enlace que comenzará la descarga de un archivo .xls. Este código:

<%@ Language=VBScript %> <% option explicit Response.ContentType = "application/vnd.ms-excel" Response.AppendHeader "content-disposition", " filename=excelTest.xls" %> <table> <tr> <th>Test Col 1</th> <th>Test Col 2</th> <th>Test Col 3</th> <th colspan="2">Test Col 4</th> <th>Test Col 6</th> <th>Test Col 7</th> </tr> <tr> <td>Data</td> <td>Data</td> <td>Data</td> <td>Data</td> <td>Data</td> <td>Data</td> <td>Data</td> </tr> </table>

parece fallar cuando se usa IE7 para obtener la página. IE dice que "no puede descargar excelTest.asp" y que "el sitio solicitado no está disponible o no se puede encontrar".


Hay un truco "barato y sucio" que he usado ... shhhh, no se lo digas a nadie. Si imprime texto delimitado por tabuladores y crea el nombre de archivo * .xls, Excel lo abre sin objeciones, preguntas o advertencias. Así que simplemente genere los datos en un archivo de texto con delimitación de tabulación y puede abrirlo con Excel u Open Office.



Siempre puede exportar la tabla HTML a un documento XLS. Excel hace un buen trabajo entendiendo las tablas HTML.

Otra posibilidad es exportar las tablas HTML como un archivo CSV o TSV, pero necesitaría configurar el formateo en su código. Esto no es muy difícil de lograr.

Hay algunas clases en Microsoft.Office.Interop que te permiten crear un archivo de Excel programáticamente, pero siempre he encontrado que son un poco torpes. Puede encontrar una versión de .NET para crear una hoja de cálculo aquí , que debería ser bastante fácil de modificar para ASP clásico.

En cuanto a .NET, siempre me ha gustado la biblioteca de Excel XML Writer de CarlosAG . Tiene un buen generador para que pueda configurar su archivo de Excel, guardarlo como una hoja de cálculo XML y genera el código para hacer todo el formateo y todo. Sé que no es ASP clásico, pero pensé que lo lanzaría allí.

Con lo que está intentando arriba, intente agregar el encabezado:

"Content-Disposition", "attachment; filename=excelTest.xls"

Ve si eso funciona. Además, siempre uso esto para el tipo de contenido:

Response.ContentType = "application/octet-stream" Response.ContentType = "application/vnd.ms-excel"



Es AddHeader, no AppendHeader.

<%@ Language=VBScript %> <% Option Explicit Response.ContentType = "application/vnd.ms-excel" Response.AddHeader "Content-Disposition", "attachment; filename=excelTest.xls" %> <table> <tr> <td>Test</td> </tr> </table>

Actualización: escribí una publicación de blog sobre cómo generar archivos de Excel en ASP Classic . Contiene una pieza de código bastante útil para generar archivos xls y csv.


Tuve el mismo problema hasta que agregué Response.Buffer = False. Intente cambiar el código a lo siguiente.

Response.Buffer = False Response.ContentType = "application / vnd.ms-excel" Response.AddHeader "Content-Disposition", "attachment; filename = excelTest.xls"

El único problema que tengo ahora es que cuando Excel abre el archivo recibo el siguiente mensaje.

El archivo que está intentando abrir, ''Nombre de archivo [1] .xls'', tiene un formato diferente al especificado por la extensión de archivo. Verifique que el archivo no esté dañado y provenga de una fuente confiable antes de abrir el archivo. ¿Quieres abrir el archivo ahora?

Cuando abre el archivo, todos los datos aparecen en columnas separadas, pero la hoja de cálculo es completamente blanca, sin bordes entre las celdas.

Espero que ayude.