نوشتن داده در فایل اکسل (Excel) و دانلود فایل اکسل در Asp.Net

در این مقاله فراخواهیم گرفت که در Asp.Net چگونه داده ای در فایل اکسل بنویسیم

نوشتن داده در فایل اکسل (Excel)  و دانلود فایل اکسل در Asp.Net

که این داده ها از پایگاه داده خوانده شده و درون فایل اکسل نوشته خواهند شد و میتوانید فایل اکسل را دانلود نمایید.

برای انجام این مثال به دو کتابخانه  زیر نیاز خواهیم داشت:

نکته : شما باید OpenXml SDK 2.0 را روی سیستم عامل خود نصب کنید.
در ابتدا یک جدول به نام Customers  در پایگاه داده به شکل زیر میسازیم :
سپس مقداری اطلاعات درون جدول درج میکنیم:
حال یک پروژه جدید از نوع وب فرم بسازید ویک صفحه جدید به آن اضافه کنید سپس از جعبه ابزار خود یک دکمه به صفحه اضافه کنید:
  <asp:Button Text="خروجی" OnClick="ExportExcel" runat="server" />

برای این مثال به فضای نام های زیر نیاز داریم:


using System.IO;
using System.Data;
using ClosedXML.Excel;
using System.Configuration;
using System.Data.SqlClient;

زمانی که روی دکمه خروجی کلیک شود رویداد کلیک آن اجرا خواهد شد که درون آن اطلاعات درون جدول Customers فراخوانی شده و در یک DataTable  ذخیره میشود سپس یک شی Workbook میسازیم که اطلاعات درون DataTable   توسط متد Add به Worksheet اضافه میشود و در نهایت توسط MemoryStream  روی فایل نوشته خواهد شد:


protected void ExportExcel(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);
                    using (XLWorkbook wb = new XLWorkbook())
                    {
                        wb.Worksheets.Add(dt, "Customers");
 
                        Response.Clear();
                        Response.Buffer = true;
                        Response.Charset = "";
                        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                        Response.AddHeader("content-disposition", "attachment;filename=SqlExport.xlsx");
                        using (MemoryStream MyMemoryStream = new MemoryStream())
                        {
                            wb.SaveAs(MyMemoryStream);
                            MyMemoryStream.WriteTo(Response.OutputStream);
                            Response.Flush();
                            Response.End();
                        }
                    }
                }
            }
        }
    }
}

سپس پس از ایجاد فایل اکسل میتوانید آنرا دانلود نمایید:

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