Как сохранить ответ Excel с сервера в локальной системе, используя angular 8 + электронный рабочий стол? - PullRequest
0 голосов
/ 20 апреля 2020
getData(){
 return this.http.post(url,description,{responseType: 'blob' as 'json'})
      .subscribe(
        response =>{
          this.saveFile(response)
      },
           err => {
              console.log(err.error);

          }
       )
     }
}

saveFile(Data){
 var filename = dialog.showSaveDialog({ 
        defaultPath : "my_filename",
        filters: [{
         name: 'Microsoft Excel Worksheet',
         extensions: ['xlsx',]}]}
        ).then(result => {
          filename = result.filePath;
         if(filename === undefined) {
            alert('the user clicked the btn but didn\'t created a file');
            return;
        }
    fs.writeFileSync(filename,Data,'Binary',{encoding:"binary"},(err) => {
            if (err) {
              alert('an error ocurred with file creation ' + err.message);
              return
            }
               alert('WE CREATED YOUR FILE SUCCESFULLY');
          })
               alert('we End');
        }).catch(err => {
                alert(err)
        });
}

Я сохраняю файл Excel в локальной системе, но сохранение файла fs.writeFile пустое и повреждено. Я знаю, что получение ответа от веб-API является двоичным ответом. Пожалуйста, помогите!

...