tengo un gridview que toma los datos desde un datatable. Este gridview lo muestro y luego pongo la opcion de exportar a excel. para esto ocupo la siguiente funcion:
Código:
Dim sb As StringBuilder = New StringBuilder() Dim SW As System.IO.StringWriter = New System.IO.StringWriter(sb) Dim htw As HtmlTextWriter = New HtmlTextWriter(SW) Dim Page As Page = New Page() Dim form As HtmlForm = New HtmlForm() Me.GridView1.EnableViewState = False Page.EnableEventValidation = False Page.DesignerInitialize() Page.Controls.Add(form) form.Controls.Add(Me.GridView1) Page.RenderControl(htw) Response.Clear() Response.Buffer = True Response.ContentType = "application/vnd.ms-excel" Response.AddHeader("Content-Disposition", "attachment;filename=hoja.xls") Response.Charset = "UTF-8" Response.ContentEncoding = Encoding.Default Response.Write(sb.ToString()) Response.End()
lo que me exporta sin problemas el gridview. Lo que no he podido resolver es que la salida de los datos me los tira como texto desde la tercera fila. He buscado algun texto que no permita que se muestren como numeros (como los % que tengo por ahi.. ¿pero y los demas?), pero no he encontrado solucion. También intenté mostrarlos como enteros sin decimales pero obtengo el mismo resultado.
para cargar los datos al datatable utilizo esto
Código:
donde dr es un datarow y vol_m3 es un arreglo de double. el resultado en excel es algo asi:dr(3) = FormatNumber(vol_m3(1), 0)
(por motivos de anti-spam no puedo incluir un screen shot)
Para resumir, lo que no puedo hacer es que me muestre la hoja excel en formato de numeros para que los "gerentes" realizen calculos posteriores
saludos