前台代码:
前台代码是在.net core bootstrap集成框架上的(这是效果浏览地址:http://core.jucheap.com),首先是添加Nuget包,
<button id="btnExport" type="button" class="btn btn-info " onclick="exportModel()"><i class="fa fa-paste"></i> 导出Excel</button> function exportModel() { //导出 ???????????var delDatas = JucheapGrid.GetDataTableDeleteData(); ???????????if (delDatas.Len > 0 && delDatas.Data.length > 0) { ???????????????if (confirm("确认要导出这" + delDatas.Len + "条数据?")) {
?????????????????????????// ?delDatas.Data ?传入的id值 ??????????????????????????????????????????????????????????????window.location.href = "/***/***?id=" + delDatas.Data; ???????????????} ???????????} else { ???????????????alert("请选择要导出的数据!"); ???????????} ???????}
下面就是控制器代码:
??#region 导出Excel.xlsx文件 ???????public IActionResult ExportText() ???????{ ???????????string sWebRootFolder = _hostingEnvironment.WebRootPath; ???????????string sFileName = $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.xlsx"; ???????????FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName)); ???????????if (file.Exists) ???????????{ ???????????????file.Delete(); ???????????????file = new FileInfo(Path.Combine(sWebRootFolder, sFileName)); ???????????} ???????????using (ExcelPackage package = new ExcelPackage(file)) ???????????{ ??????????????string str = Request.Query["id"];//获取传过来的id ???????????????String[] str1 = str.Split(","); ???????????????long[] ids = new long[str1.Length]; ???????????????for (int i = 0; i < str1.Length; i++) ???????????????{ ???????????????????ids[i] = long.Parse(str1[i]);//装成long数组 ???????????????} ????????????//根据id在数据库获取集合 ???????????????IList<FeedbackDto> collection = _usermanagementservice.GetExportAsync(ids); ???????????????// 添加worksheet ???????????????ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("意见反馈列表"); ???????????????worksheet.Cells[1, 1].Value = "***";//这的*号表示的是导出后列的名称 ???????????????worksheet.Cells[1, 2].Value = "***"; ???????????????worksheet.Cells[1, 3].Value = "***"; ???????????????worksheet.Cells[1, 4].Value = "*** "; ???????????????worksheet.Cells[1, 5].Value = "***"; ???????????????worksheet.Cells[1, 6].Value = "***"; ???????????????worksheet.Cells[1, 7].Value = "***"; ???????????????worksheet.Cells[1, 8].Value = "***"; ???????????????worksheet.Cells[1, 1].Style.Font.Bold = true; ???????????????worksheet.Cells[1, 2].Style.Font.Bold = true; ???????????????worksheet.Cells[1, 3].Style.Font.Bold = true; ???????????????worksheet.Cells[1, 4].Style.Font.Bold = true; ???????????????worksheet.Cells[1, 5].Style.Font.Bold = true; ???????????????worksheet.Cells[1, 6].Style.Font.Bold = true; ???????????????worksheet.Cells[1, 7].Style.Font.Bold = true; ???????????????worksheet.Cells[1, 8].Style.Font.Bold = true; ???????????????for (int i = 0; i < collection.Count; i++) ???????????????{ ???????????????????worksheet.Cells[2 + i, 1].Value = collection[i].*;//这的*是字段名 ???????????????????worksheet.Cells[2 + i, 2].Value = collection[i].*; ???????????????????worksheet.Cells[2 + i, 3].Value = collection[i].*; ???????????????????worksheet.Cells[2 + i, 4].Value = collection[i].*; ???????????????????worksheet.Cells[2 + i, 5].Value = collection[i].*; ???????????????????worksheet.Cells[2 + i, 6].Value = collection[i].*; ???????????????????worksheet.Cells[2 + i, 7].Value = collection[i].CreateTime.ToString();//日期tostring一下,不然是乱的 ???????????????????worksheet.Cells[2 + i, 8].Value = collection[i].UpdateTime.ToString(); ???????????????} ???????????????package.Save(); ???????????} ??????????????????????return File(sFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", sFileName); ???????}
新手代码,大神勿喷,
.NET Core 通过EPPlus批量导出
原文地址:https://www.cnblogs.com/wuyabaibsd/p/9266612.html