Как клиент (React) загружает файл Excel в NodeJS?

#node.js #reactjs #exceljs

#node.js #reactjs #exceljs

Вопрос:

💬 Вопросы и помощь

Всем привет,

У меня есть два отдельных проекта. Клиент: React, Сервер: NodeJS

Я создаю excel на стороне NodeJS, отправляя форму с помощью React.

Я хочу загрузить этот Excel со стороны React. Однако я не смог его загрузить.

Код NodeJS

   res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  res.setHeader("Content-Disposition", "attachment; filename="   "Report.xlsx");
  workbook.xlsx.write(res)
      .then(function(){
          res.end();
      });
 

NodeJS возвращает сетевой уровень

введите описание изображения здесь

Первая попытка React.js код

  startDownload(response,"resobyte.xlsx")

function startDownload(file, fileName) {
    const url = window.URL.createObjectURL(new Blob([file]));
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', fileName);
    document.body.appendChild(link);
    link.click();
    link.parentNode.removeChild(link);
}
 

Вторая попытка React.js код

   let blob = new Blob([response], {type: 'vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'});
            FileSaver.saveAs(blob, 'fileName.xlsx");
 

Файл был загружен.

Мой вызов службы реагирования

 export const createExcel = async (model) => {
  let response = () => {
      return new Promise(function(resolve, reject) {
        fetch(API_URL   '/api/excel/create', {
          method: 'POST',
          responseType: 'arrayBuffer',
          headers: {
          'Content-Type': 'application/json',
          'x-access-token' : TokenService.getToken()
          },
          body: JSON.stringify(model),
        }).then(response => {
          resolve(response);
        });
      });
    };
    let responseData = await response();
    return responseData;
}

 

Ошибка открытия файла Excel

введите описание изображения здесь