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

یکشنبه 12 مهر 1394

در این مقاله قصد داریم در مورد ایجاد و دانلود فایل 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 مورد نطر اطلاعات را داخل دیتابیس می خواند و داخل این فایل ایجاد می شود و آماده ی دانلود شدن است خروجی به صورت زیر خواهد بود.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید