C#_.NetFramework_Web项目_EXCEL数据导出 C#_.NetCor
发布时间:2020-12-16 08:57:38 所属栏目:asp.Net 来源:网络整理
导读:【推荐阅读我的最新的Core版文章,是最全的介绍: C#_.NetCore_Web项目_EXCEL数据导出 】 ? 项目需引用NPOI的NuGet包: ? A-2: EXCEL数据导出--Web项目--C#代码导出: /// summary /// EXCEL帮助类 /// /summary /// typeparam name="T"泛型类/typeparam //
【推荐阅读我的最新的Core版文章,是最全的介绍:C#_.NetCore_Web项目_EXCEL数据导出】 ? 项目需引用NPOI的NuGet包: ? A-2:EXCEL数据导出--Web项目--C#代码导出: /// <summary> /// EXCEL帮助类 /// </summary> /// <typeparam name="T">泛型类</typeparam> /// <typeparam name="TCollection">泛型类集合</typeparam> public class ExcelHelp<T,TCollection> where T : new() where TCollection : List<T>,new() { //http请求Request对象 public static HttpRequest baseRequest = HttpContext.Current.Request; //http请求Response对象 public static HttpResponse baseResponse = HttpContext.Current.Response;/// <summary> /// 将数据导出EXCEL /// </summary> /// <param name="columnNameAndShowNameDic">列名+显示名</param> /// <param name="tColl">数据集(tColl里的类属性名必须和字典中的列名一致)</param> public static void ExportExcelData(Dictionary<string,string> columnNameAndShowNameDic,TCollection tColl) { WorkBook workbook = WorkBook.CreateNew(); WorkSheet worksheet = workbook.Sheets["sheet1"]; List<string> columnNameList = columnNameAndShowNameDic.Keys.ToList(); List<string> showNameList = columnNameAndShowNameDic.Values.ToList(); //暂定26行 string[] zm = new string[] { "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z" }; //设置首列显示 for (var i = 0; i < columnNameList.Count; i++) { worksheet.Cells[zm[i] + "1"].Value = showNameList[i]; //加粗 worksheet.Cells[zm[i] + "1"].Style.Font.Bold = true; } for (int i = 0; i < tColl.Count; i++) { for (int j = 0; j < columnNameList.Count; j++) { worksheet.Cells[zm[j] + (i + 2)].Value = getPropertyValue(tColl[i],columnNameList[j]); } } byte[] buffer = workbook.SaveAsBytes(); baseResponse.Clear(); baseResponse.Buffer = true; baseResponse.ContentEncoding = System.Text.Encoding.UTF8; //baseResponse.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; baseResponse.ContentType = "application/vnd.ms-excel"; //设置导出文件名 baseResponse.AddHeader("content-disposition","attachment; filename=" + "MaintainReport" + ".xlsx"); baseResponse.AddHeader("Content-Length",buffer.Length.ToString()); baseResponse.BinaryWrite(buffer); baseResponse.Flush(); baseResponse.End(); } /// <summary> /// 获取属性值 /// </summary> /// <param name="t">T对象实例</param> /// <param name="propertyName">属性名</param> /// <returns></returns> public static string getPropertyValue(T t,string propertyName) { PropertyInfo info = t.GetType().GetProperty(propertyName); //获取属性值转换暂设置如下字段,可根据实际情况添加 if (info.PropertyType == typeof(DateTime)) { return Convert.ToDateTime(info.GetValue(t)).ToString("yyyy-MM-dd HH:mm"); } return info.GetValue(t).ToString(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何跳过ActionFilter的操作执行?
- 最好的ASP.net WYSIWYG
- asp.net-web-api – 在WebApi和MVC项目之间共享SignalR集线
- asp.net – 如何从Web应用程序中的客户端计算机获取AD凭据?
- asp.net – 什么Jenkins插件可以用于.NET网站部署?
- 实体框架 – 使用ASP.NET Web API和实体框架进行API版本控制
- asp.net-mvc-4 – ASP.NET MVC中WebForms的Master Page代码
- asp.net – 编码HTML页面标题的正确方法
- asp.net – MVC [HandleError] HandleErrorAttribute在使用
- asp.net-mvc – 为什么.NET在MVC asp.net应用程序中生成两个
推荐文章
站长推荐
热点阅读