将网格导出为Excel时添加标题

时间:2012-02-28 08:33:53

标签: c# asp.net

我使用以下代码将数据表导出到excel

有没有办法在Excel工作表中添加标题?

以下是我用来生成Excel工作表的代码。

enter code here
    public void export2(DataTable dt)
    {
        System.Web.UI.WebControls.DataGrid grid = 
                           new System.Web.UI.WebControls.DataGrid();
        grid.HeaderStyle.Font.Bold = true;
        grid.DataSource = dt;
        grid.DataBind();
        using (StreamWriter sw = new StreamWriter("C:\\Reports\\Report.xls"))
        {
            using (HtmlTextWriter hw = new HtmlTextWriter(sw))
            {
                grid.RenderControl(hw);
            }
        }
    }

此输出看起来像这样

Name    Employee ID 
abc         123 
def         456
ghi         789 
jkl         987
mno         654

是否可以获得如下所示的输出?

Employee Report

Name    Employee ID 
abc         123 
def         456
ghi         789 
jkl         987
mno         654

提前致谢!!

2 个答案:

答案 0 :(得分:3)

public void export2(DataTable dt) 
{
    System.Web.UI.WebControls.DataGrid grid = 
                       new System.Web.UI.WebControls.DataGrid();
    grid.HeaderStyle.Font.Bold = true;
    grid.DataSource = dt;
    grid.DataBind();
    using (StreamWriter sw = new StreamWriter("C:\\Reports\\Report.xls"))
    {
        using (HtmlTextWriter hw = new HtmlTextWriter(sw))
        {
            **hw.Write("Employee Report");**
            **hw.Write("<br>");**
            grid.RenderControl(hw);                
        }
    }
}

答案 1 :(得分:1)

一种方法是将标题(例如Label)和GridView / DataGrid添加到包含在ASP.NET Panel或DIV中的UserControl中,并使用适当的CSS。然后,您可以render UserControl而不仅仅是网格。

另一种方法是创建真实的excel文件而不是html-tables,例如使用EPPlus