C# web实现下载文件(一)

9 篇文章 0 订阅
2 篇文章 0 订阅

C# web实现下载文件(一)

比较简单的一种方法,前台放一个用于下载的按钮,如图:
下载
样式我用的是ElementUI,文字加图标就很合适了。

<el-button type="primary" @click="onDownload">导出<i class="el-icon-download el-icon--right"></i></el-button>

Controller层的导出代码:
1.通过Sql语句获得需要的DataTable形式的数据

    var sel = @"SELECT Emp AS '序号',[Name] AS '姓名',Sex AS '性别',Department AS '部门',Office AS '科室',EmpType AS '人员分类',SysJob AS '系统岗位',Job AS '实际岗位',JobInfo AS '岗位性质',IntoTime AS '上班日期',Attendance AS '出勤情况',WorkTime AS '上班时长',StartTime AS '起始时间',EndTime AS '结束时间',OffTime AS '请假天数'  FROM [EMSME].[dbo].[TB_HUMAN_RESOURCES] WITH(NOLOCK) WHERE Emp LIKE '%" + emp + "%' AND Department LIKE '%" + part + "%' AND Attendance LIKE '%" + status + "%' AND Class LIKE '%" + clas + "' AND Office LIKE '%" + office + "%'";
    var conn = @"server=XX.XX.XX.XX,1433;Initial Catalog=XX;Persist Security Info=True;User ID=xx;password=xxx";
    var dt = SqlHelper.GetDataTable(conn, sel);

SqlHelper类见前文—>Sql工具类
2.设置文件存储目录和文件模板目录。(不需要模板的文件下载后续会更新)

string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Doc\xx\");
var temppath = Path.Combine(Path.Combine(path, DateTime.Now.ToString("yyyy\\\\MM\\\\dd")));
var filename = string.Format(@"xx_{0}.xlsx", DateTime.Now.ToString("yyyyMMdd"));
string fullFileName = Path.Combine(temppath, filename);
var rq = DateTime.Now.Day.ToString();
string filePath = Path.Combine(Server.MapPath("/"), @"Doc\模板\employee_" + rq + ".xlsx");

注意一定要添加下列代码,不然会报错。(Error Saving 或 IO Exception)

if (!Directory.Exists(temppath))
{
    Directory.CreateDirectory(temppath);
}
if (System.IO.File.Exists(fullFileName))
{
    System.IO.File.Delete(fullFileName);
}

3.后台获取前台传过来的数据,放一个例子

string emp = Request.Params["id"].Trim();

4.生成文件

using (var package = new ExcelPackage(new FileInfo(fullFileName), new FileInfo(filePath)))
{
    var currentSheet = package.Workbook.Worksheets;
    rq += "号";
    var summaryWorksheet = currentSheet[rq];
    summaryWorksheet.Cells[2, 1].LoadFromDataTable(dt, false);
    package.Save();
}

5.返回文件

return File(fullFileName, "application/vnd.ms-excel", filename);

需要添加的引用

using OfficeOpenXml;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值