党费收缴管理系统(十七)导出缴纳数据到Excel

本文介绍了如何利用C#和NPOI库将EntityFramework查询得到的数据按照特定需求格式化后导出到Excel,包括创建工作簿、设置表头和填充数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本篇文章主要讲解如何将EF查询出来的数据,按照自己得需求导出到Excel的思路和实现的代码


一、需要引入的包

        NuGet搜索NPOI,安装引入即可,好像以前做java操作Excel也是用的apache的这个包

二、定义一个ExcelHeader类

        这个类的主要作用就是Excel的表头中文以及我们党费缴纳流水类对应的属性,以我需要导出党费收入的表为例:       

 public static Dictionary<string, string> ShouKuanHeader = new Dictionary<string, string> {
    { "Tujing","途径"},{ "Fashengshijian","发生时间"},{ "Zhibu","党支部"},{ "Jiaonaren","缴纳人"},{ "Jiaonanianfen","缴纳年份"},{"Jiaonajidu","缴纳季度" },{ "Yuedu","月度"}, {"Shourujine","收入金额" },{ "Dangbanbeizhu","备注"}
};

        在类中定义一个静态的字典属性, key就是党费流水类的属性, value是中文名称,用于表示表头.不要喷我,我很多都是用的拼音,哈哈哈哈哈.

三、导出Excel的具体实现方法

 HSSFWorkbook excelBook = new HSSFWorkbook(); //创建工作簿Excel
 NPOI.SS.UserModel.ISheet sheet1 = excelBook.CreateSheet("党费收款流水");
 NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);//创建第一行
   int i = 0;
   foreach (var s in ExcelHeader.ShouKuanHeader)   //循环把表头写入到第一行对应单元格
   {
       row1.CreateCell(i).SetCellValue(s.Value);
       i++;
   }
   i = 0;
 foreach (var k in res)   //res是EF查询出来的需要导出的流水
 {
     NPOI.SS.UserModel.IRow row = sheet1.CreateRow(i + 1);
     int j = 0;
     foreach (var s in ExcelHeader.ShouKuanHeader)
     {
         row.CreateCell(j).SetCellValue(k.GetType().GetProperty(s.Key).GetValue(k).ToString());
         j++;
     }
     i++;
 }

 MemoryStream bookStream = new MemoryStream();//创建文件流

 excelBook.Write(bookStream); //文件写入流(向流中写入字节序列)

 bookStream.Seek(0, SeekOrigin.Begin);//输出之前调用Seek,把0位置指定为开始位置

 return File(bookStream, "application/vnd.ms-excel", $"党费收款流水-{startDate}-{endDate}.xlsx");//最后以文件形式返回


总结:

通过NPOI导出Excel是相对比较容易的。先定义一个工作簿,然后创建一个页签,通过row和cell来定位到具体的单元格,对单元来进行内容的填充。我这里实现简单的导出即可,所以就没有涉及到单元格样式的设置等更高级的操作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT大灰狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值