精细和快速的csv阅读器

时间:2010-11-24 20:17:07

标签: c# .net file csv

我使用的是Lumenworks CSV阅读器,我必须说到目前为止我对它的工作方式并不满意。

我在一小时内解析了数千个csv文件并且始终存在问题,要么抛出异常,抱怨错误记录,要么倾斜列等等。

你能推荐一款精美的CSV阅读器,它不一定是免费的,但没有错误。

谢谢。

6 个答案:

答案 0 :(得分:3)

FileHelpers开源库http://www.filehelpers.net/

答案 1 :(得分:3)

尝试CsvHelper(我维护的库)。它也可以在NuGet上使用。

答案 2 :(得分:1)

您引用的是从文件中收到异常等。虽然这些可能是不受欢迎的,你有没有调查原因?

您可能只想使用表中的一个当前解析器,并在发生异常时尝试替代或/并使用自定义代码处理方案。我知道这不是你想要的,但问题可能不是你正在使用的工具,而是工具正在接收的输入......

您还可以将有问题的文件移动到单独的目录(在代码中)以稍后查看并获取将处理的内容。

答案 3 :(得分:1)

.NET内置了一个CSV解析器。

来自http://coding.abel.nu/2012/06/built-in-net-csv-parser/

// TextFieldParser is in the Microsoft.VisualBasic.FileIO namespace.
using (TextFieldParser parser = new TextFieldParser(path))
{
    parser.CommentTokens = new string[] { "#" };
    parser.SetDelimiters(new string[] { ";" });
    parser.HasFieldsEnclosedInQuotes = true;

    // Skip over header line.
    parser.ReadLine();

    while (!parser.EndOfData)
    {
        string[] fields = parser.ReadFields();
        yield return new Brand()
        {
            Name = fields[0],
            FactoryLocation = fields[1],
            EstablishedYear = int.Parse(fields[2]),
            Profit = double.Parse(fields[3], swedishCulture)
        };
    }
}

答案 4 :(得分:0)

你必须检查输入文件。我认为这些工具不会停止格式检查,因为它们针对的是数量(浏览错误的数据来处理最大的文件)。 在现实世界中,您很少看到干净的CSV流。司机倾向于提供自己的类型:

- 没有引用

- 半结肠而不是逗号

产生错误的文件通常来自同一来源。

答案 5 :(得分:-1)

我使用它已经很长时间了,但是FileHelpers使用了很多选项来进行CSV解析。