当前位置: 首页 > news >正文

MiniExcel模板填充Excel导出

目录

1.官方文档 

2. 把要导出的数据new一个匿名对象

3.导出

4.注意事项

5.模板制作

6.结果 


1.官方文档 

https://gitee.com/dotnetchina/MiniExcel/#%E6%A8%A1%E6%9D%BF%E5%A1%AB%E5%85%85-excel

// 1. By POCO
var value = new
{Name = "Jack",CreateDate = new DateTime(2021, 01, 01),VIP = true,Points = 123
};
MiniExcel.SaveAsByTemplate(path, templatePath, value);// 2. By Dictionary
var value = new Dictionary<string, object>()
{["Name"] = "Jack",["CreateDate"] = new DateTime(2021, 01, 01),["VIP"] = true,["Points"] = 123
};
MiniExcel.SaveAsByTemplate(path, templatePath, value);

2. 把要导出的数据new一个匿名对象

 var value = new{list = query,ReceivableAmount = receivableAmount,FeeAmount = feeAmount,TransactionAmount = transactionAmount,ReceivedAmount = receivedAmount,};

3.导出

//IWebHostEnvironment 提供对应用的环境信息访问,包括网站根目录和内容根目录
IWebHostEnvironment webHostEnvironment (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment));//生成动态文件名
string sFileName = $"{"文件路径"}{DateTime.Now:MM-dd-HHmmss}.xlsx";//拼接目标文件路径 D:\your_project\wwwroot\export\文件路径06-15-113045.xlsx
string path = Path.Combine(webHostEnvironment.WebRootPath, "export", sFileName);//拼接模板文件路径
var templatePath = Path.Combine(webHostEnvironment.WebRootPath, "export", "收支明细.xlsx");//确保文件路径所在的目录存在
Directory.CreateDirectory(Path.GetDirectoryName(path));//根据指定的模板文件路径和提供的数据,将数据保存到目标文件路径path
MiniExcel.SaveAsByTemplate(path, templatePath, value);//浏览器右上角下载
return ExportExcel(path, sFileName);
//ExportExcel方法详解
protected IActionResult ExportExcel(string path, string fileName)
{//将文件流作为HTTP响应返回给客户端,通常用于文件下载。var stream = ff.File.OpenRead(path); //MIME类型,指定返回文件的类型。这里表示的是Excel文件(.xlsx),对文件名进行URL编码,以确保文件名在URL中正确传输,避免因特殊字符导致的问题。return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", HttpUtility.UrlEncode(fileName));
}

4.注意事项

        1.把要导出的属性加上ExcelColumn

 [ExcelColumn(Name = "交易类型")]public string transType { get; set; }

      2.模板导出时一定要,自己首先做好模板的样式,保存在上面的templatePath中。

5.模板制作

6.结果 

http://www.lqws.cn/news/183601.html

相关文章:

  • MySQL用户和授权
  • Excel 模拟分析之单变量求解简单应用
  • <2>-MySQL库的操作
  • daz3d + PBRSkin (MDL)+ SSS
  • 全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
  • 边缘计算网关提升水产养殖尾水处理的远程运维效率
  • Nestjs框架: nestjs-schedule模块注册流程,源码解析与定时备份数据库
  • 智能终端与边缘计算按章复习
  • 多模态+空间智能:考拉悠然以AI+智慧灯杆,点亮城市治理新方式
  • Git 操作
  • 学习 React【Plan - June - Week 1】
  • 智能化弱电工程项目管理培训
  • 掌握子网划分:优化IP分配与管理
  • 使用React+ant Table 实现 表格无限循环滚动播放
  • 智能对联网页小程序的仓颉之旅
  • JAVA理论-JAVA基础知识
  • 中国制造名牌剃须刀:优质之选,情礼佳物
  • 中小制造企业的数字化转型,如何控制工业软件应用成本?
  • 中国移动6周年!
  • 手写muduo网络库(零):多线程中使用 weakptr 跨线程监听生命状态
  • 智绅科技 —— 智慧养老 + 数字健康,构筑银发时代安全防护网
  • 微算法科技(NASDAQ:MLGO)基于信任的集成共识和灰狼优化(GWO)算法,搭建高信任水平的区块链网络
  • K8S认证|CKS题库+答案| 3. 默认网络策略
  • 郑州工程技术学院赴埃文科技开展访企拓岗促就业活动
  • 第三方测试机构进行科技成果鉴定测试有什么价值
  • JeecgBoot低代码管理平台
  • 沙市区举办资本市场赋能培训会 点赋科技分享智能消费新实践
  • 超大规模芯片验证:基于AMD VP1902的S8-100原型验证系统实测性能翻倍
  • 因泰立科技H1X激光雷达:因泰立科技为智慧工业注入新动力
  • Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战