无法打开导出的Excel文件

时间:2018-02-14 15:55:40

标签: excel asp.net-core export epplus

我正在创建一个带有端点的asp.net Core API,以将数据导出为ex​​cel文件。 我添加了nuget包EPPlus.Core。

到目前为止,这是我的代码:

using OfficeOpenXml;
...
Public class DataService
{
...
  public Byte[] Export(ExportRequest request){
    var data = _repository(request);
    using (var package = new ExcelPackage())
    {
      package.Workbook.Properties.Title = "Persons";

      var worksheet = package.Workbook.Worksheets.Add("Persons");

      //Headers
      worksheet.Cells[1, 1].Value = "Id";
      worksheet.Cells[1, 2].Value = "Name";

      //Values
      var row = 2;
      foreach (var person in data.Persons)
      {
        worksheet.Cells[row, 1].Value = person.Id;
        worksheet.Cells[row, 2].Value = person.Name;
        row++;
      }
      return package.GetAsByteArray();
  }
}


public class PersonController : Controller
{
    [HttpPost]
    [Route("{version:apiVersion}/[controller]/Export")]
    [SwaggerResponse(400, typeof(Exception), "Error in request")]
    [SwaggerResponse(500, typeof(Exception), "Error on server")]
    public IActionResult Export([FromBody] ExportRequest request)
    {
        Byte[] byteArray = _projectService.ExportRegistrations(request);
        if (byteArray != null)
        {
            return File(byteArray, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "persons.xlsx");
        }
        return BadRequest("Failure");
    }
}

我使用swagger测试我的API并获取一个名为persons.xlsx的文件。 但我无法打开它。 我得到以下两个承诺:

我们发现了#34; persons.xlsx"的某些内容存在问题,我们是否应尽量恢复?如果您信任该工作簿的来源,请单击“是”。

文件" persons.xlsx"无法打开,因为文件格式或文件类型名称无效。验证文件是否已损坏,以及文件类型名称是否与文件格式匹配。

然后是一个空的excel文档。

1 个答案:

答案 0 :(得分:0)

我也面临着同样的问题,

解决方法是直接通过浏览器或邮递员打开URL。