2012-08-16 5 views
0

Csv 파일로 C# 목록을 내보내려고했습니다. 모든 것이 잘 정비되어 있습니다. 하지만 필드 분리기가 제대로 작동하지 않습니다. 그와 같은, 내 문자열 "을 보여주는 끝 (예 : 0000324df"). 여기 내 컨트롤러 코드가 있습니다.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

+0

없음 내 데이터에 speachmarks 없습니다.하지만 (")를 표시 모든 가치와 함께. – Deva

+0

writer.Write ("\" "); <- 당신이 무엇을 기대하는이 라인이해야 할 – KingCronus

답변

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

+0

order.ItemNumber의 유형은 무엇입니까? – KingCronus

+0

그 문자열 유형. – Deva