c# list<object>的数据怎么导出到excel 10

如图代码,最终返回list<object>,是ef框架的linq语句。我现在想导出到excel。请问该怎么实现?不要告诉我说写个for循环,多行多列给excel赋值,这让... 如图代码,最终返回list<object>,是ef框架的linq语句。我现在想导出到excel。请问该怎么实现?不要告诉我说写个for循环,多行多列给excel赋值,这让我感觉代码很差,可移植性更差,最好有个能直接转成datatable,或者直接导出的 展开
 我来答
nfteamo
2018-04-03 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:91
采纳率:100%
帮助的人:65.8万
展开全部
/// <summary>
///将list泛型数组转换成datatable
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="header"></param>
/// <returns></returns>
public static DataTable ListToDataTable<T>(List<T> list, string header)
{
string[] arrHeader = header.Split(',');
DataTable dt = new DataTable();
DataRow dr;
Boolean columnHeader = true;
foreach (T t in list)
{
Type ut = t.GetType();
PropertyInfo[] plist = ut.GetProperties();
dr = dt.NewRow();
foreach (var arr in arrHeader)
{
var name = arr.Split(':')[0];
var key = arr.Split(':')[1];
var isExist = plist.Where(w => w.Name == name).FirstOrDefault();
if (isExist == null) continue;
//填充列头
if (columnHeader)
{
if (!dt.Columns.Contains(key))
{
dt.Columns.Add(key);
}
}
Object value = ut.GetProperty(isExist.Name).GetValue(t, null);
dr[key] = value == null ? "" : value.ToString();
}
dt.Rows.Add(dr);
if (columnHeader)
{
columnHeader = false;
}
}
return dt;
}
追问
我list里面是object的类型的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱靠真00
2018-04-04
知道答主
回答量:56
采纳率:0%
帮助的人:3.1万
展开全部

你把list转换成datatable,然后用Spire导入,很简单,代码就几行:

//创建一个Excel文档  
Workbook workbook = new Workbook();  
   
//获取第一个工作表  
Worksheet sheet = workbook.Worksheets[0];  
   
//将datatable导入到工作表,数据从工作表的第一行第一列开始写入  
sheet.InsertDataTable(datatable, true, 1, 1);    
      
//保存文档  
workbook.SaveToFile("ImportToExcel.xlsx",ExcelVersion.Version2013);

代码是从这篇文章拷过来的:C# Excel数据导入和导出简单方案

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式