使用EPPlus.Core生成导出Excel表

时间:2019-04-09 15:58:03

标签: c# excel asp.net-core export

我想创建将从存储过程中生成excel表的服务。我希望直接https://www.talkingdotnet.com/import-export-excel-asp-net-core-2-razor-pages/直接在剃须刀页面上工作,但是我需要创建服务(在我的业务层中并将其提供给控制器)​​。

我遇到的问题是,在本教程中它是从函数中返回IActionResult

public async Task<IActionResult> OnPostExport()
{
    //logic
    return File(memory, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", sFileName);
}

有关模式的详细信息,请参见https://www.talkingdotnet.com/import-export-excel-asp-net-core-2-razor-pages/

我试图编写以下代码:

public class ExportService
{      
    private IHostingEnvironment _hostingEnvironment;

    public ExportService(IHostingEnvironment hostingEnvironment)
    {
        _hostingEnvironment = hostingEnvironment;
    }

    public async Task OnPostExport(int year)
    {
        //logic
        return File(memory, "application/vnd.openxmlformats- 
        officedocument.spreadsheetml.sheet", sFileName);
    }

它不起作用,因为“返回文件”-PageModel的功能在教程中如何工作。我想从服务中将文件返回给控制器。我应该从OnPostExport函数返回哪种类型?我将非常感谢我需要做的任何信息和想法。

1 个答案:

答案 0 :(得分:1)

对于owner,它是name中的基本方法,它将返回File。如果您更喜欢使用ControllerBase,则可以实现FileResult variants中的代码。

IMO,我建议您从FileContentResult返回File,然后像

那样构建响应byte[]
public async Task OnPostExport(int year)