прекрасный и быстрый читатель csv - PullRequest
1 голос
/ 24 ноября 2010

Я использую Lumenworks CSV Reader, и я должен сказать, что я не очень доволен тем, как он работает до сих пор.

Я анализирую тысячи CSV-файлов в течение часа, и всегда есть проблема, либовыдает исключение с жалобой на плохие записи или перекос столбцов и т. д.

Можете ли вы порекомендовать хороший CSV-ридер, он не обязательно должен быть бесплатным, но без ошибок.

Спасибо.

Ответы [ 6 ]

3 голосов
/ 22 февраля 2011

Попробуйте CsvHelper (библиотека, которую я поддерживаю). Он также доступен на NuGet.

3 голосов
/ 24 ноября 2010

FileHelpers с открытым исходным кодом http://www.filehelpers.net/

1 голос
/ 06 февраля 2013

В .NET встроен синтаксический анализатор CSV.

С http://coding.abel.nu/2012/06/built-in-net-csv-parser/:

// TextFieldParser is in the Microsoft.VisualBasic.FileIO namespace.
using (TextFieldParser parser = new TextFieldParser(path))
{
    parser.CommentTokens = new string[] { "#" };
    parser.SetDelimiters(new string[] { ";" });
    parser.HasFieldsEnclosedInQuotes = true;

    // Skip over header line.
    parser.ReadLine();

    while (!parser.EndOfData)
    {
        string[] fields = parser.ReadFields();
        yield return new Brand()
        {
            Name = fields[0],
            FactoryLocation = fields[1],
            EstablishedYear = int.Parse(fields[2]),
            Profit = double.Parse(fields[3], swedishCulture)
        };
    }
}
1 голос
/ 24 ноября 2010

Вы указываете, что получаете исключения и тому подобное из файлов. Хотя это может быть нежелательным, вы исследовали причину?

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

Вы также можете переместить поврежденный файл в отдельный каталог (в коде), чтобы посмотреть чуть позже и получить то, что будет обрабатываться, обрабатываться.

0 голосов
/ 27 ноября 2010

Вы должны проверить входные файлы. Я думаю, что эти инструменты не останавливаются при проверке формата, потому что они стремятся к количеству (пропуская ошибочные данные, чтобы обработать максимум файлов).В реальном мире вы редко видите поток чистой CSV.Драйверы, как правило, задают свой собственный вид:

-нет кавычек

-полу двоеточие вместо запятой

Файлы, которые генерируют ошибки, обычно приходят из одного источника.

0 голосов
/ 24 ноября 2010

Прошло много времени с тех пор, как я его использовал, но FileHelpers выполняет анализ CSV с большим количеством опций.

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