2012-07-05 151 views
2

好吧,我必須創造只是一個excel文件和2張都被填充使用2 diferent數據表,它給用戶只需要點擊保存名稱,下一個代碼可以讓我seend一個數據表到一個表(我使用C#,asp.net,並沒有使用Visual Studio中,我在記事本寫我的代碼):如何創建多個Excel工作表

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"); 

,但我不知道如何創造第二片和使用第二個數據表,如何找到一個解決方案,這樣用戶只保存和donwload只有一個文件,而不是保存儘可能多的數據表都在programa

+2

CSV文件不能有多個工作表。 – JAB 2012-07-05 18:49:31

+0

@JAB謝謝我不知道這是不可能的,現在沒有找到另一個答案 – JUAN 2012-07-05 19:27:54

回答

3

您親任何想法希望探索使用EPPlus的可能性。根據我的經驗,使用Response對象有很多限制,需要花費太多的開發工作來生成Excel文件。

網址: http://epplus.codeplex.com/

2

您應該使用用於生成本地的開源庫Excel文件,也沒有辦法,你可以創建兩個張紙CSV。

使用NPOI(XLS)和/或EPPlus(XLSX),並完全控制您的Excel導出,在這個答案https://stackoverflow.com/a/9569827/351383你可以看到例如,從數據表中創建Excel文件EPPlus的。您可以編輯該方法以接受DataTable列表併爲每個表格創建新工作表,這很簡單:

ExcelPackage pack = new ExcelPackage(); 
ExcelWorksheet ws = pack.Workbook.Worksheets.Add(sheetName); 
相關問題