Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

[Resolvido] Exportar DataGrid para Excle

Recommended Posts

Olá pessoal,

 

Estou usando a função abaixo, ela até q exportaria direitinho para o excel se não fosse um pequeno detalhe: alguns nomes ficam com caracteres diferentes. Tem alguma maneira de corrigir esse probleminha???

 

A função é esta:

 

 

'============================================================

'FORMA DE USAR O ExportaExcel

'Dim Tabela As New WebControls.DataGrid

'Dim Ds As Data.DataSet

'Ds = Estados.ConsultaAvancada(" E.Pais_Codigo = " & DDLConsPais.SelectedValue & " AND E.Est_Sigla LIKE '%" & UCase(TxtConsulta.Text) & "%' ")

'Tabela.DataSource = Ds

'Tabela.DataBind()

 

'exportarExcel(Tabela, "ESTADOS")

'============================================================

 

Public Function exportarExcel(ByVal grid As DataGrid, ByVal saveAsFile As String)

 

' O limite de linhas do Excel é 65536

If grid.Items.Count.ToString + 1 < 65536 Then

 

HttpContext.Current.Response.Clear()

HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"

HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" & saveAsFile & ".xls")

' Remover caracteres do header - Content-Type

HttpContext.Current.Response.Charset = ""

' desabilita o view state.

grid.EnableViewState = False

Dim tw As New System.IO.StringWriter()

Dim hw As New System.Web.UI.HtmlTextWriter(tw)

 

grid.RenderControl(hw)

' Escrever o html no navegador

HttpContext.Current.Response.Write(tw.ToString())

' termina o response

HttpContext.Current.Response.End()

Else

HttpContext.Current.Response.Write("MUITAS LINHAS PARA EXPORTAR PARA O EXCEL !!!")

End If

 

End Function

Grato,

 

Ilano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Quintelab!

 

Fiz as alterações e agora está funcionando perfeitamente!!!

 

 

Public Function exportarExcel(ByVal grid As DataGrid, ByVal saveAsFile As String)

 

' O limite de linhas do Excel é 65536

If grid.Items.Count.ToString + 1 < 65536 Then

 

HttpContext.Current.Response.Clear()

HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"

HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" & saveAsFile & ".xls")

' Remover caracteres do header - Content-Type

HttpContext.Current.Response.Charset = "iso-8859-1"

HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("iso-8859-1")

' desabilita o view state.

grid.EnableViewState = False

Dim tw As New System.IO.StringWriter()

Dim hw As New System.Web.UI.HtmlTextWriter(tw)

 

grid.RenderControl(hw)

 

' Escrever o html no navegador

HttpContext.Current.Response.Write(tw.ToString())

' termina o response

HttpContext.Current.Response.End()

Else

HttpContext.Current.Response.Write("MUITAS LINHAS PARA EXPORTAR PARA O EXCEL !!!")

 

End If

 

Return grid

 

End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.