热门标签 | 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 

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


推荐阅读
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文详细介绍了Java中的访问器(getter)和修改器(setter),探讨了它们在保护数据完整性、增强代码可维护性方面的重要作用。通过具体示例,展示了如何正确使用这些方法来控制类属性的访问和更新。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
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社区 版权所有