Есть ли хорошая и свободная реализация парсера CSV, доступного по какой-то либеральной лицензии? Какой-то аналог SuperCSV для Java, возможно, порт?
CSV парсер/считыватель для С#?
Ответ 1
Ответ 2
Там хорошая реализация на CodeProject:
Чтобы дать больше номера земли, с CSV файлом 45 МБ, содержащим 145 полей и 50 000 записей, читатель обрабатывал около 30 МБ/сек. Так что в целом, потребовалось 1,5 секунды! Характеристики машины были P4 3,0 ГГц, 1024 МБ.
Ответ 3
Вы можете загрузить 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. Он не работает для x64.
Ответ 4
попробуйте filehelpers Работайте отлично. Я использую его для разбора файла размером 100 МБ каждый день.
Ответ 5
Вы пробовали библиотеку FileHelpers? Он бесплатный, с открытым исходным кодом и может использоваться для разбора CSV файлов.
Ответ 6
Я начал использовать CSV Parser, который является частью CommonLibrary.NET.
Он использует .NET 3.5, имеет простой API и удобные перегрузки/методы и lamda для итераций.
У меня нет никаких эталонных тестов для этого, как описано выше, но приятно, что это всего лишь один компонент библиотеки, подобный Java Commons. Поэтому я также получаю синтаксический анализатор командной строки, реализацию репозитория, между прочим.