此問題特定于 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
錯誤因閱讀器配置而異
閱讀本文的正確配置是什么?
uj5u.com熱心網友回復:
這是處理其中一種情況的錯誤(即帶有引號的標題 - 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385959.html
