Une méthode de Dumping A GridView à un fichier Excel à télécharger / ouvert à partir d'Internet a été récemment cassé avec de nouvelles mises à jour Windows.
My Code Dumps à partir d'un fichier XLS à un fichier XLS à l'aide de StringWriter, HTMLTextWriter et RenderControl. Une approche commune utilisant le code suivant de http://www.aspsnippets.com/articles/export-gridview-a-excel-in-aspnet-with-formatting-utilisateur-c-and-vbnet.aspx p> Excel (2013) s'ouvrira à une fenêtre vierge, sans avertissement ni message sur la raison pour laquelle quelque chose a été bloqué et sans possibilité d'accepter le fichier à ouvrir. p> Mon code est exécuté sur un site intranet et j'ai accès à des stratégies / paramètres de groupe / configurations utilisateur dans Windows. P> P>
7 Réponses :
1) Ouvrez Excel Aller à Options de fichier P>
2) Cliquez sur Trust Center -> Paramètres du centre de confiance p>
3) aller à la vue protégée. Il y a 3 options qui montrent que tous ont été cliqués. Décochez la première option qui lit - "Activer la vue protégée pour les fichiers originaires d'Internet". Dans certains cas, comme indiqué dans les commentaires ci-dessous, les 1er et 2ème options doivent être décochées (merci @mosheeb) p>
Désinstallez ces mises à jour Windows: p>
Cela ne peut être appliqué que par l'utilisateur à l'autre extrémité du tuyau, et tout le monde sera prêt à prendre cette approche. Pour moi, ceci est une solution de contournement et non une solution.
@Paul honnêtement la seule vraie solution que j'ai trouvée est de ne plus utiliser ce bloc de code. Si quelqu'un peut modifier ce code et le faire fonctionner, j'accepterai cette réponse à la place.
@Paul j'ai soumis ceci en tant que style Q / A pour répondre à ma propre question pour partager mes connaissances. J'ai modifié la question dans une tentative de mieux décrire ce que ma situation était et les types d'accès que j'ai sur mes utilisateurs et le code dans l'environnement intranet, cela fonctionne. Cela a servi de solution à ma situation.
Nous avons dû décocher la première et la seconde pour que cela fonctionne sur notre intranet
Merci pour ça. Pour les autres, cela sauvera leur temps.
Comme pour la solution acceptée, cela ne peut être appliqué que par l'utilisateur à la demande de la requête. Je ne vois pas vraiment cela comme une solution.
Modification des options de sécurité n'était malheureusement pas une option, mais il s'avère que si vous exportez sur CSV au lieu de XLS, le fichier s'ouvrira à Excel ignorant les trucs du centre de confiance.
Nous sommes dans le classic ASP. Nous modifions la page de l'exportation d'un format de table HTML en CSV et avons modifié notre en-tête et notre contenu de contenu à ceci: p> et a fait des pauses de ligne avec: Response.write (CHR (10)) code> p> p>
Le code de la question applique une mise en forme du formatage (définissant BackColor) mais pour vos besoins, et probablement beaucoup d'autres, c'est une excellente solution également. Je suis sûr que j'ai quelques endroits où je peux appliquer ceci (entreprises à l'extérieur de notre intranet où nous ne pouvons pas simplement désinstaller les mises à jour de Windows, etc.) Merci!
Comment avez-vous changé votre page pour sortir à .csv? À titre d'essai, j'ai pris un fichier .xls qui a été émis par mon site Web, la copié et renommé l'extension à ".csv". L'ouverture, il a montré toutes les balises HTML et c'était en désordre. Je cherche éventuellement utiliser ce format .csv en tant que solution à ce problème de fenêtre vierge Excel lors de l'ouverture du document lors de l'exportation dans Internet Explorer, mais je ne sais pas comment modifier mon exportation Excel existante vers .csv et ne pas l'avoir avoir l'air horrible.
@Clamum Je pense que vous avez raison, il suffit de changer la sortie de type de contenu ne servent pas de solution. Je pense qu'il y a de nombreux changements de code manquants de cette réponse. Corrigez-moi si je me trompe.
@Taybriz c'était ma conclusion après avoir fait mon petit test de copie-coller-renommée auparavant. Peut-être que l'OP peut espérer mettre à jour nous. J'ai donné à mon responsable quelques options pour mettre à jour notre site Web pour résoudre ce problème et je lui ai conseillé de réécrire l'exportation Excel à l'aide de la bibliothèque EPPLUS Open Source. Cela me prendra plusieurs jours, estimé, mais je pense que ça va le réparer.
Je pensais juste que je mentionnerais qu'il y a une troisième solution: p>
Ajoutez le site générant les .xls à votre liste de sites de confiance. Je devais ajouter une douzaine de sites Web via GPO, car notre CIO refuse de faire rouler le KB ... = ( P>
Rien n'est mis en œuvre par l'utilisateur final, est en train d'être défini à l'échelle du domaine par la stratégie de groupe.
avoir le même problème. Une mise à jour a bloqué cette activité exportante vers Excel et tous les utilisateurs de mon monde ne disposent pas des autorisations de débloquer. Cela affecte 2010 et 2013.xls. Ma pensée à résoudre le type de contenu. Avez-vous essayé de changer votre type de contenu à partir de l'application / vnd.ms-Excel vers l'application / vnd.openxmlformats-officedocument.spreadsheetml.sheet et en utilisant XLSX à la place? P>
Je l'ai essayé et je reçois "Impossible de lire le fichier". d'Excel et de même vierge Excel vient.
Ce n'est pas vraiment une réponse autant qu'une suggestion et il semble que quelqu'un a essayé cette suggestion et dit que cela ne fonctionne pas.
Essayez de faire le suivant:
Remplacer "Pièce jointe" de P>
Response.AddHeader("content-disposition","inline;filename=GridViewExport.xls")
Tu as sauvé ma journée Buddy :)
par suggestion de Raniel66 , si l'Excel s'ouvre aussi vide même après avoir ajouté le site à vos sites de confiance Ouvrir le classier Excel Même s'il est grisé / vide, puis cliquez sur '