簡體   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