c# csvhelper 写入复杂数据
c# csvhelper writing complex data
我有以下对象结构并尝试使用 csvhelper 写入 csv。但是文件名列没有被添加。
public class ClusterData
{
public IEnumerable<string> FileName { get; set; }
public int? ClusterNumber { get; set; }
public string TopTerm { get; set; }
}
using (var writer = new StreamWriter(@"C:\Clean.csv"))
{
var csv = new CsvWriter(writer);
csv.WriteHeader<ClusterData>();
foreach (var item in dataToCsv)
{
foreach (var filename in item.FileName)
{
csv.WriteField(filename);
csv.WriteField(item.ClusterNumber);
csv.WriteField(item.TopTerm);
csv.NextRecord();
}
}
writer.Flush();
}
如何实现?我希望对文件名中的每个项目重复一次外循环和重复内循环。
谢谢
提取需要的数据,然后使用写入器将其发送到文件
using (var writer = new StreamWriter(@"C:\Clean.csv")) {
var data = new List<ClusterData>();
//...assuming data is poulated
var dataToCsv = data.SelectMany(item => item.FileName.Select(filename => new {
FileName = filename,
ClusterNumber = item.ClusterNumber,
TopTerm = item.TopTerm
}));
var csv = new CsvWriter(writer);
csv.WriteRecords(dataToCsv);
}
使用 linq 查询为数据中的每个文件名构造所需的对象格式。
然后数据会像通常使用 CsvWriter
一样转换为 CSV
我有以下对象结构并尝试使用 csvhelper 写入 csv。但是文件名列没有被添加。
public class ClusterData
{
public IEnumerable<string> FileName { get; set; }
public int? ClusterNumber { get; set; }
public string TopTerm { get; set; }
}
using (var writer = new StreamWriter(@"C:\Clean.csv"))
{
var csv = new CsvWriter(writer);
csv.WriteHeader<ClusterData>();
foreach (var item in dataToCsv)
{
foreach (var filename in item.FileName)
{
csv.WriteField(filename);
csv.WriteField(item.ClusterNumber);
csv.WriteField(item.TopTerm);
csv.NextRecord();
}
}
writer.Flush();
}
如何实现?我希望对文件名中的每个项目重复一次外循环和重复内循环。
谢谢
提取需要的数据,然后使用写入器将其发送到文件
using (var writer = new StreamWriter(@"C:\Clean.csv")) {
var data = new List<ClusterData>();
//...assuming data is poulated
var dataToCsv = data.SelectMany(item => item.FileName.Select(filename => new {
FileName = filename,
ClusterNumber = item.ClusterNumber,
TopTerm = item.TopTerm
}));
var csv = new CsvWriter(writer);
csv.WriteRecords(dataToCsv);
}
使用 linq 查询为数据中的每个文件名构造所需的对象格式。
然后数据会像通常使用 CsvWriter