繁体   English   中英

尝试使用 csvHelper 读取带有嵌入式引号的 csv 文件

[英]Trying to read a csv file with embedded quotes using csvHelper

下面是我必须阅读和解析的一小段 CSV 文件。 我不知道它是如何创建的,据说它是一个有效的 CSV 文件。 使用 CSVHelper 它正在执行配置中的 BadDataExceptionHandler 设置

field1,field2,field3,field4
6/22/2020,7"X8.5"SIGNTYPE2.L,*299334,7"X8.5"SIGNTYPE2.L
7/30/2020,OMTOTE,GS350006,OMTOTE

如果我将原始文件提交给在线 CSV linter,它会抱怨 CSV 内容的结构不好。

如果我在 Excel 中打开这个文件,它不会给我一个例外,电子表格看起来像上面的记录。 但是,如果我将文件另存为 *.csv,则新文件的双引号会像这样转义。

  6/22/2020,"7""X8.5""SIGNTYPE2.L",*299334,"7""X8.5""SIGNTYPE2.L"

我试图设置 Configuration.IgnoreQuotes = true,但这会引发“System.IndexOutOfRangeException:'Index 超出数组范围。'”异常。

有没有办法使用 csvHelper 成功处理文件?

我已经用 Microsoft Excel 保存并打开了数据,它运行良好 所以试试这个 Instal LumenWorksCsvReader

Install-Package LumenWorksCsvReader -Version 4.0.0

并将您的文件读为

           using (CsvReader csv = new CsvReader(new StreamReader(csvFile), true))
            {
                csv.DefaultParseErrorAction = ParseErrorAction.RaiseEvent;
                int fieldCount = csv.FieldCount;
                string[] lines = csv.GetFieldHeaders();

                while (csv.ReadNextRecord())
                {
                    List<string> rowData= new List<string>();
                    for (int i = 0; i < fieldCount; i++)
                    {
                        rowData.Add(csv[i]);
                    }
                }
             }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM