【问题标题】:CSV quoted values with line break inside dataCSV 引用的值在数据内带有换行符
【发布时间】:2022-01-20 16:02:45
【问题描述】:

这个问题是 ChoETL CSV 阅读器特有的

举个例子

"Header1","Header2","Header3"
"Value1","Val
ue2","Value3"

(记事本++截图)

  • 所有标题和值都被引用
  • “Value2”中有换行符

我一直在使用 ChoETL 选项,但无法使用:

   foreach (dynamic e in new
                ChoCSVReader(@"test.csv")
                .WithFirstLineHeader()
                .MayContainEOLInData(true)
                .MayHaveQuotedFields()

                //been playing with these too
                //.QuoteAllFields()
                // .ConfigureHeader(c => c.IgnoreColumnsWithEmptyHeader = true)
                //.AutoIncrementDuplicateColumnNames()
                //.ConfigureHeader(c => c.QuoteAllHeaders = true)
                //.IgnoreEmptyLine()

                )
            {
                System.Console.WriteLine(e["Header1"]);
            }

这失败了:

Missing 'Header2' field value in CSV file

错误因阅读器配置而异

阅读本文的正确配置是什么?

【问题讨论】:

  • Cinchoo 在这里发帖,所以我相信你会在某个时候获得一些见解;在此期间,如果它很紧迫,也许可以克隆源代码并将其作为参考添加到您的项目中,然后您可以介入并调试它。我经常用各种库来做这件事,而且总是很有启发性.. :)
  • 查看这个问题的答案。它涉及通过删除记录中的换行符将数据清理为正确的格式:stackoverflow.com/questions/51658524/…
  • @Zserbinator 换行符是数据的一部分
  • 什么是.MayHaveQuotedFields() 的默认设置,当您不提供任何参数时,我的意思是您的情况不应该是.MayHaveQuotedFields(true) 吗?

标签: c# csv text choetl


【解决方案1】:

这是处理其中一种情况的错误(即带有引号的标题 - csv2 文本)。应用修复。拿 ChoETL.NETStandard.1.2.1.35-beta1 包试试看。

string csv1 = @"Header1,Header2,Header3
""Value1"",""Val
ue2"",""Value3""";

string csv2 = @"""Header1"",""Header2"",""Header3""
""Value1"",""Val
ue2"",""Value3""";

string csv3 = @"Header1,Header2,Header3
Value1,""Value2"",Value3";

using (var r = ChoCSVReader.LoadText(csv1)
    .WithFirstLineHeader()
    .MayContainEOLInData(true)
    .QuoteAllFields())
    r.Print();

using (var r = ChoCSVReader.LoadText(csv2)
    .WithFirstLineHeader()
    .MayContainEOLInData(true)
    .QuoteAllFields())
    r.Print();

using (var r = ChoCSVReader.LoadText(csv3)
    .WithFirstLineHeader()
    .MayContainEOLInData(true)
    .QuoteAllFields())
    r.Print();

小提琴样例:https://dotnetfiddle.net/VubCDR

【讨论】:

    猜你喜欢
    • 2021-03-24
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    相关资源
    最近更新 更多