Thứ Tư, 1 tháng 4, 2009

Tạo file MS Excel từ GridView

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...

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. Sheo
5. Narayan
6.
Aurangabad, Bihar

7. Job
8.

9.

10. Vijay
11. Bandaru
12.
Hyderabad, AP

13. Software Professoinal
14.

15.

16. Sannat
17. Digar
18.
Sanat Nagar, Orrisa

19. Job
20.

21.

22. Suraj
23. Singh
24.
Suraj Singh Nagar, Delhi

25. Businessman
26.

27.


Sheo Narayan
Aurangabad, Bihar
Job
Vijay Bandaru
Hyderabad, AP
Software Professoinal
Sannat Digar
Sanat Nagar, Orrisa
Job
Suraj Singh
Suraj Singh Nagar, Delhi
Businessman

.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