NET Core导出Excel表格
1、首先用到Get包
NPOI
2、命名空间
using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel;
3、
[HttpGet]
public IActionResult Excelexport(){ var lifetimeScop = Container.BeginLifetimeScope(); ICraftsmanService service = lifetimeScop.Resolve(); var query = service.Postlist(o => true).ToList(); //var currentUseId = User.FindFirst("sub").Value; var currentUseId = "craftsman"; var rootPath = "/Upload/DownloadXls"; if (System.IO.Directory.Exists(rootPath) == false)//判断指定的文件夹是否存在 System.IO.Directory.CreateDirectory(rootPath);//创建指定路径的文件夹 var newFile = rootPath + "/" + currentUseId + ".xls"; if (System.IO.File.Exists(newFile))//判断文件是否存在 { System.IO.File.Delete(newFile);//存在删除 } using (var fs = new FileStream(newFile, FileMode.Create, FileAccess.Write)) { //HSSFWorkbook workbook = new HSSFWorkbook();.xls(选用xls的话,最后返回下载的后缀名改为xls) XSSFWorkbook workbook = new XSSFWorkbook();//.xlsx,(推荐xlsx,2007版本以上都是xlsx的) var sheet = workbook.CreateSheet("orders"); var header = sheet.CreateRow(0); header.CreateCell(0).SetCellValue("证书类型"); header.CreateCell(1).SetCellValue("姓名"); header.CreateCell(2).SetCellValue("性别"); header.CreateCell(3).SetCellValue("学历"); header.CreateCell(4).SetCellValue("手机号"); header.CreateCell(5).SetCellValue("身份证号"); header.CreateCell(6).SetCellValue("户籍地址"); header.CreateCell(7).SetCellValue("常住地址"); header.CreateCell(8).SetCellValue("头像"); header.CreateCell(9).SetCellValue("身份证正面"); header.CreateCell(10).SetCellValue("身份证反面"); header.CreateCell(11).SetCellValue("所属乡镇"); header.CreateCell(12).SetCellValue("证书链接"); header.CreateCell(13).SetCellValue("证书编号"); header.CreateCell(14).SetCellValue("证书有效期"); var rowIndex = 1; for (int i = 0; i < query.Count; i++) { var datarow = sheet.CreateRow(rowIndex); datarow.CreateCell(0).SetCellValue(query[i].CertificateType); datarow.CreateCell(1).SetCellValue(query[i].CraftsmanName); datarow.CreateCell(2).SetCellValue(query[i].CraftsmanSex); datarow.CreateCell(3).SetCellValue(query[i].CraftsmanEducation); datarow.CreateCell(4).SetCellValue(query[i].CraftsmanPhone); datarow.CreateCell(5).SetCellValue(query[i].IdCard); datarow.CreateCell(6).SetCellValue(query[i].HjAddress); datarow.CreateCell(7).SetCellValue(query[i].CzAddress); datarow.CreateCell(8).SetCellValue(query[i].CraftsmanUrl); datarow.CreateCell(9).SetCellValue(query[i].IcFrontUrl); datarow.CreateCell(10).SetCellValue(query[i].IcBackUrl); datarow.CreateCell(11).SetCellValue(query[i].Township); datarow.CreateCell(12).SetCellValue(query[i].CertificateUrl); datarow.CreateCell(13).SetCellValue(query[i].CertificateId); datarow.CreateCell(14).SetCellValue(query[i].CertificateTimes); rowIndex++; } workbook.Write(fs); } var memory = new MemoryStream(); using (var stream = new FileStream(newFile, FileMode.Open)) { stream.CopyTo(memory);//从一个流写入另一个流 } memory.Position = 0;//设置流的当前位置 return return File(memory, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "工匠信息.xlsx");
}