J'ai un GridView que je veux exporter vers Excel. Lorsque j'utilise l'exemple de code que je trouve en ligne, il exporte le contenu vers Excel très bien, mais pour une raison quelconque, il efface également toutes les lignes de la grille en dehors de ma table exportée.Exporter GridView vers Excel sans perdre les lignes de la grille dans Excel
Pour votre utilisateur moyen, c'est assez facile à corriger, mais j'ai besoin que cette solution fonctionne pour tout le monde.
Alors, y a-t-il un moyen d'exporter les données dans un GridView dans un classeur Excel de sorte qu'il semble qu'il ait été simplement tapé dans Excel? J'ai collé le code que j'utilise ci-dessous, supposons qu'un GridView appelé toPrint existe et possède des données précises.
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=" + name + "_Registration_Forms.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
Page.EnableViewState = false;
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
toPrint.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
EDIT: trouvé une solution partielle. Si j'exporte en tant que liste délimitée par des virgules et que l'en-tête est un fichier CSV, il s'ouvre correctement et toutes les lignes de la grille (même celles en dehors des données exportées) s'affichent. Le seul problème avec ceci est bien sûr d'avoir à supprimer chaque virgule et caractère de nouvelle ligne de mes valeurs avant de les exporter.
La méthode ci-dessus affiche une table au format HTML qui Excel fait 'brillamment' pour analyser et afficher dans presque la réplique exacte. Je ne suis pas sûr s'il y a une solution pour cela mais si le formatage n'est pas si important, la sortie CSV pourrait être une bonne alternative. –
à ceux qui pourraient être intéressés, le commentaire de o.k.w est la façon dont je suis allé. Ce n'est pas parfait parce que je dois maintenant enlever les virgules du contenu que j'exporte, mais les utilisateurs finaux préfèrent cette approche. –
vous pouvez essayer d'utiliser le caractère de tabulation au lieu de la virgule pour séparer les valeurs – mslliviu