我试图导出一个列表,但是当我打开文件下载时,它只显示了一堆没有意义的特征(有点看起来像机器语言)。我在这里查看了一些代码,所有代码都与我的相似,我缺少什么?
这是我的代码:
我打电话的方法:
[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;
}
答案 0 :(得分:1)
由于我不知道EPPlus,我用谷歌搜索它,它的Github页面声明它生成Open XML excel文件(.xlsx)。您生成的文件具有旧二进制excel文件类型的扩展名和mimetype。将contenttype更改为application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
,将文件扩展名更改为xlsx。