温馨提示×

C# GridView能否导出到Excel

c#
小樊
85
2024-07-15 10:20:45
栏目: 编程语言

是的,可以通过将GridView的数据绑定到DataTable,然后使用EPPlus或NPOI等库将DataTable导出到Excel文件。以下是一个示例代码:

using System;
using System.Data;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;
using OfficeOpenXml;

protected void ExportToExcel(GridView gv)
{
    DataTable dt = new DataTable();
    foreach (TableCell cell in gv.HeaderRow.Cells)
    {
        dt.Columns.Add(cell.Text);
    }
    foreach (GridViewRow row in gv.Rows)
    {
        DataRow dr = dt.NewRow();
        for (int i = 0; i < row.Cells.Count; i++)
        {
            dr[i] = row.Cells[i].Text;
        }
        dt.Rows.Add(dr);
    }
    using (ExcelPackage pck = new ExcelPackage())
    {
        ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Sheet1");
        ws.Cells["A1"].LoadFromDataTable(dt, true);
        Response.Clear();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;  filename=GridViewExport.xlsx");
        Response.BinaryWrite(pck.GetAsByteArray());
        Response.End();
    }
}

在这个示例中,我们首先创建一个空的DataTable,然后遍历GridView的HeaderRow和Rows,将数据添加到DataTable中。接着使用EPPlus创建一个ExcelPackage,将DataTable中的数据加载到Excel中,并设置响应头,将Excel文件作为下载文件返回给用户。

调用这个方法并传入要导出的GridView即可实现将GridView导出为Excel文件。

0