使用 EPPlus 和 WebApi 将数据导出到 excel

Export data to excel with EPPlus and WebApi

我正在尝试导出一个列表,但是当我打开文件下载时,它只显示了一堆没有意义的字符(有点像机器语言)。我在这里查看了一些代码,它们都与我的相似,我错过了什么?

这是我的代码:

我调用的方法:

 [HttpGet]
    public HttpResponseMessage Get()
    {
        HttpResponseMessage response;
        response = Request.CreateResponse(HttpStatusCode.OK);
        MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/ms-excel");
        response.Content = new StreamContent(GetExcelSheet());
        response.Content = response.Content;
        response.Content.Headers.ContentType = mediaType;
        response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
        response.Content.Headers.ContentDisposition.FileName = "PivotGrid_Orders.xls";
        return response;
    }

格式化单元格的方法:

        public MemoryStream GetExcelSheet()
    {
        using (var package = new ExcelPackage())
        {
            var worksheet = package.Workbook.Worksheets.Add("Orders");
            //worksheet.Cells["A1"].LoadFromCollection()
            worksheet.Cells["A1"].LoadFromCollection(Orders(), false);
            package.Save();
            var stream = new MemoryStream(package.GetAsByteArray()); //capacidade
            return stream;
        }
    }

我创建的测试列表:

    public List<ExListModel> Orders()
    {
        List<ExListModel> lst = new List<ExListModel>();

        orders.Add(new ExListModel{ Nome = "Developer"});
        return lst;
    }

因为我不知道 EPPlus,所以我用谷歌搜索了一下,它的 Github 页面说明它生成打开 XML excel 文件 (.xlsx)。您生成的文件具有旧二进制 excel 文件类型的扩展名和 mimetype。将内容类型更改为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 并将文件扩展名更改为 xlsx.