Excel导入与导出

TC0920 / 2023-08-25 / 原文

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         }