解析.csv文件时跳过标题行

时间:2010-12-10 00:07:26

标签: .net csv streamreader

我正在使用StreamReader对象为LinqtoCSV库提供源数据。像这样......

CsvFileDescription fileDescription = new CsvFileDescription() 
{ 
            SeparatorChar = ';', 
            MaximumNbrExceptions = 20,                 
};  
        CsvContext context = new CsvContext();           
        System.IO.MemoryStream stream = new System.IO.MemoryStream(file.Data); 
        System.IO.StreamReader reader = new System.IO.StreamReader(stream); 
        rows = context.Read<T>(reader, fileDescription); 

我正在处理标题行中有额外半分号的csv文件,例如。

Header1; Header2;Header3;

这会触发错误,因为CSVtoLinQ库需要4个头名而不是3.我可以将选定的行读入IEnumerable对象,但我无法直接操作StreamReader对象的内容。我更喜欢继续使用StreamReader / LinqtoCSV的组合,因为它提供了许多验证功能,但由于文件头问题,我需要查看备选方案。

是否还有其他csv导入库在解析文件时提供(i)基于字段的验证(ii)跳过标题行的方法?

1 个答案:

答案 0 :(得分:0)

您可以编写一个方法来打开文件,检查标题/修复它,然后保存到现在为现有流程做好准备的新文件。