Asp.net c# ile Gridviewdeki verileri Excel dosyası olarak export etmek
Gridview içerisindeki verileri Excel dosyasına dönüştürmek için gereken classımızı oluşturuyoruz.
Website menüsü-add new item-class
Classımızın adını GridViewExport.cs yapıyoruz.
Classımızın kodları aşağıda…
using System; using System.Data; using System.Configuration; using System.IO; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public class GridViewExportUtil { public static void Export(string fileName, GridView gv) { HttpContext.Current.Response.Clear(); HttpContext.Current.Response.AddHeader( "content-disposition", string.Format("attachment; filename={0}", fileName)); HttpContext.Current.Response.ContentType = "application/ms-excel"; using (StringWriter sw = new StringWriter()) { using (HtmlTextWriter htw = new HtmlTextWriter(sw)) { // Create a form to contain the grid Table table = new Table(); // add the header row to the table if (gv.HeaderRow != null) { GridViewExportUtil.PrepareControlForExport(gv.HeaderRow); table.Rows.Add(gv.HeaderRow); } // add each of the data rows to the table foreach (GridViewRow row in gv.Rows) { GridViewExportUtil.PrepareControlForExport(row); table.Rows.Add(row); } // add the footer row to the table if (gv.FooterRow != null) { GridViewExportUtil.PrepareControlForExport(gv.FooterRow); table.Rows.Add(gv.FooterRow); } // render the table into the htmlwriter table.RenderControl(htw); // render the htmlwriter into the response HttpContext.Current.Response.Write(sw.ToString()); HttpContext.Current.Response.End(); } } } /// /// Replace any of the contained controls with literals /// /// private static void PrepareControlForExport(Control control) { for (int i = 0; i < control.Controls.Count; i++) { Control current = control.Controls[i]; if (current is LinkButton) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text)); } else if (current is ImageButton) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText)); } else if (current is HyperLink) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text)); } else if (current is DropDownList) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text)); } else if (current is CheckBox) { control.Controls.Remove(current); control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False")); } if (current.HasControls()) { GridViewExportUtil.PrepareControlForExport(current); } } } }
Kaydettikten sonra herhangi bir sayfada ;
GridViewExportUtil.Export("Exceldosyam.xls", GridView1);
Kodunu kullanabiliriz. Bu kod GridView1deki verileri exceldosyam.xls dosyası olarak export etmektedir.
Kolay gelsin.
using System.Web.Security;/p
Gelen arama terimleri:
- c# excel veri yazma
- e okuldan export yapma exel olarak
cs dosyasını yaptım ve GridViewExportUtil.Export(“Exceldosyam.xls”, GridView1); işlemini bir butona bağladım.
hiçbir tepki vermiyor.
Hata da mı vermiyor? Butona Response.write gibi başka bir kod yazdığınızda çalışıyor mu?
Kopyala yapıştırda bazen tırnak problemleri olabiliyor. kodları düzenledim şu an sorun çıkarmaz sanırım.
uygulamanın dosyalarını yükledim. Visual studio 2010 ile yapmıştım.
indirip kontrol edebilirsiniz. Adres;
http://www.arifceylan.com/vtexcel.rar
Kolay gelsin.
Öncelike çok güzel bir paylaşım, emeğinize sağlık fakat sormam gereken birşey var.Exele aktardığımız zaman türkçe karakterler bozuluyor bu konuda bir tecrübeniz varmı? Yoksa sadece bende mi böyle bir durum gerçekleşti 🙂
Paylaşım için çok teşekkürler. Çok işime yaradı.
Merhaba,
Türkçe karakter sorunu çıkarıyor.Nasıl aşabiliriz
Merhaba , greidview üzerinde herhangi bir controler olduğu zaman aktarma işlemini yapmıyor örneğin linkbutton veya checkbox