ASP.NET - Rendering Gridview in HtmlTextWriter - XLS - Formato colonna
-
06-07-2019 - |
Domanda
Sto usando il seguente codice per eseguire il rendering di una griglia in un file XLS su una pagina 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 delle colonne è generalmente nulla, ma a volte contiene un numero intero piuttosto lungo come 2342515123332222 .. è un numero di tipo di codice a barre ... quindi non è necessario eseguire mai la matematica su di esso.
Per farla breve, XLS lo trasforma in virgola mobile ed è spazzatura per l'utente finale. (~ 23432 E 18)
Esiste un modo per forzare questa colonna in XLS ad essere una stringa?
Non sono disposto a generare un XLS tramite nessun altro metodo ... il mio "fallback" sarebbe scrivere un carattere '#' prima di ogni voce vuota non vuota in quella colonna sperando che ciò costringa la colonna ad essere interpretata come testo piuttosto che un numero. Purtroppo questa non è una soluzione ideale.
Soluzione
Invece di un carattere # prima di ogni voce non vuota in quella colonna, puoi usare un apostrofo. Questo lo convertirà in testo. Un altro approccio che potrebbe essere possibile è quello di allegare una macro con informazioni sul formato di colonna, ma non sono sicuro che sia possibile.