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

دوشنبه 17 فروردین 1394

در این مقاله فراخواهیم گرفت که در 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();
                        }
                    }
                }
            }
        }
    }
}

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

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

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

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

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

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