گرفتن خروجی اکسل از داده های گرید ویو در ASP.NET

در این مقاله میخواهیم از داده های گرید ویو خود خروجی اکسل (excel) بگیریم . در بیشتر برنامه ها شما نیاز به خروجی اکسل خواهید داشت در این مقاله این عمل را در زمان اجرا (runtime) انجام خواهیم داد.

گرفتن خروجی اکسل از داده های گرید ویو در ASP.NET

گرفتن خروجی اکسل از داده های گرید ویو در ASP.NET

در این مقاله میخواهیم از داده های گرید ویو خود خروجی اکسل (excel) بگیریم . در بیشتر برنامه ها شما نیاز به خروجی اکسل خواهید داشت در این مقاله این عمل را در زمان اجرا (runtime) انجام خواهیم داد.

ابتدا در پایگاه داده خود یک جدول بسازید به شکل زیر بسازید:

سپس مقداری اطلاعات در آن درج میکنیم :

سپس یک برنامه جدید از نوع وب فرم بسازید ویک صفحه به نام Default به آن اضافه کنید از جعبه ابزار خود بک گریدویو ویک LinkButton اضافه میکنیم :

            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                   <Columns>
                    <asp:BoundField DataField="ProductID" HeaderText="شماره محصول"></asp:BoundField>
                    <asp:BoundField DataField="ProductName" HeaderText="نام محصول"></asp:BoundField>
                    <asp:BoundField DataField="Brand" HeaderText="برند"></asp:BoundField>
                    <asp:BoundField DataField="Category" HeaderText="دسنه بندی"></asp:BoundField>
                </Columns>
                <HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" />
            </asp:GridView>
            <asp:LinkButton ID="lnkExport" runat="server" Text="خروجی Excel" OnClick="lnkExport_Click"></asp:LinkButton>

 

از فضا نام های زیر استفاده میکنیم:

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;

دررویداد pageload تابع GVProsFill را فراخوانی میکنیم که درتابع نامبرده رشته اتصال را از فایل webconfig میخونیم به پایگاه داده خود متصل شده و اطلاعات را خواندن و گرید را پر میکنیم:

       

        protected void Page_Load(object sender, EventArgs e)
        {
            GVProsFill();
        }
        void GVProsFill()
        {
            string Query = "Select * from Products";
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConToSEPL"].ConnectionString);
            SqlDataAdapter adp = new SqlDataAdapter(Query, con);
            DataSet ds = new DataSet();
            adp.Fill(ds);
            GridView1.DataSource = ds.Tables[0];
            GridView1.DataBind();
        }

سپس در رویداد کلیک دکمه خروجی Excel کد زیر را بنویسید:

        protected void lnkExport_Click(object sender, EventArgs e)
        {
            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "Prosperity.xls"));
            Response.ContentType = "application/ms-excel";
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            GridView1.AllowPaging = false;
            GVProsFill();
            GridView1.HeaderRow.Style.Add("background-color", "#FFFFFF");
            for (int a = 0; a < GridView1.HeaderRow.Cells.Count; a++)
            {
                GridView1.HeaderRow.Cells[a].Style.Add("background-color", "#507CD1");
            }
            int j = 1;
            foreach (GridViewRow gvrow in GridView1.Rows)
            {
                gvrow.BackColor = Color.White;
                if (j <= GridView1.Rows.Count)
                {
                    if (j % 2 != 0)
                    {
                        for (int k = 0; k < gvrow.Cells.Count; k++)
                        {
                            gvrow.Cells[k].Style.Add("background-color", "#EFF3FB");
                        }
                    }
                }
                j++;
            }
            GridView1.RenderControl(htw);
            Response.Write(sw.ToString());
            Response.End();
        }

فایل های ضمیمه