2012-08-16 123 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