在ASP.NET Core应用中下载Excel文件通常涉及以下几个基础概念:
.xlsx
格式的文件,这是一种基于XML的电子表格文件格式。以下是一个简单的ASP.NET Core控制器示例,展示了如何通过API下载Excel文件:
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Threading.Tasks;
[ApiController]
[Route("api/[controller]")]
public class FilesController : ControllerBase
{
[HttpGet("download-excel")]
public async Task<IActionResult> DownloadExcel()
{
// 假设文件存储在服务器的某个路径
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "Files", "example.xlsx");
if (!System.IO.File.Exists(filePath))
{
return NotFound(); // 文件不存在时返回404
}
// 创建文件流
var stream = new FileStream(filePath, FileMode.Open);
// 设置HTTP响应头
Response.Headers.Add("Content-Disposition", "attachment; filename=example.xlsx");
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
// 返回文件流作为响应
return new FileStreamResult(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}
}
FileStreamResult
来处理大文件,避免一次性加载整个文件到内存。通过上述方法,可以有效地在ASP.NET Core应用中实现Excel文件的下载功能,同时保证应用的性能和安全性。
领取专属 10元无门槛券
手把手带您无忧上云