首页 > 其他分享 >Net 按照列名的自定义顺序导出Excel

Net 按照列名的自定义顺序导出Excel

时间:2023-12-23 14:56:14浏览次数:48  
标签:set 自定义 get 导出 decimal Excel Net public

  • 第一步

    • 定义导出Excel的表头一个特性,继承自Attribute,包含列头的名字和列的顺序
    public class ExportHeaderAttribute : Attribute
    {
        public ExportHeaderAttribute(string name) : this(name, -1) { }
    
        public ExportHeaderAttribute(string name, short order)
        {
            Name = name;
            Order = order;
        }
    
        /// <summary>
        ///     列名称
        /// </summary>
        public string Name { get; }
        /// <summary>
        ///     列顺序
        /// </summary>
        public short Order { get; }
    }
    
  • 第二步

    • 在导出的Excel上面对应的model添加特性
    public class ExportModel
    {
        /// <summary>
        /// 宽度
        /// </summary>
        [ExportHeader("宽度", 1)]
        public decimal? Width { get; set; }
    
        /// <summary>
        /// 长度
        /// </summary>
        [ExportHeader("长度", 2)]
        public decimal? Length { get; set; }
    
        /// <summary>
        /// 数量
        /// </summary>
        [ExportHeader("数量",3)]
        public decimal? Count { get; set; }
    
        /// <summary>
        /// 重量
        /// </summary>
        [ExportHeader("重量", 4)]
        public decimal? Weight { get; set; }
    }
    
  • 第三步

    • 获取导出的model,并且按照特性排序
    var properties = typeof(T).GetProperties();
    var columns = properties.Select(x => new ColumnEntry
    {
        Property = x,
        Header = x.GetCustomAttribute<ExportHeaderAttribute>()
    })
    .Where(x => x.Header != null)
    .OrderBy(x => x.Header.Order)
    .ToList();
    
    
    
    public class ColumnEntry
    {
        public PropertyInfo Property { get; set; }
        public ExportHeaderAttribute Header { get; set; }
    }
    
  • 后面就是实际导出Excel的方法了,请自行参考

标签:set,自定义,get,导出,decimal,Excel,Net,public
From: https://www.cnblogs.com/eago/p/17923112.html

相关文章

  • 自定义消息转换器对请求报文的统一解密处理
    1.自定义拦截器Interceptorpackagecom.example.springbootdemo.config;importlombok.extern.slf4j.Slf4j;importorg.springframework.web.servlet.HandlerInterceptor;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;......
  • 一款基于.NET Core的快速开发框架、支持多种前端UI、内置代码生成器
    前言经常看到有小伙伴在技术群里问有没有什么好用且快速的开发框架推荐的,今天就给大家分享一款基于MITLicense协议开源、免费的.NETCore快速开发框架、支持多种前端UI、内置代码生成器、一款高效开发的利器:WalkingTec.Mvvm框架(简称WTM)。官方项目介绍WalkingTec.Mvvm框架(简称W......
  • java接口自动化测试实战002----测试数据封装及ExcelUtil优化
    一、利用testNG测试框架进行封装1、封装实现新建测试类,类中新增多个方法,每个方法存储一条测试数据并调用HttpUtl类中的doGet或doPost方法。缺点:代码复杂、繁琐,且不适用测试数据量大的情况。2、封装步骤(1)maven的pom.xml文件中添加testNG测试框架的依赖,如下所示:<!--https://......
  • Profinet转485modbus网关解决传输距离及数据丢失问题
    Profinet转485modbus网关解决传输距离及数据丢失问题Profinet转485modbus网关(XD-MDPN100/2000)是一款能够解决传输距离及数据丢失问题的设备。在现场应用中,数据的传输距离和数据丢失最为常见的问题。在现场添加Profinet转485modbus网关(XD-MDPN100/2000)即可解决传输距离近的问题......
  • 【内网渗透】隐藏cobaltstrike服务器—自定义证书+C2侧写
    简介自定义证书查看Cobaltstrike默认证书发现特征含有cobaltstrike关键字常用keytool命令查看证书文件:keytool-list-v-keystorexx.store修改证书密码:keytool-storepasswd-keystoretest.store修改alias别名:keytool-changealias-keystoretest.store-aliasso......
  • 将excel数据导入到SQL server数据库的详细过程
    原文链接:https://www.xjx100.cn/news/415146.html?action=onClick1.将要导入的excel表格数据如下,第一行数据默认为数据库表中的字段,所以这个必须要有,否则无法映射导入。如下图(只截部分数据) 2.打开MicrosoftSQLServerManagementStudio17数据库管理软件,选中要导入的mydb数......
  • spring项目中自定义注解
    使用BeanPostProcessorBeanPostProcessor是Spring框架提供的一个接口,用于在Spring容器中对Bean进行后处理。自定义注解后,可以实现一个BeanPostProcessor实现类,在BeanPostProcessor的postProcessAfterInitialization()方法中,使用ClassPathScanningCandidateResol......
  • pandas to_excel 添加一个新的工作表到存在的excel文件中
    EverytimeyouwanttosaveaPandasDataFrametoanExcel,youmaycallthisfunction:importosdefsave_excel_sheet(df,filepath,sheetname,index=False):#Createfileifitdoesnotexistifnotos.path.exists(filepath):df.to_excel(......
  • Camstar弹出自定义VP
    写在公共类里:  主页面代码如下: 按钮里写代码,或者某方法里写主页面的传递参数定义:  弹出页面如下:   弹出页面代码如下: ......
  • [问题记录] C# 使用NPOI操作Excel模版写入数据 - 生成文件打开时提示 "发现 XXX.xlsx
    解决方案:1.先确保原来的模版文件打开是正常的,没有提示要恢复2.用Office打开这个模版文件,另存为一个文件。用这个文件来作为模版使用。 问题描述:使用C#NPOI操作Excel模版(模版用office打开是正常的),写入数据,导出的文件打开时提示是否尝试恢复,点击“是”后,发现Excel内......