xlsx模板下载

有点时候需要通过前端下载xlsx文档,具体代码实现如下:

// html代码

      下载模板

//js 代码
// 定义接口
export function genCclOptionXlsxApi(params) {
  return axios({
    url: api.genCclOptionXlsxUrl,
    method: 'get',
    responseType: 'blob',  // 注意前端需要添加这个
    params
  })
}
// 引入接口
import { genCclOptionXlsxApi } from '@/api/vcp'
// 下载xlsx模板方法
downloadTemplateFuc() {
 console.log('vcp--下载模板')
 let paramsResponse = {
   nodeVersionNo:
     this.getTimeDetails?.nodeVersion ||
     this.form.cclVersion.match(regex)[1]
 }
 genCclOptionXlsxApi(paramsResponse)
   .then((res) => {
     const fileName =
       'CCP Option-V' +
       `${
         this.getTimeDetails?.nodeVersion ||
         this.form.cclVersion.match(regex)[1]
       }` +
       '_' +
       this.dateFormat('yyyyMMdd') +
       '.xlsx'
     const url = window.URL.createObjectURL(new Blob([res]))
     const link = document.createElement('a')
     link.style.display = 'none'
     link.href = url
     link.setAttribute('download', fileName)
     document.body.appendChild(link)
     link.click()
     URL.revokeObjectURL(link.href)
     document.body.removeChild(link)
     message.success('请求下载模板成功,请保存')
   })
   .catch((error) => {
     console.log('error:', error)
     message.error(error.error.data.errorMsg || '请求失败')
   })
},
dateFormat(fmt) {
   var o = {
     'M+': new Date().getMonth() + 1, // 月份
     'd+': new Date().getDate(), // 日
     'h+': new Date().getHours(), // 小时
     'm+': new Date().getMinutes(), // 分
     's+': new Date().getSeconds(), // 秒
     'q+': Math.floor((new Date().getMonth() + 3) / 3), // 季度
     S: new Date().getMilliseconds()
     // 毫秒
   }
   if (/(y+)/.test(fmt))
     fmt = fmt.replace(
       RegExp.$1,
       (new Date().getFullYear() + '').substr(4 - RegExp.$1.length)
     )
   for (var k in o)
     if (new RegExp('(' + k + ')').test(fmt))
       fmt = fmt.replace(
         RegExp.$1,
         RegExp.$1.length == 1
           ? o[k]
           : ('00' + o[k]).substr(('' + o[k]).length)
       )
   return fmt
},

你可能感兴趣的:(js,javascript,前端)