我正在使用 CsvHelper 库从 生成一个 CSV 文件IEnumerable<Person>,其中Person是一个基本类。
public class Person
{
public string DisplayName { get; set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要写带引号的标题,即不是“DisplayName”,结果文件中的列应该是“Display Name”。
我怎样才能做到这一点?
创建一个ClassMap.
void Main()
{
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
using (var reader = new StreamReader(stream))
using (var csv = new CsvWriter(writer))
{
var records = new List<Person>
{
new Test { DisplayName = "one", Age = 1},
new Test { DisplayName = "two", Age = 2 },
};
csv.Configuration.RegisterClassMap<PersonMap>();
csv.WriteRecords(records);
writer.Flush();
stream.Position = 0;
Console.WriteLine(reader.ReadToEnd());
}
}
public class Person
{
public string DisplayName { get; set; }
public int Age { get; set; }
}
public sealed class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Map(m => m.DisplayName).Name("Display Name");
Map(m => m.Age);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Display Name,Age
one,1
two,2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2699 次 |
| 最近记录: |