最近在项目中遇到需求 须要按照必定的模板导出数据
仍是直接上代码 这里贴一部分模板长什么样吧
前端
而后就是代码
大体就是找到模板
复制一份临时文件
而后修改临时文件而后导出数据app
代码以下code
string appRoot = AppContext.BaseDirectory; // 获取模板可是不能修改 string fileName = Path.Combine(appRoot, "customerTemplate.xlsx"); FileInfo file = new FileInfo(fileName); // 创造临时文件用于修改编辑,用模板的文件代替输出的文件 string temporaryName = Path.Combine(appRoot, "customer.xlsx"); //FileInfo tempoaryPrev = new FileInfo(temporaryName); FileInfo temporaryExcel = file.CopyTo(temporaryName, true);
这里是生成文件内容到代码
这里一次就只是生成一个文件
很简单的方法 可是不知足批量导出blog
using (ExcelPackage package = new ExcelPackage(temporaryExcel)){ ExcelWorksheet ws = package.Workbook.Worksheets[0]; //第一张表 ws.Cells["C3"].Value = cmCust.Customername;//表明C3这个单元格 ws.Cells["F3"].Value = cmCust.Customercode; ws.Cells["C4"].Value = salse; ws.Cells["F4"].Value = cmCust.Divisionname;//下面的也不一一贴出来了 稍微看一下就懂了 package.Save();//保存 })
生成文件返回带前端 前端直接下载就能够了string
var stream = File(fs, "application/octet-stream", $"customer{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");io
大体的方法就只有这么一点
具体的本身看着代码写个方法就好了
有什么写的不对的地方麻烦各位大佬指出模板
这是导出后的样子
stream