热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

netcorewebAPINOPI导出Excel封装

使用方法分三步1.定义导出的实体类模板2.将需要导入Excel的字段打上【DisplayName】特性3.调用方法注意:有个巨坑,如果你用的sw

使用方法分三步

1.定义导出的实体类模板

2.将需要导入Excel的字段打上 【DisplayName】特性

3.调用方法

注意:有个巨坑,如果你用的swagger调来调去,文件都打不开,不是损坏就是各种理由不给你打开,那么恭喜你,你已入坑,文件下载,常规做法:不能使用AJAX请求,得使用浏览器输入地址,全局下载


封装函数1

优势:

1.适配所有导出模板

2.只需定义好类,打上DisplayName即可完成导入数据

使用技术:泛型,反射,NOPI

public static MemoryStream ListToExcel(List data){// 2007版本string sheetName = "sheet";bool isColumnWritten = true;IWorkbook workbook = new XSSFWorkbook();try{var sheet = workbook.CreateSheet(sheetName);ICellStyle s = workbook.CreateCellStyle();s.FillForegroundColor = HSSFColor.BlueGrey.Index;s.FillPattern = FillPattern.SolidForeground;var count = 0;var list = new List();//标题PropertyInfo[] properties = typeof(T).GetProperties();if (isColumnWritten){var row = sheet.CreateRow(0);for (int j = 0; j 0){var displayName = ((DisplayNameAttribute)attrs[0]).DisplayName;row.CreateCell(list.Count()).SetCellValue(displayName);row.GetCell(list.Count()).CellStyle = s;list.Add(item.Name);}}count = 1;}else{count = 0;}if (data.Count > 0){//数据for (var i = 0; i c.Name == p).FirstOrDefault();var value = Properties.GetValue(itemData)?.ToString();row.CreateCell(iCell).SetCellValue(value);}++count;}}else{var row = sheet.CreateRow(count);for (int iCell = 0; iCell

使用教学

1.写好类

public class A{///

/// 这个字段会导入Excel中/// [DisplayName("我是A.a")]public int a { get; set; }public int b { get; set; }public int c { get; set; }}

2.调用

net Core下的使用
var list = new List();
var ms = ExcelHelper.ListToExcel
(list);
例子:
var ms = ExcelHelper.ListToExcel(result);
return File(ms, "application/vnd.ms-excel", "order.xlsx");//net Framework下的使用
var ms = Utility.ListToExcel(list);
result.COntent= new StreamContent(ms);
result.Content.Headers.COntentType= new MediaTypeHeaderValue("application/vnd.ms-excel");
result.Content.Headers.COntentDisposition= new ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentDisposition.FileName = "设备运行统计" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";

3.打开你的Excel 

各位大佬,纯粹自己封装,方便下次使用,不喜勿喷哈哈哈!!!


推荐阅读
author-avatar
手机用户2602905667
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有