Я использую объект 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) средство пропуска строки заголовка?