(GridView üzerindeki verilerinizi Excel dosyasına C# ile aktarma işlemi, önce gridview i oluşturup databind yapıp, gerekli dosyayı oluşturabilir )

 

         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))

                {

                    Table table = new Table();

                    if (gv.HeaderRow != null)

                    {

                        GVUtils.PrepareControlForExport(gv.HeaderRow);

                        table.Rows.Add(gv.HeaderRow);

                    }

                    foreach (GridViewRow row in gv.Rows)

                    {

                        GVUtils.PrepareControlForExport(row);

                        table.Rows.Add(row);

                    }

 

                    if (gv.FooterRow != null)

                    {

                        GVUtils.PrepareControlForExport(gv.FooterRow);

                        table.Rows.Add(gv.FooterRow);

                    }

                    table.RenderControl(htw);

                    HttpContext.Current.Response.Write(sw.ToString());

                    HttpContext.Current.Response.End();

                }

            }

        }

 

        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())

                {

                    GVUtils.PrepareControlForExport(current);

                }

            }

        }