Javascript 正在寻找通过API在c#中传输新创建的excel的好方法
我已经创建了一个excel文件使用NPOI,并希望通过一个API发送此文件,使其可以从该网页下载 我的问题是,如何通过API以良好的方式发送此excel文件? 我是否可以将此excel文件存储为Blob或二进制文件,而不将其保存为文件以便于发送?(不希望每次导出excel文档时都保存文件)Javascript 正在寻找通过API在c#中传输新创建的excel的好方法,javascript,c#,excel,npoi,Javascript,C#,Excel,Npoi,我已经创建了一个excel文件使用NPOI,并希望通过一个API发送此文件,使其可以从该网页下载 我的问题是,如何通过API以良好的方式发送此excel文件? 我是否可以将此excel文件存储为Blob或二进制文件,而不将其保存为文件以便于发送?(不希望每次导出excel文档时都保存文件) 这就是我现在用来保存文件的内容。一般来说,您通常可以获得表示客户端响应的类流的实例,并将其写入该类而不是文件。您还需要设置正确的内容类型标题 例如,在ASP.NET核心中,您可以创建自己的IActionRes
这就是我现在用来保存文件的内容。一般来说,您通常可以获得表示客户端响应的类
流的实例,并将其写入该类而不是文件。您还需要设置正确的内容类型
标题
例如,在ASP.NET核心中,您可以创建自己的IActionResult
实现
public class XlsDownloadResult : IActionResult
{
private readonly Workbook _workbook;
public XlsDowloadResult(Workbook workbook)
{
_workbook = workbook;
}
public async Task ExecuteResultAsync(ActionContext context)
{
var response = context.HttpContext.Response;
response.Headers.Add("Content-Type", "application/vnd.ms-excel");
// Assuming the workbook object has WriteAsync -- otherwise use sync write
// and return Task.CompletedTask
await _workbook.WriteAsync(response.Body);
}
}
然后你可以像这样使用它
[HttpGet]
public IActionResult Get()
{
var workbook = CreateWorkbook();
return new XlsDownloadResult(workbook);
}
最后--我建议您确保创建的是xlsx
文件,而不是xls
文件xls
文件已被弃用,可能会导致许多问题。您的问题并不明确。是否从HTTP控制器或aspx页面创建XLS文件?您希望它在用户浏览器中被视为文件下载吗?或者您正在寻找其他内容?哦,对不起。我会尽量说清楚的。我正在用c#创建一个xls文件,以响应来自我网站的api请求。作为回应,我想发回excel。我不知道该发送什么以及如何转换它。是的,在网站上,我想能够下载它作为一个excel文件=)非常感谢!我正在尝试这个=)等待工作簿.WriteAsync(response.Body);出现以下错误:我的HSSFWorkbook没有WriteAsync。我将如何使用注释中提到的同步写入。
[HttpGet]
public IActionResult Get()
{
var workbook = CreateWorkbook();
return new XlsDownloadResult(workbook);
}