【发布时间】:2019-01-21 10:22:26
【问题描述】:
我正在尝试使用 CsvHelper 将一些数据输出到 CSV 文件。以下CSVExport 的每个实例对应一行。每行可能有不同数量的列,因为Stores 的长度可能不同。该映射适用于前三个属性(CurrencyCode、StoreCode、OutletTradingName),但我遇到了List<Stores> Stores 的问题。
我目前收到以下错误消息,代码如下:
{"Converting IEnumerable types is not supported for a single field. If you want to do this, create your own ITypeConverter and register it in the TypeConverterFactory by calling AddConverter."}
关于如何解决此问题的任何建议?
写入 csv 文件的 C# 代码:
var memoryStream = new System.IO.MemoryStream();
var streamWriter = new System.IO.StreamWriter(memoryStream);
using (var csvWriter = new CsvWriter(streamWriter))
{
csvWriter.Configuration.RegisterClassMap<CSVExportMap>();
csvWriter.WriteRecords(csvExport);
streamWriter.Flush();
}
映射:
public sealed class CSVExportMap : CsvClassMap<CSVExport>
{
public CSVExportMap()
{
Map(m => m.CurrencyCode).Name("Outlet Currency").Default("Not available.");
Map(m => m.StoreCode).Name("Store No.").Default("Not available.");
Map(m => m.OutletTradingName).Name("Outlet Trading Name").Default("Not available.");
// if I comment this line out, I get no error but no list of stores
Map(m => m.Stores).ConvertUsing( row => new List<Stores> { row.GetRecord<Stores>() } );
}
}
我正在尝试输出到 CSV 文件的类:
public class CSVExport
{
public string StoreCode { get; set; }
public string OutletTradingName { get; set; }
public string CurrencyCode { get; set; }
public List<Stores> Stores { get; set; }
}
public class Stores
{
public string Name { get; set; }
public string StoreCode { get; set; }
public string ID { get; set; }
}
【问题讨论】:
标签: c# csv export-to-csv csvhelper