使用WebAPI,VueJS,EPPlus导出Excel文件

时间:2020-01-22 18:23:24

标签: excel vue.js asp.net-web-api model-view-controller

我需要导出一个由公式,格式等组成的excel文件。这不仅仅是数据表。即,顶部将是描述/计算,然后下半部分将遍历项目列表。 添加此密件副本后,我需要的功能比vue-json-excel或vue-json-export产品(我认为)

我知道如何使用webforms / behind做到这一点,但是我一直在涉猎VueJS和MVC,并且试图弄清楚如何做到这一点。我正在使用EPPlus。

我从VueJS调用了一个命中我的“报告”控制器的webapi。现在,我只是想看看我是否真的可以从代码隐藏中导出Excel文件。

现在,当我尝试导出虚拟文件时...什么也没发生?没有任何错误,但没有提示“下载文件或打开”(或其他内容)的提示。

public class ReportController : ApiController
{
    public HttpResponseMessage Get(string aliases, string startDate, string endDate, string level)
    {         
        //attempting to just export a dummy excel - not working :(         

        MediaTypeHeaderValue mediaType = MediaTypeHeaderValue.Parse("application/octet-stream");
        MemoryStream memoryStream = new MemoryStream(Resources.AbsenceReport);
        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);
        response.Content = new StreamContent(memoryStream);
        response.Content.Headers.ContentType = mediaType;
        response.Content.Headers.ContentDisposition =
            new ContentDispositionHeaderValue("fileName") { FileName = "Test.xlsx" };
        return response;
    }
}

我错过了什么吗?在我的Vue部分中,我只有:

 AR.getTeamReport(aliasesToSearch, startDate, endDate, level)
    .then(response => {
      //IDK MAN WILL IT WORK :X
    })
    .catch(error => {
      console.log(error);
      this.sentToastError(
        "Unable to pull report. Please refresh and try again."
      );
    });

0 个答案:

没有答案