2012-10-04 2 views
1

C#에서 asp.net MVC 응용 프로그램이 있고 쿼리 결과 (Entity Framework에서)가 표시되며 사용자가 다운로드 할 수있는 Excel 시트에 데이터를 넣어야합니다. 이것이 내가하려는 일이며, 각 행의 데이터를 Excel 시트에 쓰는 방법을 알고 싶습니다. 내가 취해야 할 다른 접근 방식도 환영합니다.ASP.NET MVC 응용 프로그램에서 Excel로 쿼리 결과 내보내기

var certs = CertificateService.ReadAllSentCertificates(); 
       Application excel = new Application(); 
       string filePath = "C:/ToDoList/SentStats_" + DateTime.Now.ToString() + ".xls"; 

       Workbook mybook = excel.Workbooks.Add(); 
       excel.Visible = true; 
       try 
       { 
        mybook.Activate(); 
        Worksheet mysheet = mybook.Worksheets.Add(); 

        foreach (var x in certs) 
        { 
         // How to write each row in excel?? 

        } 
        //mybook.SaveAs(Filename: filepath); 
        mybook.Save(); 
       } 
       catch (Exception ex) 
       { 
       } 
       finally 
       { 
        mybook.Close(); 
       } 

답변

2

웹 응용 프로그램에서 Office interop을 사용하지 마십시오. MS 오피스는 서버에서 실행되도록 설계되지 않았습니다. Excel 시트를 작성하려면 OpenXML을 서버에 사용할 수 있습니다.

다른 방법으로 결과가 포함 된보기를 <table>에 입력하고 application/vnd.ms-excelContent-Type 응답 헤더와 함께이보기를 제공 할 수 있습니다. 전체 시트를 제어 할 수있는 OpenXML SDK를 사용하는 것과 비교하여 결과 시트의 서식을 제어 할 수 있습니다.