2012-07-05 2 views
2

글쎄 나는 하나의 엑셀 파일을 생성해야하고 2 개의 시트 모두 2 개의 다른 DataTable을 사용하여 채워야합니다. 사용자가 저장해야하는 이름 만 입력하면 다음 코드는 하나를 선택합니다 한 장 (난 비주얼 스튜디오를 사용하여 C#을 asp.net을 사용하고 있지 않다, 내가 메모장에서 내 코드를 쓰고 있어요)에 데이터 테이블 :여러 엑셀 시트를 만드는 방법

string name2="Centroids"; 
     HttpContext context = HttpContext.Current; 
     context.Response.Clear(); 
     foreach (System.Data.DataRow row in _myDataTable2.Rows) 
     { 
      for (int i = 0; i < _myDataTable2.Columns.Count; i++) 
       { 
       context.Response.Write(row[i].ToString().Replace(",", string.Empty) + ","); 
      } 
     context.Response.Write(Environment.NewLine); 
     } 
    context.Response.ContentType = "text2/csv"; 
    context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name2 + ".csv"); 

하지만 난 어떻게 두 번째 시트 및 사용과 creat하는 아무 생각이 없다 두 번째 DataTable, 솔루션을 찾는 방법에 대한 아이디어, 사용자가 하나의 문서 만 저장하고 도드로드하고 많은 DataTable을 저장할 필요가 없습니다.

+2

CSV 파일에는 여러 개의 시트가있을 수 없습니다. – JAB

+0

@JAB 나는 그것이 가능하지 않다는 것을 전혀 모른다. 이제는 다른 대답을 찾지 않아도된다. – JUAN

답변

3

Pro EPPlus를 사용할 가능성을 탐구하고 싶습니다. 내 경험에 의하면, 응답 객체를 사용하면 많은 제약이 따르고 Excel 파일을 생성하기에는 너무 많은 개발 노력이 필요합니다.

URL : http://epplus.codeplex.com/

2

당신은 파일을 엑셀 기본 생성하는 오픈 소스 라이브러리를 사용한다, 당신은 CSV 두 개의 시트를 만들 수있는 방법은 없습니다.

사용 NPOI (XLS) 및/또는 EPPlus (XLSX) 완전히 당신이 EPPlus에 DataTable을에서 엑셀 파일을 생성의 예를 볼 수있는이 답변 https://stackoverflow.com/a/9569827/351383에, 당신의 엑셀 내보내기를 제어 할 수 있습니다. 해당 방법을 편집하여 DataTable 목록을 수락하고 각 테이블에 대해 새 시트를 만들면 간단합니다.

ExcelPackage pack = new ExcelPackage(); 
ExcelWorksheet ws = pack.Workbook.Worksheets.Add(sheetName); 
관련 문제