首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ReadStreamAsDT - filehelpers和C# -如何使用Filehelpers动态读取CSV?

ReadStreamAsDT - filehelpers和C# -如何使用Filehelpers动态读取CSV?
EN

Stack Overflow用户
提问于 2011-01-03 23:27:21
回答 2查看 3.9K关注 0票数 2

我正在尝试通过FileHelpers动态读取CSV,并将CSV数据作为数据表进行处理。我的CSV文件将不会相同。它们将具有不同的列标题和不同数量的列。我使用的是ReadStreamAsDT方法,但它似乎仍然需要一个结构化的类来初始化FileHelperEngine。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-18 21:58:34

我必须使用FileHelpers.RunTimeDelimitedClassBuilder从该文件创建DataTable。这是我的方法。如果我有更多的时间,我会解释得更好。

代码语言:javascript
代码运行次数:0
运行
复制
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);
}

显然,围绕这个方法有很多验证和其他逻辑发生,但我现在没有太多的时间深入研究它。希望这能有所帮助!

票数 4
EN

Stack Overflow用户

发布于 2011-11-18 03:27:45

你试过使用http://www.codeproject.com/KB/database/CsvReader.aspx吗?你可以利用这个库的解析。它既快又可靠。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4585726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档