В моем 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 байт, и когда я пытаюсь открыть его, я получаю эту ошибку
Я попытался создать 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 не может открыть файл, потому что формат и расширение недействительны.
Любая идея, пожалуйста?
С уважением