分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

.net core 基于NPOI 的excel导出类,支持自定义导出哪些字段

发布时间:2023-09-06 01:11责任编辑:胡小海关键词:excel
/// <summary> ?????????/// 导出Excel ?????????/// </summary> ?????????/// <param name="lists"></param> ?????????/// <param name="head">英文中文列名对照</param> ?????????/// <param name="workbookFile">保存路径</param> ?????????public static void getExcel<T>(List<T> lists, Dictionary<string,string> head, string workbookFile) ???????{ ???????????try ???????????{ ???????????????XSSFWorkbook workbook = new XSSFWorkbook(); ???????????????using (MemoryStream ms = new MemoryStream()) ???????????????{ ???????????????????var sheet = workbook.CreateSheet(); ???????????????????var headerRow = sheet.CreateRow(0); ???????????????????bool h = false; ???????????????????int j = 1; ???????????????????Type type = typeof(T); ???????????????????PropertyInfo[] properties = type.GetProperties(); ???????????????????foreach (T item in lists) ???????????????????{ ???????????????????????var dataRow = sheet.CreateRow(j); ???????????????????????int i = 0; ???????????????????????foreach (PropertyInfo column in properties) ???????????????????????{ ???????????????????????????if (!h) ???????????????????????????{ ???????????????????????????????if (head.Keys.Contains(column.Name)) ???????????????????????????????{ ???????????????????????????????????headerRow.CreateCell(i).SetCellValue(head[column.Name] == null ? column.Name : head[column.Name].ToString()); ???????????????????????????????????dataRow.CreateCell(i).SetCellValue(column.GetValue(item, null) == null ? "" : column.GetValue(item, null).ToString()); ???????????????????????????????} ???????????????????????????????else ???????????????????????????????{ ???????????????????????????????????i -= 1; ???????????????????????????????} ???????????????????????????} ???????????????????????????else ???????????????????????????{ ???????????????????????????????if (head.Keys.Contains(column.Name)) ???????????????????????????????{ ???????????????????????????????????dataRow.CreateCell(i).SetCellValue(column.GetValue(item, null) == null ? "" : column.GetValue(item, null).ToString()); ???????????????????????????????} ???????????????????????????????else ???????????????????????????????{ ???????????????????????????????????i -= 1; ???????????????????????????????} ???????????????????????????} ???????????????????????????i++; ???????????????????????} ???????????????????????h = true; ???????????????????????j++; ???????????????????} ??????????????????????????????????????workbook.Write(ms); ???????????????????using (FileStream fs = new FileStream(workbookFile, FileMode.Create, FileAccess.Write)) ???????????????????{ ???????????????????????byte[] data = ms.ToArray(); ???????????????????????fs.Write(data, 0, data.Length); ???????????????????????fs.Flush(); ???????????????????} ???????????????????sheet = null; ???????????????????headerRow = null; ???????????????????workbook = null; ???????????????} ???????????} ???????????catch (Exception ee) ???????????{ ???????????????string see = ee.Message; ???????????} ???????}

  

.net core 基于NPOI 的excel导出类,支持自定义导出哪些字段

原文地址:http://www.cnblogs.com/hzzxq/p/7531790.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved