У меня есть случай, когда мне нужно загрузить данные в виде файла Excel.Я использую Angular 7 (UI) и сервис Java Spring REST API.REST API сгенерирует файл Excel и отправит его в Angular, где я использую модуль FileSaver.js для сохранения файла на диск.Я вижу созданный BLOB-объект и размер, напечатанный на консоли, но файл не сохраняется на диск.
Это работало, когда у меня был Angular 4. Любая помощь очень ценится.
Кроме того, если кто-нибудь может предложить альтернативный модуль узла для достижения того же результата, я полностью уверен.
Ниже приведен фрагмент кода на Angular
this.myService.getDataAsXLSX(this.dataList).
subscribe(byteArray => {
this.excelFileAsByteArray = byteArray;
}, error => console.log("There was an error."),
() => {
const blob = new Blob([this.excelFileAsByteArray.body], {type:'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; ; charset=UTF-8'});
console.log('Blob size in filtered = ' + blob.size);
FileSaver.saveAs(blob, "MyData-" + this.datePipe.transform(this.currentDate, 'MM-dd-yyyy') + ".xlsx"); } );
Вот код изREST API
ByteArrayOutputStream outputStream = new ExcelWriter().createExcelWorkbook(dataList, fullName);
byte[] byteArray = outputStream.toByteArray();
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("Content-Type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; ; charset=UTF-8");
responseHeaders.set("Content-Disposition", "attachment;filename=MyData.xlsx"); responseHeaders.set("Expires", "0");
return new ResponseEntity(byteArray, responseHeaders, HttpStatus.OK);