.NetCore WebAPI 导入、导出Excel文件 导入

发布时间 2023-08-25 21:22:19作者: 花开富贵-
先下载一个NuGet包

 在接口写方法

//导入

[HttpPost]
[Route("Import")]
public IActionResult ImportExcel() //IFormFile formFile
{
try
{
var formFile = HttpContext.Request.Form.Files[0];
////获取当前程序的根目录 d:\\八维
//var dir = AppDomain.CurrentDomain.BaseDirectory;
////获取文件名
////11.xlsx
//var fileName = formFile.FileName;
////将目录和文件名进行合并 //d:\\八维\\11.xlsx
//var newFileName = Path.Combine(dir, fileName);
////System.IO.File.Create(newFileName) 创这个文件在当前根目录下
//using (var stream = System.IO.File.Create(newFileName))
//{
// formFile.CopyTo(stream);
//}
//将 文件保存到哪个位置
//保存文件名

//内存流--在内存当中开辟一块空间
using MemoryStream stream = new MemoryStream();
//将文件流 导入到内存当中
formFile.CopyTo(stream);
var list = stream.Query<RoleInfo>();
_roleInfoRespority.AddEntiryRange(list);
_roleInfoRespority.SaveChnages();
return Ok(new ApiResult { Code=200, Msg="导入成功"});
}
catch (Exception)
{
throw;
}
}

 

 

 

//导出

[HttpGet]
[Route("Export")]
public IActionResult ExportExcel()
{
//获取所有数据
var list = _roleInfoRespority.GetAll().ToList();
//在内存中当开辟空间
var memoryStream = new MemoryStream();
//将数据写到内存当中
memoryStream.SaveAs(list);
//从0的位置开始写入
memoryStream.Seek(0, SeekOrigin.Begin);
//返回文件流 //格式是Excel格式
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = "角色信息.xlsx"
};
}