文件助手引用问题
本文关键字:问题 引用 文件 | 更新日期: 2023-09-27 17:55:33
考虑这个文件:
"firstName"",lastName
fn1,ln1
fn2
fn3,ln3
fn4,ln4
是否有可能忽略所有引号?这是我的代码:
[DelimitedRecord(",")]
public partial class Person
{
//[FieldQuoted]
private string firstName;
[FieldNullValue("default first name")]
//[FieldQuoted]
private string lastName;
[FieldNotInFile]
private string city;
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
public string City
{
get { return city; }
set { city = value; }
}
}
ExcelStorage provider = new ExcelStorage(typeof(Person));
provider.FileName = "data.csv";
System.Data.DataTable datTable = provider.ExtractRecordsAsDT();
数据表将仅包含具有以下值的 1 行:
{object[2]}
[0]: "firstName'",lastName'r'nfn1,ln1'r'nfn2'r'nfn3,ln3'r'nfn4,ln4'r'n"
[1]: "default first name"
我真的不明白 FieldQuote 属性是什么,无论有没有它,无论我在文件中的哪个位置放置引号,我都会得到相同的结果
编辑:如果我使用
"名字",姓氏FN1,LN1FN2FN3,LN3FN4,LN4
它忽略引号,这没关系
但是如果我使用
""firstName"",""lastName""
fn1,ln1
fn2
fn3,ln3
fn4,ln4
我在第一行得到这个结果
[0]: "firstName'"'""
[1]: "lastName'"'""
尝试使用 FieldQuoted
属性。
[FieldQuoted('"', QuoteMode.AlwaysQuoted, MultilineMode.NotAllow)]
您可能需要尝试此处所述的设置。
您的输入数据无效。至少,关于报价。CSV 中的字段只有在加倍 (""
) 且在引号内时才能包含嵌入引号,并且它们也可以包含嵌入的换行符。
这正是你在这里看到的。firstName
后面的两个引号是嵌入的引号,由于您从不使用另一个引号关闭带引号的字段,因此整个文件被解析为单个字段。