CSV文件中的空格检测为逗号

时间:2016-04-28 12:44:57

标签: c# string csv separator

我尝试生成包含4列的CSV文件。 其中一列是Name,其中包含以空格分隔的名字和姓氏。

当我将此文本数据写入.csv文件时,它会将空格检测为逗号并添加其他列。示例:

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();
    }

1 个答案:

答案 0 :(得分:0)

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

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

如果您使用标题导出CSV,同时检查记事本中生成的CSV,您是否在“名称”后面有双逗号。