Мне пришлось использовать FileHelpers.RunTime
и DelimitedClassBuilder
для создания DataTable
из файла. Вот мой метод. Если у меня будет больше времени, я объясню это лучше.
private static DataTable CreateDataTableFromFile(byte[] importFile) {
var cb = new DelimitedClassBuilder("temp", ",") { IgnoreFirstLines = 0, IgnoreEmptyLines = true, Delimiter = "," };
var ms = new MemoryStream(importFile);
var sr = new StreamReader(ms);
var headerArray = sr.ReadLine().Split(',');
foreach (var header in headerArray) {
cb.AddField(header, typeof(string));
cb.LastField.FieldQuoted = true;
cb.LastField.QuoteChar = '"';
}
var engine = new FileHelperEngine(cb.CreateRecordClass());
return engine.ReadStreamAsDT(sr);
}
Очевидно, что наряду с другой логикой, имеющей место в этом методе, происходит много проверок, но сейчас у меня не так много времени, чтобы погрузиться в него. Надеюсь, это поможет!