c# - 在 C# 中解析带有标题的 CSV 文件

标签 c# csv file-io io header

在 C# 中是否有默认/官方/推荐的方式来解析 CSV 文件?我不想推出自己的解析器。

此外,我还看到有人使用 ODBC/OLE DB 通过文本驱动程序读取 CSV,但由于其“缺点”,许多人不鼓励这样做。这些缺点是什么?

理想情况下,我正在寻找一种方法,通过它我可以按列名读取 CSV,使用第一条记录作为标题/字段名称。给出的一些答案是正确的,但基本上可以将文件反序列化为类。

最佳答案

CSV 解析器现在是 .NET Framework 的一部分。

添加对 Microsoft.VisualBasic.dll 的引用(在 C# 中工作正常,不要介意名称)

using (TextFieldParser parser = new TextFieldParser(@"c:\temp\test.csv"))
{
    parser.TextFieldType = FieldType.Delimited;
    parser.SetDelimiters(",");
    while (!parser.EndOfData)
    {
        //Process row
        string[] fields = parser.ReadFields();
        foreach (string field in fields)
        {
            //TODO: Process field
        }
    }
}

文档在这里 - TextFieldParser Class

附言如果您需要 CSV 导出器,请尝试 CsvExport (discl:我是贡献者之一)

关于c# - 在 C# 中解析带有标题的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081418/

相关文章:

csv - 无法通过Logstash加载CSV文件

python - 读取带有重复标题的 CSV 文件

c# - 使用 C++ 包装器时如何访问 C# .dll 属性

c# - .NET Core MVC Web 应用程序从查询字符串而不是模型获取值

python - 从 Python 中的字符串中删除奇怪的隐藏字符

c++ - 是否有任何头文件可以独立于平台读取文本文件?

java - 在Java中使用Windows资源管理器的 "Open File"函数

java - 列出 java 应用程序的所有文件和默认路径

c# - 找不到 Entity Framework 6 的兼容提供者

c# - 在 Web API 2 中返回一个字符串