Bài viết này sẽ hướng dẫn cho bạn cách làm thế nào để tạo ra bảng tính MS Excel từ biểu mẫu báo cáo được cung cấp cho người dùng trong GridView.
.aspx page
Trước tiên chúng ta cần tạo ra một trang .aspx mà trong đó có GridView và có dữ liệu được hiển thị trong đó.
view plainprint?
1.
2.
3.
Bây giờ chúng ta phải viết mã để đưa ra GridView, trong ví dụ này chúng ta sử dụng một file .xml để cung cấp dữ liệu cho GridView.
.xml file là datasource của GridView.
view plainprint?
1.
2.
3.
4.
5.
6. Aurangabad, Bihar
7.
8.
9.
10.
11.
12. Hyderabad, AP
13.
14.
15.
16.
17.
18. Sanat Nagar, Orrisa
19.
20.
21.
22.
23.
24. Suraj Singh Nagar, Delhi
25.
26.
27.
.cs file
Bây giờ, chúng ta sẽ viết mã để đưa ra GridView trong sự kiện !IsPostBack của Page_Load
view plainprint?
1. DataSet dSet = new DataSet();
2. string fileName = Server.MapPath("~/GridData.xml");
3. dSet.ReadXml(fileName);
4. GridView1.DataSource = dSet.Tables[0].DefaultView;
5. GridView1.DataBind();
6. dSet.Dispose();
DataSet dSet = new DataSet(); string fileName = Server.MapPath("~/GridData.xml"); dSet.ReadXml(fileName); GridView1.DataSource = dSet.Tables[0].DefaultView; GridView1.DataBind(); dSet.Dispose();
Bây giờ GridView của chúng ta đã tạo ra có chứa dữ liệu. Việc chính của chúng ta ở đây đó là xuất GridView này ra file MS Excel, và điều này sẽ được thực hiện trong sự kiện click của nút [Generate Excel File from GridView]
.
Để làm được với phần mã sau đây bạn cần đưa thêm vào các dòng mã sau ở phần đầu của file .cs
view plainprint?
1. using System.IO;
2. using System.Text;
using System.IO; using System.Text;
Đây là mã cho sự kiện nhấn nút:
view plainprint?
1. string attachment = "attachment; filename=GridViewExport.xls";
2. Response.ClearContent();
3. Response.AddHeader("content-disposition", attachment);
4. Response.ContentType = "application/ms-excel";
5. StringWriter sWriter = new StringWriter();
6. HtmlTextWriter htwWriter = new HtmlTextWriter(sWriter);
7. GridView1.RenderControl(htwWriter);
8. Response.Write(sWriter.ToString());
9. Response.End();
string attachment = "attachment; filename=GridViewExport.xls"; Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/ms-excel"; StringWriter sWriter = new StringWriter(); HtmlTextWriter htwWriter = new HtmlTextWriter(sWriter); GridView1.RenderControl(htwWriter); Response.Write(sWriter.ToString()); Response.End();
Kiểm tra
Đến giờ mọi thứ đã sẵn sàng cho việc kiểm tra, nhưng hãy đợi chút đã. Khi bạn nhấn nút bạn sẽ nhận được một lỗi :
"Control 'GridView1' of type 'GridView' must be placed inside a form tag with runat=server.".
Để tránh được lỗi này, bạn chỉ cần thêm vào phương thức sau đâu trong file .cs
view plainprint?
1. public override void VerifyRenderingInServerForm(Control control)
2. {
3. }
public override void VerifyRenderingInServerForm(Control control) { }
Kết quả
Bây giờ bạn đã có đủ các thứ trong trang của bạn, hãy tiếp tục và nhấn vào nút đi. Nó sẽ hỏi yêu cầu bạn xem có định Open hoặc là Save lại file MS Excel này không.
That's it!!!SmileSmileSmile
Không có nhận xét nào:
Đăng nhận xét