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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top