我正在使用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)跳过标题行的方法?
答案 0 :(得分:0)
您可以编写一个方法来打开文件,检查标题/修复它,然后保存到现在为现有流程做好准备的新文件。