Space 在 CSV 文件中被检测为逗号

Space in CSV file detected as comma

我尝试生成包含 4 列的 CSV 文件。 此列之一是名称,其中包含用 space 分隔的名字和姓氏。

当我将此文本数据写入 .csv 文件时,它检测到 space 为逗号并添加额外的列。示例:

Name - First LastName 转换为:

 Name | AdditionalColumn

First | LastName

但应该只是

          Name |
First LastName |

要生成文件,我使用下一个方法:

public string Export(bool includeHeaderLine = true)
    {
        var sb = new StringBuilder();
        //Get properties using reflection.
        IList<PropertyInfo> propertyInfos = typeof(T).GetProperties();

        if (includeHeaderLine)
        {
            //add header line.
            foreach (PropertyInfo propertyInfo in propertyInfos)
            {
                sb.Append(propertyInfo.Name).Append(",");
            }
            sb.Remove(sb.Length - 1, 1).AppendLine();
        }

        //add value for each property.
        foreach (T obj in _objects)
        {
            foreach (PropertyInfo propertyInfo in propertyInfos)
            {
                sb.Append(MakeValueCsvFriendly(propertyInfo.GetValue(obj, null))).Append(",");
            }
            sb.Remove(sb.Length - 1, 1).AppendLine();
        }

        return sb.ToString();
    }

首先,如何检查创建的CSV? 如果你打开它 Excell,首先尝试修改 MakeValueCsvFriendly(object value) 并用空格引用值:

...    
if (output.Contains(",") || output.Contains("\"") || output.Contains(" "))
                output = '"' + output.Replace("\"", "\"\"") + '"';
...

如果您使用 header 导出 CSV,另外,在记事本中检查生成的 CSV,"Name" 后是否有双逗号。