我正在加载CVS文件以进行数据导入。这些文件来自各种来源,因此标头名称和位置经常在变化。我搜索并发现有用的库,例如CsvHelper & FileHelpers
问题:使用FileHelper.net或CsvHelper,我们如何提取标头名称和Column datatype
?,以便我可以创建下拉菜单对于每个列,在.NET类型<==>与SQL类型之间映射
答案 0 :(得分:1)
只需使用
读入文件的第一行string headers = File.ReadLines("MyFile.txt").First();
然后使用class builder构建所需的任何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");