为什么我的 CSV 文件中有引号?
Why do I have quotes in CSV File?
用这段代码我想写 header:
const string Header = "Name;Date";
using (var writer = new StreamWriter(path))
{
var csvWriter = new CsvWriter(writer);
csvWriter.Configuration.Delimiter = ";";
csvWriter.WriteField(Header);
csvWriter.NextRecord();
...
在它之后打开文件:
"Name;Date"
我想要的:
Name;Date
当您想在单个字段的文本中包含分隔符时,CSV 中的引号有助于消除歧义。例如,如果我使用常规 CSV(以逗号作为分隔符),其中一个字段可能是地址。但是如果我的地址是 12 Some Street, Amazing Town
,那么我就不能存储 "as is" - 逗号会让任何解析器认为地址是 12 Some Street
,而 next 字段是 Amazing Town
。因此,如果要存储的值包含分隔符或换行符(出于类似原因,但是:下一条记录),引号用于告诉它你的意思。
在你的情况下,你的分隔符是 ;
并且值包含 ;
- 所以是的,它需要引号。我怀疑你实际上是想写两个 headers,一个Name
,一个Date
。例如:
csvWriter.WriteField("Name");
csvWriter.WriteField("Date");
csvWriter.NextRecord();
用这段代码我想写 header:
const string Header = "Name;Date";
using (var writer = new StreamWriter(path))
{
var csvWriter = new CsvWriter(writer);
csvWriter.Configuration.Delimiter = ";";
csvWriter.WriteField(Header);
csvWriter.NextRecord();
...
在它之后打开文件:
"Name;Date"
我想要的:
Name;Date
当您想在单个字段的文本中包含分隔符时,CSV 中的引号有助于消除歧义。例如,如果我使用常规 CSV(以逗号作为分隔符),其中一个字段可能是地址。但是如果我的地址是 12 Some Street, Amazing Town
,那么我就不能存储 "as is" - 逗号会让任何解析器认为地址是 12 Some Street
,而 next 字段是 Amazing Town
。因此,如果要存储的值包含分隔符或换行符(出于类似原因,但是:下一条记录),引号用于告诉它你的意思。
在你的情况下,你的分隔符是 ;
并且值包含 ;
- 所以是的,它需要引号。我怀疑你实际上是想写两个 headers,一个Name
,一个Date
。例如:
csvWriter.WriteField("Name");
csvWriter.WriteField("Date");
csvWriter.NextRecord();