آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net
0 0

آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net


آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net

در این پست می خواهیم چگونه دریافت خروجی از لیست ها در Asp.Net با فرمت اکسل را آموزش دهیم.

نمایش دادهای دریافتی روی وب سایت به فرمت های مختلف به جز نمایش به صورت html که روی مرورگرها به نمایش در می آید یکی از پرکاربردترین قسمت ها در وب سایت ها می باشد. خروجی داده ها به فرمت pdf یا word یا excel و ... از جمله فرمت هایی است که کاربرد آن روی وب سایت ها با زبان Asp.Net به طور زیادی مورد استفاده قرار می گیرد. امروز می خواهیم یکی از این فرمت ها یعنی اکسل را با هم بیاموزیم.

ابتدا یک پروژه از نوع Asp.Net با نام Excel_Grid  ایجاد می کنیم.

آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net

در ادامه یک پایگاه داده به صورت زیر ایجاد می کنیم.

آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net

سپس یک فرم با نام Excel_Grid ایجاد می کنیم تا لیستی روی آن به نمایش بگذاریم و امکانی فراهم کنیم تا خروجی مورد نظر را از لیست بگیریم .

آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            CellPadding="4" ForeColor="#333333" GridLines="None">
            <AlternatingRowStyle BackColor="White" />
            <Columns>

            <asp:TemplateField>
            
            <ItemTemplate>
            
       
                    <asp:CheckBox ID="Checkbox1"  runat="server" />
                    </ItemTemplate>
            
                     
            </asp:TemplateField>

               
                <asp:TemplateField HeaderText="کدمشتری">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("id") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="نام و نام خانوادگی">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("name") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("name") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="محل شرکت">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("city") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("city") %>'></asp:Label>
                    </ItemTemplate>

                    
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <SortedAscendingCellStyle BackColor="#FDF5AC" />
            <SortedAscendingHeaderStyle BackColor="#4D0000" />
            <SortedDescendingCellStyle BackColor="#FCF6C0" />
            <SortedDescendingHeaderStyle BackColor="#820000" />
        </asp:GridView>
    
        <br />
    
    
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
        Text="خروجی به صورت اکسل" />

سپس برای رویداد کلیک خرجی اکسل باید کد نویسی لازم را انجام دهیم پس وارد صفحه کلاینت شده و فضای نام های زیر را وارد می کنیم.

using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using iTextSharp.text;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;

برای رویداد کلیک کد زیر را می نویسیم تا بتوانیم خروجی اکسل بگیریم.

protected void Button1_Click(object sender, EventArgs e)
        {
            bool isselected = false;

            foreach (GridViewRow gvrow in GridView1.Rows)
            {
                CheckBox chck = gvrow.FindControl("Checkbox1") as CheckBox;
                if (chck != null && chck.Checked)
                {
                    isselected = true;
                    break;
                }
            }
            if (isselected)
            {
                GridView grdxport = GridView1;

                grdxport.Columns[0].Visible = false;
                foreach (GridViewRow gvrow in GridView1.Rows)
                {
                    grdxport.Rows[gvrow.RowIndex].Visible = false;
                    CheckBox chck = gvrow.FindControl("Checkbox1") as CheckBox;
                    if (chck != null && chck.Checked)
                    {
                        grdxport.Rows[gvrow.RowIndex].Visible = true;
                    }
                }

                Response.Clear();
                Response.Buffer = true;
                Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
                Response.Charset = "";

                Response.ContentType = "application/vnd.ms-excel";


                StringWriter swr = new StringWriter();
                HtmlTextWriter htmlwtr = new HtmlTextWriter(swr);
                grdxport.RenderControl(htmlwtr);
                Response.Output.Write(swr.ToString());
                Response.End();

            }
}

 

نکته : با چک باکس سطرهای مورد نظر را در یک حلقه به هر تعداد که بخواهیم انتخاب می کنیم و سپس خروجی را با فرمت xls تولید می نماییم.

سپس نیاز است تا به پایگاه داده متصل بشویم و داده های مورد نظر را روی لیست به نمایش بگذاریم.

public void refreshdata()
  {
    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");
    SqlCommand cmd = new SqlCommand("select * from tbl_data", con);
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    sda.Fill(dt);
    GridView1.DataSource = dt;
    GridView1.DataBind();
  }

 

در آخر هم کافی است تا کلاس لازم برای ایجاد فرمت مورد نظر را به رفرنس پروژه اضافه کنیم.

میتوانید رفرنس را از این قسمت دانلود کنید .

آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net

نتیجه حاصل شده :

آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net

آموزش خروجی گرفتن از لیست با فرمت Excel در Asp.Net

 

دانلود

نویسنده علی بهارلویی
گروه مطلب Asp.Net
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۱۹ مهر ۱۳۹۴
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران عضو سایت
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha