.Net按模板导出Excel

最近在项目中遇到需求 需要按照一定的模板导出数据
还是直接上代码 这里贴一部分模板长什么样吧

然后就是代码
大致就是找到模板
复制一份临时文件
然后修改临时文件然后导出数据

代码如下

        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);

这里是生成文件内容到代码
这里一次就只是生成一个文件
很简单的方法 但是不满足批量导出

           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();//保存

                  })

生成文件返回带前端 前端直接下载就可以了

var stream = File(fs, "application/octet-stream", $"customer{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");

大致的方法就只有这么一点
具体的自己看着代码写个方法就行了
有什么写的不对的地方麻烦各位大佬指出

这是导出后的样子

posted @ 2021-02-19 11:43  不拆家的小墨  阅读(496)  评论(1编辑  收藏  举报