2017-03-10 3 views
0

저는 Excel 파일로 내보내려는 HTML 컨텐트가 있습니다. 엑셀로 내보내기에 대한 나의 기능은 다음과 같습니다 :MVC 붙여 넣기 HTML을 Excel에 붙여 넣으십시오.

public ActionResult ExportToExcel(string htmlToExport) 
{ 
    using (ExcelPackage ep = new ExcelPackage()) 
    { 
    string fileTemplate = "test.xlsx"; 

    using (FileStream stream = new FileStream(HttpContext.Server.MapPath("~/") + ConfigurationManager.AppSettings["templatePath"] + fileTemplate, FileMode.Open)) 
    { 
     ep.Load(stream); 
    } 

    ExcelWorksheet ws = ep.Workbook.Worksheets.First(); 

    Response.AppendHeader("Content-Disposition", fileTemplate); 
    return File(ep.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 

    } 
} 

파일을 엑셀 HTML을 붙여 넣기하는 방법이 있나요? 이 작업을 수동으로 수행하면 모든 것이 정상입니다. 나는 서버 쪽에서 이것을하고 싶고 내부에 붙여 넣은 html로 파일을 반환한다. 이것이 가능한가?

+0

"붙인 HTML"이란 무엇을 의미하며 어떻게 작동하지 않습니까? – CodeCaster

+0

HTML을 복사하여 파일을 Excel로 붙여 넣으면 잘 보입니다. 나는 코드에서 이것을하고 싶다. – FrenkyB

답변

1

물론 가능합니다. 내 코드 샘플은 아래에 있습니다.

 public ActionResult BankAccountReport(BankAccountsInfoFilter bankAccountsInfoFilter) 
     {  
      var bankAccountInfos = service.GetBankAccounts(bankAccountsInfoFilter); 

      DetailReportExport(bankAccountInfos); 

      return new EmptyResult(); 
     } 

     [NonAction] 
     public void DetailReportExport(List<BankAccountViewModel> bankAccountInfos) 
     { 
      string html = RenderPartialViewToString("_BankAccountDetailReport", bankAccountInfos); 

      Response.ClearContent(); 
      Response.AddHeader("content-disposition", "attachment; filename=BankAccountInfoDetailReport.xls"); 
      Response.ContentType = "application/excel"; 
      Response.AddHeader("content-language", "tr-TR"); 
      Response.ContentEncoding = System.Text.Encoding.UTF8; 
      Response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble()); 
      Response.Write(html); 
     } 
+0

이 작업은 ... 저장된 파일을 열 때만 문제가 발생합니다. 확장자가 .xlsx 인 경우 무언가를 변경해야합니까? (물론 파일 이름의 확장자를 변경했습니다). Xlsx를 열 수 없습니다. 성공적으로 .xls를 저장하고 열 수 있습니다 (경고 있음). – FrenkyB

+0

네, 맞습니다. –

관련 문제