2011-03-21 3 views
3

나는 코드를 사용하여 CSV 파일에서 DataGridView에 기록을 내 보냅니다csv의 값에 쉼표로 문자열을 내보내는 방법은 무엇입니까?

using (StreamWriter myFile = new StreamWriter(filename, false, Encoding.Default)) 
{ 
     string sHeaders = ""; 
     for (int j = 0; j < dGV.Columns.Count; j++) 
     { 
      if (dGV.Columns[j].Visible) 
      { 
       sHeaders = sHeaders.ToString() + dGV.Columns[j].HeaderText + ", "; 
      } 
     } 
     myFile.WriteLine(sHeaders); 
     // Export data. 
     for (int i = 0; i < dGV.RowCount; i++) 
     { 
      string stLine = ""; 
      for (int j = 0; j < dGV.Rows[i].Cells.Count; j++) 
      { 
       if (dGV.Columns[j].Visible) 
       { 
        stLine = stLine.ToString() + dGV.Rows[i].Cells[j].Value.ToString() + ", "; 
       } 
      } 
         myFile.WriteLine(stLine); 
     } 
    } 
    } 

그러나 문제는이다 datagridviewcell의 값이 Harikrishna 경우, 셀 값에 쉼표가 있기 때문에 Daxini 다음이 제대로 수출하지 않지만 그 가치에 쉼표를 넣을 필요가 있습니다. 그리고 제대로 수출해야합니다. 어떻게해야합니까? 그 값을 큰 따옴표와 작은 따옴표로 묶으려고 시도했지만 작동하지 않습니다.

+0

큰 따옴표가 효과가 있어야합니다. 분리 쉼표와 여는 큰 따옴표 사이에 공백이 있습니까? – Belinda

+0

@ 벨린다, 이렇게 - "하리 크리슈 나, 따시 니"? – Harikrishna

+0

나는 "val1", "val2"또는 "val1", "val2"'와 같은 값을 입력한다는 것을 의미합니다. 이것은 CSV와 차이를 만들 수 있습니다. – Belinda

답변

10

쉼표와 여는 큰 따옴표 사이의 공백은 CSV에 문제를 일으킬 수 있습니다. CSV 파일에 "val1", "val2" 같은 코드를 "val1","val2"으로 바꿉니다. 그러면 문제가 해결 될 것입니다.

+1

쉼표 사이의 공백이 문제가 될지 전혀 몰랐습니다. 이것은 내가 어려움을 겪고 있었고 기술하기가 어려웠던 문제를 해결했습니다. –

3

','가 포함 된 값은 큰 따옴표로 묶어서 이스케이프 처리해야합니다.

  for (int j = 0; j < dGV.Rows[i].Cells.Count; j++) 
     { 
      if (dGV.Columns[j].Visible) 
      { 
        var value = dGV.Rows[i].Cells[j].Value.ToString(); 
        var append = value.Contains(",") 
           ? string.Format("\"{0}\"", value) 
           : value; 
        stLine = string.Format("{0}{1},", stLine, append) ; 
      } 
     } 
+0

나는 이것을 시도했지만 "\" "+ | harikrishna, daxini +"\ ""와 같이 작동하지 않습니다. – Harikrishna

+0

@Harikrishna 쉼표로 값을 내보내는 올바른 방법입니다. 당신이 생성 한 CSV를 어떻게 읽거나 소비하고 있습니까? 아마도 csv를 읽는 코드가 따옴표 붙은 데이터 필드를 제대로 구문 분석하지 못합니까? – NerdFury

+0

죄송합니다. 그러나 이것이 작동하지 않습니다. 이유는 무엇입니까?하지만이 방법은 작동하지 않습니다. – Harikrishna

관련 문제