Csvhelper: 缺少 HasExcelSeparator

创建于 2017-11-16  ·  5评论  ·  资料来源: JoshClose/CsvHelper

我正在使用 csvHelper 6.0.0 版,我找不到可在“配置”类中访问的“HasExcelSeparator”、“TrimFields”属性。我如何访问上述这些属性。被卡住了……提前致谢。

所有5条评论

所有 Excel 特定的东西都被删除了,所以HasExcelSeparator不再存在。 Excel 的东西需要来自 contrib 库或其他地方。

TrimFields现在使用TrimOptions

这是否意味着您不能再使用 excel 分隔符行读取 csv 文件?

那么,如果这不再受支持,是否有任何示例可以实现与世界上最常用的 CSV 查看器的兼容性?

sep=,表示 Excel 编写了该文件。

您可以使用 1 行代码重新添加该功能。

csv.Configuration.Delimiter = Regex.Match(reader.ReadLine(), "sep=(.*)").Groups[1].Value;

完整示例:

void Main()
{
    var s = new StringBuilder();
    s.AppendLine("sep=,");
    s.AppendLine("Id,Name");
    s.AppendLine("1,one");
    using (var reader = new StringReader(s.ToString()))
    using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
    {
        csv.Configuration.Delimiter = Regex.Match(reader.ReadLine(), "sep=(.*)").Groups[1].Value;       
        csv.GetRecords<Foo>().ToList().Dump();
    }
}

public class Foo
{
    public int Id { get; set; }
    public string Name { get; set; }
}

谢谢!

此页面是否有帮助?
0 / 5 - 0 等级