Exporter la Grille vue d'excel et enregistrer le fichier excel dans le dossier
Je veux enregistrer le fichier excel qui exporter les données de l'affichage de la grille. J'ai écrit du code pour exporter gridview des données vers excel mais je ne sais pas comment faire pour enregistrer le fichier exporté.
Voici mon code pour l'exportation gridview dans excel :
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=MyFiles.xls");
Response.Charset = "";
this.EnableViewState = false;
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
gvFiles.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
- Vous savez que vous ne pouvez pas exporter un fichier excel, mais un tableau html? Excel peut l'interpréter, de toute façon c'est pas un vrai fichier excel. Jetez un oeil à EPPLus.
- Comme Tim dit d'utiliser les EPPlus - c'est une bibliothèque qui permettra de générer de réels .fichiers xlsx pour vous et ensuite vous pouvez les télécharger à la place. Je l'ai utilisé pour un budget de surveillance de l'application et c'est génial.
- quelle est la source de données pour votre grille de point de vue ?
- Presque toutes les réponses ici d'écrire un (HtmlTextWriter) string ou ont Interop code. NE PAS UTILISER NON PLUS. Cela va vous causer des problèmes plus tard avec DateTime de Décimales et de mise en forme. Aussi Excel va donner un avertissement parce que vous n'êtes pas de la génération d'un "vrai" fichier Excel mais une page HTML avec une .extension xls. Commencer à utiliser une bibliothèque spécialisée pour la création de fichiers Excel, comme EPPlus. Exemple et ici.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire ceci:
ce qui peut vous aider//
VerifyRenderingInServerForm(Control control)
vide cependant.}
Vous demandez comment enregistrer le fichier exporté... Votre code met le rendu du contenu de la gridview (HTML) dans la Réponse. Dans ce cas, votre navigateur (côté client) reçoivent cette réponse et ouvre une boîte de dialogue demandant où l'enregistrer. Si votre navigateur va enregistrer le fichier pour vous.
Si vous voulez l'enregistrer côté serveur, vous ne devez pas mettre le rendu de la gridview dans la réponse. Écrire dans un fichier sur le disque dur local à la place (comme la réponse ci-dessus montre).
Rappelez-vous que, dans un environnement autre que votre machine de développement (c'est à dire un environnement de production), la ASP.NET processus de travail pourraient ne pas avoir suffisamment de droits d'accès en écriture à l'emplacement spécifié sur le disque dur. Voici quelques réponses que les adresses problème:
ASP.net autorisations de compte d'utilisateur
ASP.NET + accès au chemin d'Accès est refusé
Système.UnauthorizedAccessException: le chemin d'Accès est refusé
Folowed le lien: C# fichier Excel OLEDB lire l'IMPORTATION HTML
Utiliser le
Extended Properties=\"HTML Import;HDR=No;IMEX=1 the select * from [tablename]
,tablename est retourné à partir de
GetOleDbSchemaTable
.Remarque: Ce ne serait pas la charge de la normale excel. Pour que l'utilisation
Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\
, où le nom de la table sera avec$
signe.Vérifier exemple de code:
Ne peut pas lire de fichier excel après la création de ce Fichier à l'aide de.WriteAllText() la fonction
Une autre solution pour résoudre ce problème ici : http://codentq.wordpress.com/2014/02/13/write-excel-file-from-dataset/
vous devez obtenir votre grille d'afficher les données dans l'ensemble de données par la méthode de mention sur cet article : http://codentq.wordpress.com/2014/02/13/get-data-from-grid-to-datatable-or-dataset/
d'abord ajouter EPPLUS bibliothèque de référence en application et les ajouter à l'aide OfficeOpenXml;
//d'affaires de la classe d'objet
classe bocls
{
//à l'exportation l'événement clic du bouton
protected void lbtnExport_Click(object sender, EventArgs e)
{