c# - CsvHelper : 写作清单转为 CSV
问题描述
我想知道如何使用 CsvHelper 将列表写入 CSV。我已经看过这里了。
我在 CSV 类中有以下属性
public class CSV
{
public int? Id { get; set; }
public List<string> Header1 { get; set; }
public string Header2 { get; set; }
public string Header3 { get; set; }
public string Header4 { get; set; }
public long? Header5 { get; set; }
public long? Header6 { get; set; }
public long? Header7 { get; set; }
public string Header8 { get; set; }
public List<string> Header9 { get; set; }
public List<string> Header10 { get; set; }
public List<string> Header11 { get; set; }
}
写入 CSV
var records = new List<CSV>
{
new CSV { Header1 = new List<string>{ "value1", "value2" } }
};
using (var writer = new StreamWriter("path\\to\\file.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(records);
}
最终结果应该是这样的
Header1
value1,value2
任何帮助,将不胜感激。
解决方案
我猜你正在寻找这样的东西。这将从Header1
列表中创建一个逗号分隔的字符串。
public class Program
{
static void Main(string[] args)
{
var records = new List<CSV>
{
new CSV { Id = 1, Header1 = new List<string>{ "value1", "value2" } }
};
using (var csv = new CsvWriter(Console.Out, CultureInfo.InvariantCulture))
{
csv.Configuration.RegisterClassMap<CSVMap>();
csv.WriteRecords(records);
}
Console.ReadKey();
}
}
public class CSVMap : ClassMap<CSV>
{
public CSVMap()
{
AutoMap(CultureInfo.InvariantCulture);
Map(m => m.Header1).ConvertUsing(row => string.Join(",", row.Header1)).Index(0);
}
}
public class CSV
{
public int? Id { get; set; }
public List<string> Header1 { get; set; }
}
给你一个输出
Id,Header1
1,"value1,value2"
推荐阅读
- php - Header("location: $random_link") 重定向问题 PHP
- android - StreamBuilder 为每次更新构建两次快照
- php - 防止将重叠的时间戳范围插入数据库
- php - 有条件地将附加“meta_query”数组附加到 WP_Query 的最佳方法是什么
- android - 不能将模型实体用于房间。尝试了以下构造函数,但它们未能匹配
- javascript - 随机问题顺序
- graphql - GraphQL,Apollo 服务器联合模式
- php - 如何将新列数据保存到 laravel 数据透视表中?
- mysql - 如何确保多对多关系具有相同的外键
- c++ - 将 Win32 对话框中的图标设置为默认图标