Parsing Excel 2013 CSV解析算法错误?
我测试过的2013版Excel似乎可以解析格式错误的CSV文件,而不会出现错误/警告Parsing Excel 2013 CSV解析算法错误?,parsing,csv,excel-2013,textfieldparser,Parsing,Csv,Excel 2013,Textfieldparser,我测试过的2013版Excel似乎可以解析格式错误的CSV文件,而不会出现错误/警告 我已经创建了自己的库来解析CSV文件。为测试生成一个示例CSV文件,分号是分隔符: TEST_STRING;Field1 "Band "Radiohead" in the City Hall"; 根据CSV格式说明:2.7-我的测试文件在市政厅的第2行波段Radiohead中包含错误,因为内部双引号Radiohead没有以双引号作为前缀转义 在这种情况下,我的lib和它们都会引发异常。我使用的TextFiel
我已经创建了自己的库来解析CSV文件。为测试生成一个示例CSV文件,分号是分隔符:
TEST_STRING;Field1
"Band "Radiohead" in the City Hall";
根据CSV格式说明:2.7-我的测试文件在市政厅的第2行波段Radiohead中包含错误,因为内部双引号Radiohead没有以双引号作为前缀转义
在这种情况下,我的lib和它们都会引发异常。我使用的TextFieldParser的示例代码:
using (TextFieldParser parser = new TextFieldParser(@"d:\test_2.csv"))
{
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(";");
int lineNumber = 0;
while (!parser.EndOfData)
{
string[] fields = parser.ReadFields();
foreach (string field in fields)
{
//TODO: Process field
Console.WriteLine(field);
}
Console.WriteLine();
Console.WriteLine("line " + (++lineNumber) + ":");
}
}
例外是
但Excel 2013会打开测试文件,结果如下:
如果Excel是.CSV的默认程序,我是通过双击Windows资源管理器打开测试CSV文件,还是通过Excel 2013 Ribbon=>Data=>From Text中的向导导入测试CSV文件
在Excel中出现这种行为有什么原因吗?我已经创建了自己的库来解析CSV文件-为什么这一点可以忽略。FileHelpers库和TextFieldParser类请注意,该类来自Microsoft的.NET Framework,也会有所帮助。实际的问题是关于Excel的algo,以及为什么它处理CSV的方式不是规范所说的方式。