Excel导入与导出
1、下载NuGet包
2、在API中创建一个文件夹,写一个Excel模版
3、在浏览器查看,需要使用中间件UseStaticFiles
4、在控制器中书写导入、导出方法;代码如下所示:
1 /// <summary> 2 /// Excel导入 3 /// </summary> 4 /// <returns></returns> 5 [HttpPost] 6 public IActionResult ImportExcel() 7 { 8 try 9 { 10 var IsOk = false; 11 var formFile = HttpContext.Request.Form.Files[0]; 12 13 //内存流--在内存当中开辟一块空间 14 using MemoryStream stream = new MemoryStream(); 15 //将文件流 导入到内存当中 16 formFile.CopyTo(stream); 17 var list = stream.Query<RoleModel>(); 18 foreach (var item in list.ToList()) 19 { 20 IsOk = true; 21 RoleRepository.Add(item); 22 } 23 return Ok(IsOk); 24 } 25 catch (Exception) 26 { 27 throw; 28 } 29 }
1 /// <summary> 2 /// Excel导出 3 /// </summary> 4 /// <returns></returns> 5 [HttpGet] 6 public IActionResult ExportExcel() 7 { 8 //获取所有数据 9 var list = RoleRepository.GetAll().ToList(); 10 //在内存中当开辟空间 11 var memoryStream = new MemoryStream(); 12 //将数据写到内存当中 13 memoryStream.SaveAs(list); 14 //从0的位置开始写入 15 memoryStream.Seek(0, SeekOrigin.Begin); 16 //返回文件流 //格式是Excel格式 17 return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") 18 { 19 FileDownloadName = "文件名称.xlsx" 20 }; 21 }