CSV Parser, как автоматически определять имена и типы столбцов - PullRequest
0 голосов
/ 24 октября 2018

Я загружаю файлы CVS для импорта данных.Файлы приходят из разных источников , поэтому имена и расположение заголовков часто меняются. Я искал и нашел полезные библиотеки, такие как CsvHelper & FileHelpers

Вопрос : либо используя FileHelper.net или CsvHelper, как извлечь имена заголовков и Column datatype? , чтобы я мог создать перетаскивание для каждого столбца в map междуТип .NET <==> для типа SQL

1 Ответ

0 голосов
/ 05 ноября 2018

Просто прочитайте в первой строке файла, скажем,

string headers = File.ReadLines("MyFile.txt").First();

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

DelimitedClassBuilder cb = new DelimitedClassBuilder("MyProduct", delimiter: ",");

cb.AddField("Name", typeof(string));
cb.LastField.TrimMode = TrimMode.Both;

cb.AddField("Description", typeof(string));
cb.LastField.FieldQuoted = true;
cb.LastField.QuoteChar = '"';
cb.LastField.QuoteMode = QuoteMode.OptionalForBoth;

// etc... e.g., add a date field
cb.AddField("SomeDate", typeof(DateTime));

engine = new FileHelperEngine(cb.CreateRecordClass());

DataTable dt = engine.ReadFileAsDT("test.txt");
...