如何在C#中验证CSV?

use*_*119 11 c# csv

.NET中是否有内置方法来验证csv文件/字符串?

我更喜欢这样的在线csv验证器,但在C#中.我做了一些研究,但我发现的只是人们自己编写代码的例子(例子都是几年前编写的,可能已经过时了).

POC:

bool validCSV = CoolCSV_ValidatorFunction(string csv/filePath);
Run Code Online (Sandbox Code Playgroud)

Jus*_* R. 15

有!由于某种原因,它隐藏在VB命名空间中,但它是.NET Framework的一部分,您只需要添加对Microsoft.VisualBasic程序集的引用.您正在寻找的类型是TextFieldParser.

以下是验证文件的示例:

using Microsoft.VisualBasic.FileIO;
...
var path = @"C:\YourFile.csv";
using (var parser = new TextFieldParser(path))
{
    parser.TextFieldType = FieldType.Delimited;
    parser.SetDelimiters(",");

    string[] line;
    while (!parser.EndOfData)
    {
        try
        {
            line = parser.ReadFields();
        }
        catch (MalformedLineException ex)
        {
            // log ex.Message
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这可以处理 CSV 的所有规则吗?(引号、嵌入逗号、换行符等) (2认同)
  • @JoeEnos它不会全部命中RFC 4180(的事实CSV标准),你需要配置解析器与您的数据的工作(例如,设置`parser.HasFieldsEnclosedInQuotes = TRUE;`),但除了一些真的有角落的情况,是的,它会处理换行符,嵌入式逗号等. (2认同)

Ken*_*ith 5

我发现的最好的 CSV 阅读器是来自 Lumenworks 的:

http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader

非常快,功能非常全。受到推崇的。