Asp.net 更改导出到excel中的工作表的名称

Asp.net 更改导出到excel中的工作表的名称,asp.net,c#-4.0,export-to-excel,Asp.net,C# 4.0,Export To Excel,我已经导出到excel代码,该代码从数据库获取数据,然后创建动态gridview,然后将数据导出到excel 问题是,我认为它的工作表名称和我提到的文件名相同。那么如何更改图纸名称 这是我正在使用的代码 GridView gridView = new GridView(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", string.Format("attach

我已经导出到excel代码,该代码从数据库获取数据,然后创建动态gridview,然后将数据导出到excel

问题是,我认为它的工作表名称和我提到的文件名相同。那么如何更改图纸名称

这是我正在使用的代码

GridView gridView = new GridView();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "SummaryReport " + Helper.GetTime(DateTime.UtcNow).ToString() + ".xls"));
Response.ContentType = "application/ms-excel";
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
gridView.DataSource = ReportExecutor.ReportExportData(startDate, endDate);
gridView.DataBind();
//This will change the header background color
gridView.HeaderRow.Style.Add("background-color", "#FFFFFF"); //
//This will apply style to gridview header cells
for (int index = 0; index < gridView.HeaderRow.Cells.Count; index++)
{
    gridView.HeaderRow.Cells[index].Style.Add("background-color", "#778899"); //Light Slate Gray
    gridView.HeaderRow.Cells[index].Style.Add("foreground-color", "#ffffff"); // White
}
int index2 = 1;
//This will apply style to alternate rows
foreach (GridViewRow gridViewRow in gridView.Rows)
{                   
    gridViewRow.BackColor = Color.White;
    if (index2 <= gridView.Rows.Count)
    {
        if (index2 % 2 != 0)
        {
            for (int index3 = 0; index3 < gridViewRow.Cells.Count; index3++)
            {
                gridViewRow.Cells[index3].Style.Add("background-color", "#e6e6fa");// Lavender
            }
        }
    }
    index2++;
}
gridView.RenderControl(htmlTextWriter);
////  Response.Write(style);
Response.Write(stringWriter.ToString());
Response.End();

恐怕您无法更改通过将响应内容类型设置为excel生成的excel文件的工作表名称。参考和的公认答案


您还可以看一看,它有一个在代码中编辑图纸名称的选项。

使用StringWriter是不可能的。使用StringWriter成功写入工作表后,可能需要重新打开工作表,然后重命名工作表

否则,您必须使用其他方法来创建Excel。这里有一个例子


目前,您得到的Helper.GetTimeDateTime.UtcNow.ToString名称正确吗?不,我得到的文件名和工作表名称为SummaryReport+日期和时间,那么您想更改什么?正如您从代码中看到的,我提到了文件名,所以它应该只适用于文件名,而不适用于工作表名称。。我的意思是,我提到的文件名为“SummaryReport+日期和时间”,这对文件名有效,但问题是它也在用文件名重命名工作表名。。。我想要不同的工作表名称。这个链接可以帮助你