ASP.NET - Exportar DataGrid a Excel

   
Vista:

Exportar DataGrid a Excel

Publicado por JuanJe (1 intervención) el 27/12/2007 18:55:08
Tengo el siguiente código para exportar un data grid a un fichero Excel.

Response.Buffer = True
Response.AddHeader("content-disposition", "attachment;filename=Testeo.xls")


Response.ContentType = "application/vnd.ms-excel"
Response.ContentEncoding = System.Text.Encoding.UTF7
Response.Charset = ""

Me.EnableViewState = False


DTgr.AllowPaging = False
DTgr.AllowSorting = False


Dim tw As System.IO.StringWriter
tw = New System.IO.StringWriter

Dim hw As HtmlTextWriter
hw = New HtmlTextWriter(tw)

DTgr.DataBind()
DTgr.RenderControl(hw)

Response.Write(tw.ToString())

Response.End()

Si no pongo la segunda línea, donde indico el nombre del fichero excel, me aparece una nueva página en blanco, si pongo dicha linea, me abre el excel con el mensaje: No se puede leer el archivo.

Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Exportar DataGrid a Excel

Publicado por DAVID PADILLA (2 intervenciones) el 28/12/2007 00:34:32
A mi me funciona con este codigo.

Prueba a ver.
************************************
Dim sb As StringBuilder = New StringBuilder()
Dim sw As StringWriter = New StringWriter(sb)
Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
Dim pagina As Page = New Page
Dim form = New HtmlForm
grdpo.EnableViewState = False
pagina.EnableEventValidation = False
pagina.DesignerInitialize()
pagina.Controls.Add(form)
form.Controls.Add(grdpo)
pagina.RenderControl(htw)
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
'Response.ContentType = "text/xml"
Response.AddHeader("Content-Disposition", "attachment;filename=data.xls")
'Response.Charset = "UTF-8"
Response.Charset = "UTF-7"
Response.ContentEncoding = Encoding.Default
Response.Write(sb.ToString())
Response.End()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar