2012-03-07 75 views
2

以下代碼使用controller.file輸出到csv文件。我想將其更改爲輸入到Excel表格(.xls)而不是csv文件。我一個使用這個庫從這裏做到這一點.. http://code.google.com/p/excellibrary/使用c#中的ExcelLibrary輸出到Excel#

按照這個計算器後.. Create Excel (.XLS and .XLSX) file from C#

編輯:

foreach (var value in valueDataList) 

    { 
     var value1 = xxxxxxx // this value is set here based on a query.. 
     int value2 = xxxxxxxx // this value is set here based on a query.. 

     byte[] content; 

     using (var ms = new MemoryStream()) 
      { 
       using (var writer = new StreamWriter(ms)) 
       { 
        writer.WriteLine("ValueHeading1 " + " ValueHeading2"); 
        writer.WriteLine(value1 + "    " + value2);       
       } 
        content = ms.ToArray(); 
        return File(content, "text/csv", "demo.csv"); 
      //ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelTest.xls", content); 

      } 
    } 

如何修改我的現有代碼putput使用脫穎而出這個庫。代碼中的最後一條註釋行不起作用,因爲它期望「內容」是數據集而不是字節..感謝您的任何幫助。

回答

3
public ActionResult Excel() 
{ 
    DataSet ds = ... 
    using (var ms = new MemoryStream()) 
    { 
     ExcelLibrary.DataSetHelper.CreateWorkbook(ms, ds) 
     return File(ms.ToArray(), "application/vnd.ms-excel", "demo.xls"); 
    } 
} 
+0

對不起,我剛纔編輯與修改後的代碼的OP ..我忘了代碼的StreamWriter部分..感謝您的幫助 – ZVenue 2012-03-07 19:16:01

+0

@ZVenue,我絕對不看你修改的代碼如何有什麼關係與excellibrary。爲了使用它,您需要構建一個DataSet並將其傳遞給CreateWorkbook方法,如鏈接到的帖子中所示。您似乎有一些現有代碼可以生成CSV文件。你將不得不修改它。閱讀您正在使用的產品的文檔。它會幫助你完成這項任務。 – 2012-03-07 19:16:56

+0

基本上我需要改變我如何將輸出寫入流中的數據集。 – ZVenue 2012-03-07 19:19:42