CsvHelper 用引号包裹所有值
Posted
技术标签:
【中文标题】CsvHelper 用引号包裹所有值【英文标题】:CsvHelper wrap all values with quotes 【发布时间】:2019-05-28 11:39:04 【问题描述】:我正在使用 CsvHelper 我需要用引号将所有值括起来。 这可能吗?
数据 = 是一个列表
using (StreamWriter textWriter = new StreamWriter(path))
textWriter.BaseStream.Write(p, 0, p.Length);
// var dt = new DataTable();
var csv = new CsvWriter(textWriter);
csv.WriteRecords(Data);
textWriter.Flush();
textWriter.Close();
谢谢
【问题讨论】:
【参考方案1】:有一个名为 ShouldQuote
的配置值,您可以在其中确定字段级别是否应被引用。
void Main()
var records = new List<Foo>
new Foo Id = 1, Name = "one" ,
new Foo Id = 2, Name = "two" ,
;
using (var writer = new StringWriter())
using (var csv = new CsvWriter(writer))
csv.Configuration.ShouldQuote = (field, context) => true;
csv.WriteRecords(records);
writer.ToString().Dump();
public class Foo
public int Id get; set;
public string Name get; set;
输出:
"Id","Name"
"1","one"
"2","two"
【讨论】:
谢谢!它可以与您的工具中的 CsvReader 一起使用吗? @Stu_Dent 不确定你的意思。【参考方案2】:从 25.0.0 版到现在,实现方式是:
var config = new CsvConfiguration(CultureInfo.InvariantCulture)
ShouldQuote = args => true
;
【讨论】:
【参考方案3】:只需要添加一个配置对象。像这样
CsvHelper.Configuration.CsvConfiguration config = new CsvHelper.Configuration.CsvConfiguration();
config.QuoteAllFields = true;
var csv = new CsvWriter(textWriter, config);
【讨论】:
以上是关于CsvHelper 用引号包裹所有值的主要内容,如果未能解决你的问题,请参考以下文章
ognl用法 取变量时候 需要在变量前面加上# 取字符串需要用单引号包裹字符串