考虑这个文件:
"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(); DataTable将只包含一行具有下列值的行:
{object[2]}
[0]: "firstName\",lastName\r\nfn1,ln1\r\nfn2\r\nfn3,ln3\r\nfn4,ln4\r\n"
[1]: "default first name"我真的不明白FieldQuoted属性是什么,不管有没有它,我都会得到相同的结果,不管我把引号放在文件的什么地方
编辑:如果我使用
"firstName“、lastName fn1、ln1 fn2 fn3、ln3 fn4、ln4
它忽略引号,这是可以的
但是如果我使用
""firstName"",""lastName""
fn1,ln1
fn2
fn3,ln3
fn4,ln4我得到了第一行的结果
[0]: "firstName\"\""
[1]: "lastName\"\""发布于 2013-01-24 20:40:47
尝试使用FieldQuoted属性。
[FieldQuoted('"', QuoteMode.AlwaysQuoted, MultilineMode.NotAllow)]您可能需要尝试这些设置,described here。
发布于 2013-01-24 20:36:40
您的输入数据无效。至少在引用方面是这样的。CSV中的字段只能在双引号("")和引号内包含嵌入的引号,也可以包含嵌入的换行符。
这就是你在这里看到的。firstName后面的两个引号是嵌入引号的,并且由于您从不用另一个引号结束带引号的字段,因此整个文件将被解析,就好像它是一个单独的字段一样。
https://stackoverflow.com/questions/14501495
复制相似问题