使用 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.
我正在尝试导出一个列表,但是当我打开文件下载时,它只显示了一堆没有意义的字符(有点像机器语言)。我在这里查看了一些代码,它们都与我的相似,我错过了什么?
这是我的代码:
我调用的方法:
[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.