WebApi using EF EPPlus returning gibberish in exce

爱⌒轻易说出口 提交于 2019-12-11 06:14:04

问题


I am trying to use EPPlus in my EF WebApi to return data in a excel workbook. The call to webserver gets made successfully, but when my browser opens the excel doc... all the content is gibberish.

This is my webapi

        private xxxV003Context db = new xxxV003Context();

    [HttpGet]
    public HttpResponseMessage Get()
    {
        HttpResponseMessage response;
        response = Request.CreateResponse(HttpStatusCode.OK);
        MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/octet-stream");
        //MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.Content = new StreamContent(ExcelSheet());
        response.Content.Headers.ContentType = mediaType;
        response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
        response.Content.Headers.ContentDisposition.FileName = "Orders.xlsx";
        return response;
    }

    public List<Client> Orders()
    {
        List<Client> tList = new List<Client>();
        using (db)
        {
            tList.Add(new Client { ClientID = 50, ClientName = "testName1" });
            tList.Add(new Client { ClientID = 51, ClientName = "testName2" });
        }
        return tList;
    }

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

here is the screenshot

NEW ERROR MESSAGE

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
-<recoveryLog     xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<logFileName>error125800_03.xml</logFileName>
<summary>Errors were detected in file 'C:\Users\xxx\Downloads\Orders   (2).xlsx'</summary>
-<additionalInfo>
<info>Excel completed file level validation and repair. Some parts of this    workbook may have been repaired or discarded.</info>
</additionalInfo>
</recoveryLog>

回答1:


EPPlus creates .xlsx files - Change the file extension from .xls to .xlsx



来源:https://stackoverflow.com/questions/39919185/webapi-using-ef-epplus-returning-gibberish-in-exce

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!