Pregunta

Estoy usando el siguiente código para representar una vista de cuadrícula en un archivo XLS en una página ASPX:

Private Sub ExportGridviewToExcel()
    Dim attachment As String = "attachment; filename=ItemSizeExport.xls"
    Response.ClearContent()
    Response.AddHeader("content-disposition", attachment)
    Response.ContentType = "application/ms-excel"
    Dim sw As New StringWriter()
    Dim htw As New HtmlTextWriter(sw)
    GV_Item_Data.RenderControl(htw)
    Response.Write(sw.ToString())
    Response.End()
End Sub

Una de las columnas suele ser nula, pero a veces contiene un número entero bastante largo como 2342515123332222 ... es un número de tipo de código de barras ... por lo que nunca se deben hacer cálculos matemáticos sobre él.

En pocas palabras, XLS convierte esto en un punto flotante y eso es basura para el usuario final. (~ 23432 E 18)

¿Hay alguna forma de forzar que esta columna en el XLS sea una cadena?

No estoy dispuesto a generar un XLS a través de ningún otro método ... mi " retroceder " sería escribir un carácter '#' antes de cada entrada en blanco que no esté en blanco en esa columna con la esperanza de que eso obligue a la columna a interpretarse como texto en lugar de un número. Sin embargo, esta no es una solución ideal, desafortunadamente.

¿Fue útil?

Solución

En lugar de un carácter # antes de cada entrada que no esté en blanco en esa columna, puede usar un apóstrofe. Eso lo convertirá en texto. Otro enfoque que podría ser posible es adjuntar una macro con información de formato de columna, pero no estoy seguro de si eso es posible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top