CSV parser / reader для C#? [закрытый]
есть ли хорошая и бесплатная реализация парсера CSV, доступного по какой-то либеральной лицензии? Какой-то аналог SuperCSV для Java, возможно, порт?
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. Поэтому я также получаю парсер командной строки, реализацию репозитория среди прочего.