2017-05-16 5 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(); 
     } 
} 

내가 갖는 오류 메시지가엑셀 Interop를 사용하여 워크 시트 이름을 설정하는 방법

워크 시트 이름은 비워 둘 수 없습니다입니다.

어떻게 해결할 수 있습니까?

답변

1

워크 시트 추가 작업의 반환 된 개체는 워크 시트 자체입니다. 그 객체에 워크 시트 이름을 변경 :

dt.TableName = "my sheet name"; 

:

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

을 또한,이 시트에 대한 소스로의 DataTable을 사용하고 있기 때문에, 당신은 테이블에 이름이 있는지 확인해야

MSDN 참조 :

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

+0

다시 동일한 오류 – babi

+0

이 새로운 에로 인 r : 형식 또는 네임 스페이스 이름 'Office'가 'Microsoft'네임 스페이스에 없습니다 (어셈블리 참조가 누락 되었습니까?) – babi

+0

Microsoft Office가 설치되어 있습니까? 특히 Interop COM 어셈블리가 있습니까? – silkfire