vue,axios导出Excel

298 阅读1分钟

导出excel,导出文件名

const isDev = process.env.NODE_ENV === 'development';

function download(file) {
  const link = document.createElement('a');
  link.style.display = 'none';
  const blob = new Blob([file.file], {
    type: 'application/vnd.ms-excel'
  });
  // const blob = new Blob([file.file]);
  link.href = URL.createObjectURL(blob);
  link.setAttribute('download', file.name);
  document.body.appendChild(link);
  link.click();
  URL.revokeObjectURL(link.href);
  document.body.removeChild(link);
}

function exportExcel(url, params = {}) {
  axios({
    url,
    method: 'post',
    data: params,
    responseType: 'blob'
  }).then(res => {
    if (res.data) {
      const contentDisposition = res.headers['content-disposition'];
      if (contentDisposition) {
        const fileName = window.decodeURI(
          res.headers['content-disposition'].split('=')[1],
          'UTF-8'
        );
        download({
          name: fileName,
          file: res.data
        });
      }
    }
  });
}

export {
  download,
  exportExcel
};