0

Excel(我已经测试过 2013 版)似乎可以解析格式错误的 CSV 文件而没有错误/警告。

我创建了自己的用于解析 CSV 文件的库。制作了一个用于测试的示例 CSV 文件(分号是分隔符):

TEST_STRING;Field1
"Band "Radiohead" in the City Hall";

根据 CSV 格式说明:https ://www.rfc-editor.org/rfc/rfc4180#page-2 (#2.7) -- 我的测试文件在第 2 行包含错误(市政厅的“乐队”无线电头) ) 因为内部双引号(“Radiohead”)没有用双引号转义(前缀)。

在这种情况下,我的 lib 和TextFieldParser 类都引发异常。我使用的 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 会打开测试文件,结果如下:

在此处输入图像描述

我是通过在 Windows 资源管理器中双击打开测试 CSV 文件(如果 Excel 是 .CSV 的默认程序),还是通过 Excel 2013 中的向导(功能区 => 数据 => 从文本)导入测试 CSV 文件。

Excel中有这种行为的原因吗?

4

0 回答 0