CLR: .Net / Mono / Boo / Otros CLR > C#
Problema Al Exportar Data Grid A Excel
Güorker:
Hola,
En vez de dar una solución, vengo con un problema relacionado.
Yo ejecuto Grid.RendeControl() para meter html en una pagina, y tengo el mismo problema con las tildes, Ñs y demás caracteres.
Sabe alguien cual puede ser la solución?
Yo he prbado a poner UTF-7 en el Web config y todo deja de funcionar.
:whistling:
Güorker:
Hola a todos,
Esta vez vengo para decir que yo solucione mi problema y os voy a contar como.
Problema Inicial:
En mi aplicación, tengo la posibilidad de mandar correos electronicos. Y hay veces que se debe adjuntar un archivo adjunto. Este archivo adjunto contiene el HTML de un DataGrid.
Cuando ejecutaba Datagrid.RenderControl(), el html resultante contenia las tildes, Ñ,... bien escritas, pero cuando lo pasaba al archivo, se escribian mal.
Al principio, creaba un StreamWriter que se encargada de escribir el HTML en el archivo, y lo creaba con la función File.CreateText.
El problema (parece ser) consistía en que el File.CreateText devuelve un StremWriter en UTF8 y por eso se escribía mal.
Mi solución:
Al ver(debugeando) que el Html del Datagrid tenia las tildes y demas caracteres correctamente, me di cuenta de que lo que fallaba era la escritura del HTML en el archivo. Por eso utilicé otra forma de crear el StreamWriter para que escribiera correctamente.
Utilicé el siguiente constructor:
new StreamWriter(FileName, true, System.Text.Encoding.UTF8)
Ironicamente el StreamWriter tambien utiliza UTF8 de esta manera, pero no se porqué ahora el HTML que se escribe sobre el archivo es correcto :blink:
No se que os puede fallar a vosotros, pero quizá trasteando un poco con los StrinWriter y HtmlWriter se consiga algo.
Suerte :hola:
rpj_accenture:
Muchísimas gracias!!!!!!!!!!!!!!!!!!!!!!!!
Por fin ha funcionado. Era esa la solución, incluir la línea:
Response.ContentEncoding = System.Text.Encoding.UTF7;
Insisto, muchas gracias a todos los que me habéis ayudado.
Guorker, ¿no hay ningún método parecido al de encoding del objeto Response en lo que necesitas?
Un saludo.
Güorker:
Hola,
me alegro mucho de que te haya funcionado!
A mi la verdad que esa solución no me servía, porque yo en vez de enviar el HTML al cliente via http, lo que necesitaba era meter el HTML en un archivo. Pero tal y como he dicho, ya he conseguido que se escriba bien.
Muchas gracias por el interes.
see07:
Felicidades a ambos porque ha funcionado lo que no les funcionaba.
Seamos un equipo, como ven, ninguno de nosotros es un experto en esto de C#, pero si conjuntamos esfuerzos, si nos apoyamos unos a otros podemos salir adelante con las cosas que se nos atoren.
A.L.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa