l'exportation gridview pour excel avec la valeur personnalisée mise en forme

j'ai dans ma page de contenu 4 choses:

  • un seul gridview
  • requête boutons pour exécuter les vues de base de données et afficher les résultats des requêtes à l'intérieur de la vue dans le contrôle gridview
  • bouton exporter dans excel que les exportations de la gridview dans excel
  • envoyer un email avec le fichier excel ci-dessus comme une pièce jointe

qu'ils fonctionnent très bien, cependant j'ai remarqué un problème étrange avec la mise en forme de certaines cellules dans une colonne, la colonne a 2 formats appliqué aux valeurs, "nombre" et "général", "nombre" celui incorrect.

voici quelques photos de la première quelques résultats pour illustrer ce que je dis:

dans sql server

l'exportation gridview pour excel avec la valeur personnalisée mise en forme

dans la page de contenu

l'exportation gridview pour excel avec la valeur personnalisée mise en forme

dans excel

l'exportation gridview pour excel avec la valeur personnalisée mise en forme

avis que dans sql server et sur la page, les cellules sont affichées avec la mise en forme correcte, ce qui est XXXXX.etc (mise en forme générale), mais les cellules avec des nombres plus obtenir au format "nombre"

je vais poster un peu de code ci-dessous:

gridview

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"></asp:GridView>

bouton exporter dans excel

protected void Buttonexcel_Click(object sender, EventArgs e)
{

    try
    {
        Response.Clear();
        Response.Buffer = true;
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.Charset = "";
        Response.AddHeader("content-disposition", "attachment;filename=dados.xls");
        StringWriter sWriter = new StringWriter();
        HtmlTextWriter hWriter = new HtmlTextWriter(sWriter);
        GridView1.RenderControl(hWriter);
        Response.Output.Write(sWriter.ToString());
        Response.Flush();
        Response.End();
    }
    catch (Exception ex)
    {
        Label1.Text = ex.ToString();
    }

}

est-il une manière que je peux vigueur que "général" mise en forme pour l'ensemble de la xls?

Vous pourriez essayer d'ajouter un style à l'aide de la Réponse.Écrire pour convertir les nombres en chaîne. Regardez ce lien: aspsnippets.com/Articles/...

OriginalL'auteur user2983177 | 2013-12-06