【发布时间】:2020-11-28 03:07:57
【问题描述】:
我正在尝试从我从数据库中检索到的列表中构建一个简单的用户数据 csv。当我运行代码时,读取的 csv.WriteRecods(data) 崩溃了 “TypeConverterException:单个字段不支持转换 IEnumerable 类型。”
var mem = new MemoryStream();
var writer = new StreamWriter(mem);
var csv = new CsvWriter(writer, CultureInfo.CurrentUICulture);
var data = myList.Select(x =>
{
dynamic item = new ExpandoObject();
var dict = item as IDictionary<string, object>;
dict["DisplayName"] = x.User.DisplayName;
dict["Email"] = x.User.Email;
return dict;
}).ToList();
csv.WriteRecords(data);
writer.Flush();
mem.Seek(0, SeekOrigin.Begin);
return File(mem, "text/csv", $"Test_{DateTime.Now.ToString("yyyy-MM-dd_HHmmss")}.csv");
过去我在 VS 中使用 CsvHelper v12 nuget 包用于 Net Core,但从未遇到过这个问题。我只是在较新的 V15 中发现此问题,但由于应用程序的其他部分使用该包,我无法降级到 v12。
【问题讨论】:
-
我正在努力解决这个问题...所以您正在尝试编写一个 CSV,其中一行是包含单个字典的单个元素?您能否向我们展示您希望实现的 CSV 输出?也许有更好的方法来做你想做的与 v15 兼容的事情
标签: c# visual-studio asp.net-core .net-core