C# 如何在csv中导出值中带有逗号的字符串?

C# 如何在csv中导出值中带有逗号的字符串?,c#,export-to-csv,C#,Export To Csv,我使用以下代码导出csv文件中的datagridview记录: 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

我使用以下代码导出csv文件中的datagridview记录:

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);
        }
     }
  }
使用(StreamWriter myFile=newstreamwriter(文件名,false,Encoding.Default))
{
字符串sHeaders=“”;
对于(int j=0;j

但问题是,如果datagridviewcell中的值是Harikrishna,Daxini,那么它将无法正确导出,因为单元格值中有逗号,但我需要在值中包含逗号。它应该正确导出。我如何才能做到这一点?我尝试用双引号和单引号括住该值,但不起作用。

包含“,”的值需要用双引号括起来进行转义

         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) ;
             }
         }
for(int j=0;j
分隔逗号和开头双引号之间的空格可能会导致CSV问题。将csv文件中的
“val1”、“val2”等代码替换为
“val1”、“val2”
。这应该可以解决您的问题。

双引号应该可以解决问题。分开的逗号和开头的双引号之间有空格吗?@Belinda,像这样——“Harikrishna,Daxini”?我的意思是你在键入你的值,比如
“val1”,“val2”
“val1”,“val2”
。这可能会对CSV产生影响。@Belinda,我写的是“val1”,“val2”。我的答案的简短版本我认为空格是你的问题。删除它们。我已经尝试过这个方法,但它不像“\”“+\124; harikrishna,daxini+”\”“。@harikrishna这是使用逗号导出值的正确方法。您如何阅读或使用生成的csv?可能读取csv的代码没有正确解析引用的数据字段?抱歉,但这不起作用,为什么我要检查,但这不起作用。唯一的问题是逗号前不应该有空格,它会起作用。我不知道逗号之间的空格会如此重要。这解决了我一直在努力解决的问题,甚至难以描述。