C# .Net6 API Excel导入导出
一、下载最新MiniExcel包
二、导入
[HttpPost]
[Route("Import")]
public IActionResult ImportExcel()
{
try
{
var formFile = HttpContext.Request.Form.Files[0]; //文件流
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;
}
}
前端用文件上传的组件调用接口即可(Element-ui)
可以创建要导入数据表的Excel表格模板
创建文件夹放Excel表格模板
//静态文件中间件
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(builder.Environment.ContentRootPath, "Files")),
RequestPath = "/StaticFiles"
});
//前端vue
模板下载:<a href="http://localhost:5038/StaticFiles/Temp.xlsx">点击下载Excel</a>
三、导出
[HttpGet]
[Route("Export")]
public IActionResult ExportExcel()
{
var list = _roleInfoRespority.GetAll().ToList(); //获取所有数据
var memoryStream = new MemoryStream(); //在内存中当开辟空间
memoryStream.SaveAs(list); //将数据写到内存当中
memoryStream.Seek(0, SeekOrigin.Begin); //从0的位置开始写入
//返回文件流 //格式是Excel格式
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = "角色信息.xlsx"
};
}
前端创建方法调用接口: location.href = "API接口";