Csharp/C#教程:将模型导出到DataTable分享


将模型导出到DataTable

我想将我的Model数据转换为DataSetDataTable (以excel格式导出)

 db.EMPs.ToList() 

dbDataContextEMPsdataclass

如何将此列表导出到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

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐