Ilano 0 Denunciar post Postado Outubro 31, 2008 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
quintelab 91 Denunciar post Postado Outubro 31, 2008 Você esta setando o charset como branco, talvez setando algum valor apropriado os nomes apareceram de forma correta. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Outubro 31, 2008 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