MiniExcel模板填充Excel导出

目录

1.官方文档

[2. 把要导出的数据new一个匿名对象](#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

cs 复制代码
// 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一个匿名对象

cs 复制代码
 var value = new
 {
     list = query,
     ReceivableAmount = receivableAmount,
     FeeAmount = feeAmount,
     TransactionAmount = transactionAmount,
     ReceivedAmount = receivedAmount,
 };

3.导出

cs 复制代码
//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);
cs 复制代码
//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

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

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

5.模板制作

6.结果

相关推荐
山甫aa30 分钟前
JavaWeb后端开发学习手册
java·开发语言·数据库·学习·mysql·springboot·web
zlinear数据采集卡34 分钟前
数据采集卡从入门到精通(42):项目实战三——设备预测性维护系统,从布点到预警
开发语言·单片机·嵌入式硬件·安全·fpga开发
csdn_aspnet39 分钟前
C# 高效便利的处理数据
开发语言·windows·c#
Chester_19991 小时前
CSP202209.B何以包邮?
c语言·开发语言
caimouse1 小时前
ReactOS 窗口系统分析(13):滚动条 — scrollbar.c + scrollex.c
c语言·开发语言·reactos
Sagittarius_A*1 小时前
【好靶场】PHP反序列化入门练习2
开发语言·web安全·信息安全·php·代码审计·反序列化
zh_xuan1 小时前
个人主页左侧菜单支持分组,以及菜单显示和隐藏
前端·javascript·css
NoteStream1 小时前
MATLAB绘制带置信区间的折线散点图(科研绘图模板)
开发语言·matlab
Ming_studying1 小时前
HTML + CSS + JavaScript实现可视化JSON工具:格式化、折叠、搜索与错误定位
javascript·css·html·json·数据可视化·web工具
tianyu2342 小时前
Java 正则表达式终极指南:从 Pattern 到 Matcher,从双重转义到性能优化,一篇全搞定
java·开发语言·正则表达式·group·find·pattern·matcher