Question

J'utilise le code suivant pour convertir un gridview en fichier XLS sur une page 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

L'une des colonnes est généralement nulle, mais contient parfois un entier assez long tel que 2342515123332222 .. c'est un numéro de type de code à barres ... il n'est donc pas nécessaire de faire de calcul.

En résumé, XLS en fait une virgule flottante, ce qui est malicieux pour l’utilisateur final. (~ 23432 E 18)

Pourrais-je forcer cette colonne dans le XLS à être une chaîne?

Je ne souhaite pas générer de XLS via une autre méthode ... mon "repli". serait d'écrire un caractère '#' avant chaque entrée vide non vierge de cette colonne en espérant que cela oblige la colonne à être interprétée comme du texte plutôt que comme un nombre. Malheureusement, ce n'est pas la solution idéale.

Était-ce utile?

La solution

Au lieu d'un caractère # avant chaque entrée non vide de cette colonne, vous pouvez utiliser une apostrophe. Cela le convertira en texte. Une autre approche possible serait de joindre une macro avec les informations de format de colonne, mais je ne suis pas sûr que ce soit possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top