2017-05-16 54 views
0
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(); 
     } 
} 

我得到的错误信息是如何使用Excel互操作设置工作表的名称

工作表的名称不能为空。

我该如何解决这个问题?

回答

1

工作表添加操作的返回对象是工作表本身。改变对象的工作表名称:,

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

也因为你使用数据表作为源的表,您必须确保该表有一个名字:

dt.TableName = "my sheet name"; 

MSDN参考:

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

+0

再次相同的错误 – babi

+0

这是新埃罗r:名称空间“Microsoft”中不存在类型或名称空间名称“Office”(您是否缺少程序集引用?) – babi

+0

您是否安装了Microsoft Office,特别是Interop COM程序集? – silkfire