ایجاد و دانلود فایل Csv به صورت داینامیک در Asp.Net

در این مقاله قصد داریم در مورد ایجاد و دانلود فایل Csv در Asp.Net صحبت کنیم ، ابتدا داده ها در یک DataTable قرار می گیرند و بعد از آن داخل یک فایل Csv فرستاده می شود.

ایجاد و دانلود فایل Csv به صورت داینامیک در Asp.Net

یک پایگاه داده ایجاد کنید و یک جدول به نام Customers داخل آن بسازید.به صورت زیر:

اطلاعاتی داخل جدول وارد نمایید به صورت تصویر زیر:

داخل صفحه ی DesignUI قطعه کد مورد نظر را وارد نمایید.

<body dir="rtl">
    <form id="form1" runat="server">
      <h3>  <a href="http://barnamenevisan.org/">برنامه نویسان</a></h3>
    <asp:Button Text="ساخت فایل Csv" OnClick="ExportCSV" runat="server" />
    </form>
</body>

NameSpace زیر را وارد نمایید.

using System.Data;
using System.Configuration;
using System.Data.SqlClient;

زمانی که دکمه ی Export زده می شود، یک DataTable با سوابق جدول مشتریان پر می شود، و بعد شروع به دانلود فایل Csv می کند.

در Code Behind قطعه کد زیر را می نویسید:

    
    
      protected void OnClick(object sender, EventArgs e)
        {

            string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand("SELECT * FROM Customers"))
                {
                    using (SqlDataAdapter sda = new SqlDataAdapter())
                    {
                        cmd.Connection = con;
                        sda.SelectCommand = cmd;
                        using (DataTable dt = new DataTable())
                        {
                            sda.Fill(dt);

                            //Build the CSV file data as a Comma separated string.
                            string csv = string.Empty;

                            foreach (DataColumn column in dt.Columns)
                            {
                                //Add the Header row for CSV file.
                                csv += column.ColumnName + ',';
                            }

                            //Add new line.
                            csv += "\r\n";

                            foreach (DataRow row in dt.Rows)
                            {
                                foreach (DataColumn column in dt.Columns)
                                {
                                    //Add the Data rows.
                                    csv += row[column.ColumnName].ToString().Replace(",", ";") + ',';
                                }

                                //Add new line.
                                csv += "\r\n";
                            }

                            //Download the CSV file.

                            Response.Clear();
                            Response.Buffer = true;
                            Response.AddHeader("content-disposition", "attachment;filename=SqlExport.csv");
                            Response.Charset = "";
                            Response.ContentType = "application/text";
                            Response.Output.Write(csv);
                            Response.Flush();
                            Response.End();
                        }
                    }
                }
            }
        }

داخل Web Config حتما Connection String زیر را وارد نمایید.

 <connectionStrings>
    <add name="constr" connectionString="Data Source=.;Initial Catalog=Customers; User ID=sa;Password=123;integrated security=true"/>
  </connectionStrings>

بعد از اجرا وقتی دکمه را بزنید فایل Csv مورد نطر اطلاعات را داخل دیتابیس می خواند و داخل این فایل ایجاد می شود و آماده ی دانلود شدن است خروجی به صورت زیر خواهد بود.

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