Задать вопрос
Juniorrrrr
@Juniorrrrr

Как правильно скачать файл в формате XlSX?

Доброго времени суток. С бека получаю содержимое файла в формате xlsx, на фронте нужно скачать соответственно его.
Код подготовки файла выглядит так:
const blob = new Blob([excelData], { type: mimeFromHeader });
URL.createObjectURL(blob)


После устанавливаю URL.createObjectURL(blob) в урл тега a.
Проблема возникает после скачивания. Когда пытаюсь открыть файл в Microsoft Excel получаю ошибку, что файл битый.
Подскажите пожалуйста, что делаю не так и как побороть проблему

5e426ea53525b460634816.png

p.s. Если получать данные файла через постман и сохранять ихруками, то все работает корректно.
  • Вопрос задан
  • 1810 просмотров
Подписаться 1 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
@granty
На переполненном стеке вроде как подобную проблему решили преобразованием Excel data file в ArrayBuffer:
var blob = new Blob([s2ab(atob(excelData))], { type: mimeFromHeader });

function s2ab(s) {   // см https://github.com/SheetJS/sheetjs/blob/master/README.md
  var buf = new ArrayBuffer(s.length);
  var view = new Uint8Array(buf);
  for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
  return buf;
  }
Попробуйте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы