CSV parser / reader для C#? [закрытый]


есть ли хорошая и бесплатная реализация парсера CSV, доступного по какой-то либеральной лицензии? Какой-то аналог SuperCSV для Java, возможно, порт?

6 88

6 ответов:

есть хорошая реализация на CodeProject:

чтобы дать больше земных чисел, с файлом CSV 45 MB, содержащим 145 полей и 50 000 записей, читатель обрабатывал около 30 МБ/с. Так что в целом, это заняло 1,5 секунды! Спецификации машины были P4 3.0 GHz, 1024 MB.

вы можете загрузить CSV-файл в DataTable.

пример кода:

static DataTable CsvToDataTable(string strFileName)
{
    DataTable dataTable = new DataTable("DataTable Name");

    using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Directory.GetCurrentDirectory() + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\""))
    {
        conn.Open();
        string strQuery = "SELECT * FROM [" + strFileName + "]";
        OleDbDataAdapter adapter = 
            new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
        adapter.Fill(dataTable);
    }
    return dataTable;
}

убедитесь, что вы скомпилировали свой проект на x86 процессор. Это не работает для 64.

попробовать filehelpers работать удивительно хорошо. Я использую его для разбора файла 100 МБ каждый день.

вы пробовали библиотеку FileHelpers? Это бесплатно, с открытым исходным кодом и может быть использован для анализа файлов CSV.

Я начал использовать CSV парсер, который является частью CommonLibrary.NET.

Он использует .NET 3.5, имеет простой API и удобные перегрузки/методы и lamda для итераций.

У меня нет никаких тестов для этого, как указано выше, но хорошая вещь в том, что это всего лишь один компонент библиотеки, похожей на Java Commons. Поэтому я также получаю парсер командной строки, реализацию репозитория среди прочего.