Cấp bậc tác giả:

DOTNET

Hiển thị dữ liệu trên GridView và xuất ra Excel trong ASP.NET

Được viết bởi webmaster ngày 25/09/2013 lúc 05:25 PM
Mẹo này mô tả làm thế nào để xuất dữ liệu vào tập tin Excel từ GridView. Tôi sẽ tạo ra một cơ sở dữ liệu mẫu và xem làm thế nào dữ liệu có thể được hiển thị trong GridView và sau đó xuất trong định dạng Excel.
  • 0
  • 11603
Tải tệp tin: Click ở đây

Hiển thị dữ liệu trên GridView và xuất ra Excel trong ASP.NET

Giới thiệu
Mẹo này mô tả làm thế nào để xuất dữ liệu vào tập tin Excel từ GridView. Tôi sẽ tạo ra một cơ sở dữ liệu mẫu và xem làm thế nào dữ liệu có thể được hiển thị trong GridView và sau đó xuất trong định dạng Excel.

Bắt đầu
Có rất nhiều kịch bản mà tôi muốn xuất dữ liệu ra định dạng Excel. Dữ liệu có thể là từ một GridView hoặc từ bất kỳ dữ liệu khác bị ràng buộc điều khiển. Trong bài viết này, tôi sẽ xem làm thế nào chúng ta có thể xuất dữ liệu từ GridView đến Excel.

Sử dụng Mã
Trong thủ thuật này, tôi đang cố gắng để giải thích làm thế nào để tạo ra hoặc xuất GridView vào tập tin MS-Excel trong ASP.NET sử dụng C #. Tôi cũng đã đặt button trên trang để xuất dữ liệu vào tập tin Microsoft Excel. Tôi đã sử dụng GridView đó ràng buộc và button sẽ được sử dụng để tạo ra tập tin Excel.

Tôi đã có cơ sở dữ liệu có tên demodb trong đó có bảng với các cột sau:

Database.png

Bây giờ khi chúng ta có cấu trúc bảng đã sẵn sàng, chúng ta có chức năng để liên kết các GridView mà tôi đã sử dụng tập dữ liệu. Vì vậy, chúng ta hãy nhìn vào mã mà fetches dữ liệu từ cơ sở dữ liệu và sau đó liên kết với các dữ liệu vào Grid để hiển thị nó trên trang web.

protected void fillGrid()
{
    string str = "SELECT [UNo], [EmpName], [Age], 
        convert(char,[dob],103) dob FROM [tbl_EmpDetails]";

    myConnection = new SqlConnection(conn);
    myConnection.Open();
    myCommand = new SqlCommand(str, myConnection);
    SqlDataAdapter mySQLDataAdapter;
    myDataSet = new DataTable();
    mySQLDataAdapter = new SqlDataAdapter(myCommand);
    mySQLDataAdapter.Fill(myDataSet);
    GridView1.DataSource = myDataSet;
    GridView1.DataBind();
    ViewState["dtList"] = myDataSet;
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        fillGrid();
    }
}
gridview.jpg

Sau khi ràng buộc GridView, dữ liệu đã sẵn sàng để xuất sang tập tin Excel. Tôi nhấn vào button tên là Export to Excel. Tôi đã sử dụng FileInfo để có được những thông tin liên quan đến các tập tin.

FileInfo FI = new FileInfo(Path);
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWriter);
DataGrid DataGrd = new DataGrid();
DataGrd.DataSource = dt1;
DataGrd.DataBind();

DataGrd.RenderControl(htmlWrite);
string directory = Path.Substring(0, Path.LastIndexOf("\\"));// GetDirectory(Path);
if (!Directory.Exists(directory))
{
    Directory.CreateDirectory(directory);
}

System.IO.StreamWriter vw = new System.IO.StreamWriter(Path, true);
stringWriter.ToString().Normalize();
vw.Write(stringWriter.ToString());
vw.Flush();
vw.Close();
WriteAttachment(FI.Name, "application/vnd.ms-excel", stringWriter.ToString());

gridview.jpg

Đoạn mã trên sử dụng chức năng WriteAttachment xuất tập tin đính kèm cho người dùng. Mã sau đây cho thấy việc thực hiện WriteAttachment :

public static void WriteAttachment(string FileName, string FileType, string content)
{
    HttpResponse Response = System.Web.HttpContext.Current.Response;
    Response.ClearHeaders();
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
    Response.ContentType = FileType;
    Response.Write(content);
    Response.End();
}

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML