2012-08-16 124 views
0

我試圖將我的C#列表導出爲Csv文件。一切都很好。但是現場分隔器不能正常工作。它顯示的像我的字符串「最後(例如:0000324df」)。這是我的控制器代碼。將C#列表導出到Csv文件

IEnumerable stockexpo = stockexp; // Assign value 
     MemoryStream output = new MemoryStream(); 
     StreamWriter writer = new StreamWriter(output, Encoding.UTF8); 
     writer.Write("ItemNo,"); 
     writer.Write("Repeat Count"); 
     writer.WriteLine(); 
     foreach (StockResult order in stockexpo) 
     { 
      writer.Write(String.Format("{0:d}", order.ItemNumber)); 
      writer.Write("\""); 
      writer.Write(","); 
      writer.Write("\""); 
      writer.Write(order.Count); 
      writer.Write("\""); 
      writer.Write(","); 
      writer.WriteLine(); 
     } 
     writer.Flush(); 
     output.Position = 0; 

     return File(output, "text/comma-separated-values", "stockexp.csv"); 

我需要知道我如何能夠適當地分離字段值。任何人都可以幫助我。

+0

做一些數據的包含speachmarks?看你的代碼,它是做什麼你問它做... – KingCronus 2012-08-16 08:54:06

+0

在我的數據沒有speachmarks。但它(「)顯示與每個價值。 – Deva 2012-08-16 09:00:37

+0

writer.Write( 「\」 「); < - 你還指望這條線做 – KingCronus 2012-08-16 09:01:31

回答

3
writer.Write("\""); 

這行代碼將是一個「每次輸出。爲什麼它呢?

而且,我不會有之前的WriteLine一個逗號,因爲沒有必要劃定該文件的末尾。

IEnumerable stockexpo = stockexp; // Assign value 
    MemoryStream output = new MemoryStream(); 
    StreamWriter writer = new StreamWriter(output, Encoding.UTF8); 
    writer.Write("ItemNo,"); 
    writer.Write("Repeat Count"); 
    writer.WriteLine(); 
    foreach (StockResult order in stockexpo) 
    { 
     writer.Write(order.ItemNumber); 
     writer.Write(","); 
     writer.Write(order.Count); 
     writer.WriteLine(); 
    } 
    writer.Flush(); 
    output.Position = 0; 

    return File(output, "text/comma-separated-values", "stockexp.csv"); 
+0

這次我得到字符串中的最後兩個字符,比如,實際值=> 0000000043.但是我只得到了43. – Deva 2012-08-16 09:10:20

+0

Order.ItemNumber是什麼類型? – KingCronus 2012-08-16 09:11:21

+0

它的字符串類型 – Deva 2012-08-16 09:12:09