c# - ClosedXML 返回文件

标签 c# .net blazor .net-5 closedxml

我正在使用 blazor 和 .net 5。我正在尝试使用 ClosedXML 进行 Excel 导出。这是我写的简单方法:

public IActionResult CreateExcelSheet()
        {

            using (var wbook = new XLWorkbook())
            {
                var ws = wbook.Worksheets.Add("Sheet1");
                ws.Cell("A1").Value = "1";

                using (var stream = new MemoryStream())
                {
                    wbook.SaveAs(stream);
                    var content = stream.ToArray();
                    return File(content, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Opportunities.xlsx");
                }
            }
        }

返回文件有一条红色下划线,表示不可调用的成员"file"不能像方法一样使用。 我不太确定如何纠正这个问题...我也不确定我是否正确使用 blazor 和 .net 5。非常感谢任何帮助!

最佳答案

我尝试过这个,它对我有用。 您的 URI 是 GET https://api/sample/excel。

示例:https://localhost:44370/api/Sample/excel

using System;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using ClosedXML.Excel;

namespace YourProject.API.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class SampleController : ControllerBase
    {
        [HttpGet("excel")]
        [AllowAnonymous]
        public IActionResult CreateExcelSheet()
        {
            try
            {
                using (var wbook = new XLWorkbook())
                {
                    var ws = wbook.Worksheets.Add("Sheet1");
                    ws.Cell("A1").Value = "1";

                    using (var stream = new System.IO.MemoryStream())
                    {
                        wbook.SaveAs(stream);
                        var content = stream.ToArray();
                        return File(content, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Opportunities.xlsx");
                    }
                }
            }
            catch (Exception ex)
            {
                return StatusCode(StatusCodes.Status500InternalServerError);
            }
        }
    }
}

关于c# - ClosedXML 返回文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68039622/

相关文章:

c# - 创建 Zip 文件时如何忽略时间戳?

c# - Html 邮件中的字体

c# - 为什么不应用 BindingRedirect

dependency-injection - 在 Startup 中初始化 Singleton 变量并在 wole 应用程序中使用它

c# - 通过分组拆分 Linq 列表

c# - 以编程方式更改 log4net 日志记录级别

c# - 默认 Blazor PWA 项目无法托管到 IIS 中

c# - 通用接口(interface)、实现和依赖注入(inject) - 实现类型无法转换为服务类型

c# - JQuery 将值设置为自定义服务器控件

.net - 复制本地如何工作? log4net.dll 没有被复制到 MyProject 输出目录