【问题标题】:CSVHelper to skip record before headerCSVHelper 在标题之前跳过记录
【发布时间】:2018-06-26 14:09:02
【问题描述】:

我的文件中有以下格式的数据。

HEADER|ReportItem Name: Margin Ri.....
Account Id/Margin Id|Account Name|Ba...... // the row with headers
Data row 1
Data row 2
TRAILER|Record Count: 2

这是抛出一个错误 - 我相信实际上在实际的阅读器行之前有一个该行。

using (var textReader = File.OpenText(path))
{
    var csv = new CsvReader(textReader);
    csv.Configuration.RegisterClassMap<GsClassMap>();
    csv.Configuration.TrimOptions = TrimOptions.Trim;
    csv.Configuration.MissingFieldFound = null;
    csv.Configuration.Delimiter = "|";
    csv.Configuration.HasHeaderRecord = true;
    csv.Configuration.ShouldSkipRecord = (x) => x[0].StartsWith("HEADER");
    csv.Configuration.ShouldSkipRecord = (x) => x[0].StartsWith("TRAILER");
    return csv.GetRecords<GsSma>().ToList();
}

这是抛出一个错误 - 我相信实际上在实际的阅读器行之前有一个该行。

Header matching ['Account Id/Margin Id'] names at index 0 was not found.

如何设置才能正确读取文件?

【问题讨论】:

    标签: csvhelper


    【解决方案1】:

    第二次设置ShouldSkipRecord 时,您将覆盖第一个实例。你只需要这样做。

    csv.Configuration.ShouldSkipRecord = row => row[0].StartsWith("HEADER") || row[0].StartsWith("TRAILER");
    

    【讨论】:

      猜你喜欢
      • 2022-01-05
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多