首页 > 编程语言 >c# 任意对象生成excel

c# 任意对象生成excel

时间:2024-04-23 16:36:02浏览次数:36  
标签:package c# excel ++ item var 任意 col row

 1         public static void ExportExcel<T>(List<T> ts,string filename)
 2         {
 3             var model = ts.FirstOrDefault();
 4             List<PropertyInfo> titles = model.GetType().GetProperties().ToList();
 5             using (ExcelPackage package = new ExcelPackage())
 6             {
 7                 // 添加一个工作表  
 8                 ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
 9                 // 获取第一行用于标题  
10                 int row = 1;
11                 // 对象的第一个元素的所有键,用作Excel的列标题  
12                 int col = 1;
13                 foreach (var title in titles)
14                 {
15                     worksheet.Cells[row, col].Value = title.Name;
16                     col++;
17                 }
18                 // 填充数据行,从第二行开始  
19                 row = 2;
20                 foreach (var item in ts)
21                 {
22                     col = 1;
23                     List<PropertyInfo> props = item.GetType().GetProperties().ToList();
24                     foreach (var prop in props)
25                     {
26                         worksheet.Cells[row, col].Value = prop.GetValue(item);
27                         col++;
28                     }
29                     row++;
30                 }
31                 // 保存Excel文件到磁盘  
32                 FileInfo excelFile = new FileInfo($"{model.GetType().Name}_{filename}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
33                 package.SaveAs(excelFile);
34             }
35         }

 

标签:package,c#,excel,++,item,var,任意,col,row
From: https://www.cnblogs.com/mingjing/p/18153141

相关文章

  • Fluent:Stiff chemistry solver
    适用场景在处理对流场中的化学反应速率敏感的问题时,可以在FLUENT中使用Stiffchemistrysolver。这类问题通常在燃烧模拟或类似涉及快速反应化学物质的场合中出现。具体含义IntegrationParameters:这部分涉及方法的选择ISAT:代表"InSituAdaptiveTabulation",这是一......
  • GRE隧道和ipsec隧道
    GRE隧道GRE隧道实现原理:GRE(通用路由封装)隧道的实现原理是通过在封装数据包的头部添加额外的信息来创建一个虚拟的点对点连接,从而在不同网络之间传输数据。下面是GRE隧道的基本实现原理:封装数据包:当数据包从源主机发送时,GRE路由器会接收该数据包,并在原始数据包的头部添加GRE......
  • GO中的sync.Cond
    条件变量是基于互斥锁的,它必须基于互斥锁才能发挥作用,条件变量的初始化离不开互斥锁,并且它的方法有点也是基于互斥锁的//使当前goroutine进入阻塞状态,等待其他goroutine唤醒func(c*Cond)Wait(){}//唤醒一个等待该条件变量的goroutine,如果没有goroutine在等待,则该方法会立......
  • 全民众测月开启!Comate来送钱了!
    在AIGC工具井喷爆发的时代,你是否缺少一款足够趁心的智能编码助手,让自己的开发效率大大提升?BaiduComate与CSDN联合,推出全民众测活动!BaiduComate智能编码助手是基于文心大模型打造的强大编码辅助工具,现已在全网免费开放使用!精通100+编程语言,支持VSCode、JetBrains全系列、Xcod......
  • 欧拉系统-安装Docker
    欧拉系统-安装Docker[toc]零、资料https://lab.huaweicloud.com/experiment-detail_2417?ticket=ST-92642093-vahMts7MDOKnplPdCsCFfCrs-sso一、步骤wgethttps://download.docker.com/linux/static/stable/x86_64/docker-18.09.9.tgztarzxfdocker-18.09.9.tgzmvd......
  • 古希腊掌管数据的神!铁威马全新SPC功能来袭!
    在数字世界的深处,铁威马全新操作系统TOS6如同一位强大的守护者,守护着无数珍贵的数据宝藏。而在这个守护者的队伍中,有一位特别的成员——SPC。它像是一位冷静而敏锐的守门人,时刻警惕着任何可能对数据安全造成威胁的入侵者。它的存在,让TOS6更加坚不可摧,为用户的数字生活提供了前......
  • JMeter通过JDBC链接数据库并实现批量造数据
      在JMeter做自动化接口测试,需要对数据库进行增删改查等操作时,我们是无法像navicat一样直接写SQL的,需要通过一系列操作,才可以。 1、首先,第一步就是,在TestPlan中引用对应数据库的jar包,jar包可以在网上找,本文以MySQL为例,步骤如下:   2、第二步,在线程组下面添加JDBCC......
  • Linux命令之查找CPU资源利用情况(lscpu和top详解)
    1.lscpu命令:获取CPU架构完整详细信息,例如架构信息,CPU模式,CPU频率,CPU核心数、线程数、缓存大小。在终端输入“lscpu”: 参数详解:【Architecture:x86_64】:架构信息,表示系统的CPU架构为x86_64,表示64位架构;【CPU op-mode(s):32-bit,64-bit】:CPU的运行模式,表示支持32位和64位......
  • 分类算法(Classification Algorithm)需求记录
    [toc]比如说,在WEB扫描器场景中。一个扫描器在扫描过程中,它可以自动识别接口类型并采用相应分类规则进行漏洞检测的算法,这种通常属于一种称为"智能扫描"(IntelligentScanning)或"漏洞扫描引擎"的技术。这些算法利用机器学习、深度学习和模式识别等技术,通过分析网络流量、响应内容......
  • Learning To Count Everything实验过程记录
    learntocounteverything实验过程及结果demo测试:36个橘子换examplebox:adapt之后:在不适应的情况下对验证拆分进行测试通过适应对val拆分进行测试官方模型的test训练152轮得到模型,然后进行test......