将模型导出到DataTable
我想将我的Model数据转换为DataSet
或DataTable
(以excel格式导出)
db.EMPs.ToList()
db
是DataContext
, EMPs
是dataclass
。
如何将此列表导出到DataTable
,我可以将行导出到excel但是如何从标题中访问列名(不应在DataTable
手动添加列名)
您可以使用ToDataTable
扩展方法,但需要先安装MoreLinq 。 要安装MoreLINQ
,请在程序包管理器控制台中运行以下命令:
PM> Install-Package morelinq
然后将以下行添加到using
指令:
using MoreLinq;
最后你可以使用ToDataTable
扩展方法:
DataTable s = db.EMPs.ToDataTable();
要快速创建可在Excel中读取的文件,可以使用LINQ将内容映射到逗号分隔值列表,然后将数组保存到文件流中。
var records = db.EMP .ToList() .Select(record => $""{record.stringField}",{record.numberField}") .ToArray(); File.WriteAllLines("file.csv", records);
使用MoreLinq
是将类转换为DataTable
的最佳方法,如S.Akbari所述。以下是我通过使用System.Reflection
实现此目的的另一种方法
上述就是C#学习教程:将模型导出到DataTable分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
List list= db.EMPs.ToList(); DataTable dt = new DataTable(); PropertyInfo[] Props = typeof(EMP).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo prop in Props) { //Setting column names as Property names dt.Columns.Add(prop.Name); } foreach (EMP e in list) { var values = new object[Props.Length]; for (int i = 0; i < Props.Length; i++) { //inserting property values to datatable rows values[i] = Props[i].GetValue(e, null); } dt.Rows.Add(values); }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1004931.html