2017-05-16 57 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