как загрузить файл ClosedXml, полученный webAPI, в клиентское веб-приложение - PullRequest
0 голосов
/ 05 ноября 2019

В моем webAPI я создаю файл и затем отправляю его в мое веб-приложение Aurelia

[HttpPost]
[Route("Print")]
public async Task<IActionResult> Print([FromBody] PrintDataVM data)
{
  var getResponse = await mediator.Send(new PrintPlanning(data));
  return Ok(getResponse.Deliver("Planificacion.xlsx"));

}

Я возвращаю объект XLWorkBook, и этот файл создается в ответ. Если я сохраняю его в коде (wb.SavAes ("test.xlsx") в моей папке webAPI, чтобы увидеть, что результат работает нормально

В моем коде frontEnd у меня есть это

async print() {
try {
  let printData = new PrintData(
    this.proyectoSeleccionado,
    this.fechaInicio,
    this.fechaFin,
    this.horas,
    this.certificaciones,
    this.subcontrataciones,
    this.contratos,
    this.resumen
  );
  this.planningService.Print(printData).then(json => {
    var blob = new File([json], "Planificacion.xlsx");
    var URL = window.URL || window.webkitURL;
    var downloadURL = URL.createObjectURL(blob);
    var a = document.createElement("a");
    a.href = downloadURL;
    a.download = "Planificacion.xlsx";
    document.body.appendChild(a);
    a.click();
  });
} catch (error) {
  console.error(error);
  alert("Ha ocurrido un error generando el Libro de Excel para imprimir");
  return null;
}

}

Норазмер загружаемого файла составляет всего 15 байт, и когда я пытаюсь открыть его, я получаю эту ошибку

error opening excel file

Я попытался создать Blob вместо File

this.planningService.Print(printData).then(json => {
    const file = new Blob([json], {
      type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    });
    var URL = window.URL || window.webkitURL;
    var downloadURL = URL.createObjectURL(file);
    var a = document.createElement("a");
    a.href = downloadURL;
    a.download = "Planificacion.xlsx";
    document.body.appendChild(a);
    a.click();
  });

Но когда я открываю загруженный файл, он говорит, что Excel не может открыть файл, потому что формат и расширение недействительны.

Любая идея, пожалуйста?

С уважением

...