如何使用Excel Interop设置工作表名称

时间:2017-05-16 06:17:34

标签: c# model-view-controller worksheet

 using (XLWorkbook wb = new XLWorkbook())
 {  
      wb.Worksheets.Add(dt);
      wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
      wb.Style.Font.Bold = true;
      Response.Clear();
      Response.Buffer = true;
      Response.Charset = "";
      Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
      Response.AddHeader("content-disposition", "attachment;filename= EmployeeReport.xlsx");

      using (MemoryStream mymemorystream = new MemoryStream()) {
           wb.SaveAs(mymemorystream);

           mymemorystream.WriteTo(Response.OutputStream);

           Response.Flush();
           Response.End();   
      }
}

我收到的错误消息是

  

工作表名称不能为空。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

工作表添加操作的返回对象是工作表本身。更改该对象上的工作表名称:

var ws = wb.Worksheets.Add(dt);
ws.Name = "my sheet name";

另外,因为您使用DataTable作为工作表的来源,所以您必须确保该表具有名称:

dt.TableName = "my sheet name";

MSDN参考:

https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.name.aspx?f=255&MSPPError=-2147217396