пропустить строку заголовка при разборе файла .csv - PullRequest
0 голосов
/ 10 декабря 2010

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

Вы можете написать метод, который открывает файл, проверяет заголовок / исправляет его, а затем сохраняет в новый файл, который теперь готов для существующего процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...