نوشتن داده در فایل اکسل (Excel) و دانلود فایل اکسل در Asp.Net
دوشنبه 17 فروردین 1394در این مقاله فراخواهیم گرفت که در Asp.Net چگونه داده ای در فایل اکسل بنویسیم
که این داده ها از پایگاه داده خوانده شده و درون فایل اکسل نوشته خواهند شد و میتوانید فایل اکسل را دانلود نمایید.
برای انجام این مثال به دو کتابخانه زیر نیاز خواهیم داشت:
<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(); } } } } } } }
سپس پس از ایجاد فایل اکسل میتوانید آنرا دانلود نمایید:
- ASP.net
- 5k بازدید
- 10 تشکر