web-dev-qa-db-fra.com

Comment téléchargez-vous correctement le fichier Excel dans Vue.js?

J'ai du mal à télécharger un fichier Excel dans xlsx format dans mon Vue.js application. My VUE.JS Application Faites une demande postale à l'application Node.js qui télécharge que Excel Fichier du serveur SFTP distant. L'application backend fonctionne sans aucun problème.

Dans VUE.JS Application J'utilise le code suivant:

axios.post(config.backendHost + '/Excel', {
  file_name: fileName
}).then((response) => {
  const url = URL.createObjectURL(new Blob([response.data], {
    type: 'application/vnd.ms-Excel'
  }))
  const link = document.createElement('a')
  link.href = url
  link.setAttribute('download', fileName)
  document.body.appendChild(link)
  link.click()
});

Après avoir téléchargé le fichier par navigateur, le fichier s'ouvre automatiquement et je ressens une erreur qui ressemble à ceci:

Nous avons trouvé un problème avec du contenu .xlsx. Voulez-vous que nous essayions de récupérer autant que possible?

6
Nurzhan Nogerbek

mon cas a fonctionné:

  axios.get(`/api/v1/companies/${companyId}/export`, {
    responseType: 'blob',
  }).then((response) => {
    const url = URL.createObjectURL(new Blob([response.data]))
    const link = document.createElement('a')
    link.href = url
    link.setAttribute(
      'download',
      `${companyId}-${new Date().toLocaleDateString()}.xlsx`
    )
    document.body.appendChild(link)
    link.click()
  })
0
Jorge Epuñan