L'exportation GridView à de multiples feuille Excel
J'ai deux Gridview dans mon application Web.J'ai besoin ,tout en cliquant sur le (ExcelExpot) bouton les valeurs à l'Exportation dans Excel en Conséquence Feuil1 et Feuil2.
protected void ExportToExcel()
{
this.GridView1.EditIndex = -1;
Response.Clear();
Response.Buffer = true;
string connectionString = (string)ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection sqlconnection = new SqlConnection(connectionString);
String sqlSelect = "select * from login";
sqlconnection.Open();
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(sqlSelect, connectionString);
//DataTable dt1
DataTable dt1 =new DataTable();
mySqlDataAdapter.Fill(dt1);
//LinQ Query for dt2
var query = (from c in dt.AsEnumerable()
select new {id= c.Field<string>("id"),name=c.Field<string>("name"),city=c.Field<string>("city")}) ;
DataTable dt2 = new DataTable();
d2=query.CopyToDatatable();
DataSet ds=new DataSet();
ds.Tabls.Add(dt1);
ds.Tabls.Add(dt2);
Excel.Application excelHandle1 = PrepareForExport(ds);
excelHandle1.Visible = true;
}
//code for PrepareForExport(ds);
PrepareForExport(ds)
{
two tables in two worksheets of Excel...
}
peut-être double: stackoverflow.com/questions/2452465/export-gridview-to-excel
et quelle est la règle? certains enregistrements dans la feuille Sheet1 et quelques autres sur la Feuille2 ou est-ce ok pour vous de mettre tous les enregistrements dans 1 feuille ensuite utiliser Excel Interop pour cloner cette feuille?
le Gridviews,différentes données pas possible de combiner.
et quelle est la règle? certains enregistrements dans la feuille Sheet1 et quelques autres sur la Feuille2 ou est-ce ok pour vous de mettre tous les enregistrements dans 1 feuille ensuite utiliser Excel Interop pour cloner cette feuille?
le Gridviews,différentes données pas possible de combiner.
OriginalL'auteur Jay | 2011-10-03
Vous devez vous connecter pour publier un commentaire.
Je suis d'accord avec @Andrew Burgess et ont mis en œuvre son code dans un de mes projets. Juste pour le record il y a quelques petites erreurs dans le code qui sera la cause de certains COM Exceptions. Le corrigé du code est ci-dessous (le problème est que Excel numéros des feuilles, des lignes, des colonnes de 1 à n pas de partir de zéro).
OriginalL'auteur Paul
De le faire avec EPPlus est un morceau de gâteau. Pas de assemblys Interop requis et littéralement à 2 lignes de code n'toute la magie:
Code complet:
Remarque que j'ai copié et coller votre code pour recueillir les données. J'espère que ces lignes pour produire une DataTable.
OriginalL'auteur Icarus
Vous aurez besoin pour créer le classeur, ajouter des feuilles supplémentaires si nécessaire (par défaut à trois), puis remplir les cellules.
En haut du fichier:
Et puis l'essentiel du code pour générer le fichier Excel
Ne sais pas exactement si cela va fonctionner, mais il faut vous mettre dans la bonne direction
(aussi:
Type.Missing
etMissing.Value
viennent de l'espace de nomsSystem.Reflection
, juste pour info)using Excel = Microsoft.Office.Interop.Excel;
pour que cela fonctionne. Je sais que l'OP probablement le sait, mais juste pour être tout à fait clair pour toute personne qui voit cela dans l'avenir =)OriginalL'auteur Andrew Burgess
Plutôt que d'utiliser certains de la 3e partie de la bibliothèque ou de l'automatisation d'Excel (avec il est ajouté les frais généraux), vous pouvez simplement utiliser ADO.NET.
http://support.microsoft.com/kb/316934#10
Vous pouvez tout simplement utiliser le T-SQL de votre habitude de OleDbCommand objets.
Vous devez créer votre temp fichier excel en utilisant le Chemin d'accès.GetTempFileName et de sortie, après quoi vous pouvez supprimer le fichier temp.
OriginalL'auteur Louis Ricci