前端导出文件,二进制流

264 阅读1分钟

1. js文件

/**
    * @param data 数据
    * @param fileName 文件名称
    * @param type 导出文件类型
*/
export const download = (data: Blob, fileName: string, type: string) => {
  // 创建 blob
  const blob = new Blob([data], { type: mineType[type] })
  // 创建 href 超链接,点击进行下载
  window.URL = window.URL || window.webkitURL
  const href = URL.createObjectURL(blob)
  const downA = document.createElement('a')
  downA.href = href
  downA.download = fileName
  downA.click()
  // 销毁超连接
  window.URL.revokeObjectURL(href)
}

export const mineType = {
  excel: 'application/vnd.ms-excel', // 下载 Excel
  word: 'application/msword', // 下载 Word
  zip: 'application/zip', // 下载 Zip
  html: 'text/html', // 下载 Html
  markdown: 'text/markdown' // 下载 Markdown
}

2. 使用

 download(res, '导出模板.docx', 'word')