溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Vue前端表格導(dǎo)出Excel文件的方法是什么

發(fā)布時(shí)間:2023-04-25 14:41:42 來源:億速云 閱讀:139 作者:zzz 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Vue前端表格導(dǎo)出Excel文件的方法是什么”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Vue前端表格導(dǎo)出Excel文件的方法是什么”文章能幫助大家解決問題。

    1. 頁面

    Vue前端表格導(dǎo)出Excel文件的方法是什么

    2.代碼

    2.1 核心方法
    /**
     * 表格數(shù)據(jù)導(dǎo)出Excel實(shí)際方法
     * @param list
     */
    const exportList = (list) => {
      //表格表頭,導(dǎo)出表頭
      let tableHeader = [['#', '資產(chǎn)編號(hào)', '資產(chǎn)名稱', '資產(chǎn)類別', '資產(chǎn)型號(hào)', "資產(chǎn)單價(jià)", "資產(chǎn)金額",
        "生產(chǎn)廠家", "生產(chǎn)日期", "購買日期", "購買人", "狀態(tài)", "庫存數(shù)量"]]
      list.forEach((item, index) => {
        let rowData = []
        //導(dǎo)出內(nèi)容的字段
        rowData = [
          index + 1,
          item.zcbh,
          item.zcmc,
          item.name,
          item.zcxh,
          item.zcdj,
          item.zcje,
          item.sccj,
          currencyFormatDate(item.scrq),
          currencyFormatDate(item.gmrq),
          item.gmr,
          item.sts,
          item.kcsl,
        ]
        tableHeader.push(rowData)
      })
      let wb = XLSX.utils.book_new()
      let ws = XLSX.utils.aoa_to_sheet(tableHeader)
      XLSX.utils.book_append_sheet(wb, ws, '資產(chǎn)設(shè)備基本信息') // 工作簿名稱
      XLSX.writeFile(wb, '資產(chǎn)設(shè)備基本信息.xlsx') // 保存的文件名
    }

    將這個(gè)導(dǎo)出方法單獨(dú)封裝出來,帶一個(gè)參數(shù),即需要導(dǎo)出的所有數(shù)據(jù)的List集合,那么在調(diào)用的時(shí)候傳參即可使用。

    1. tableHeader 定義表格的表頭(此處并不是很嚴(yán)謹(jǐn),因?yàn)檫€包含了表格的數(shù)據(jù),暫時(shí)為空,后面遍歷時(shí)傳入)。

    2. rowData 是表格具體數(shù)據(jù)內(nèi)容的數(shù)組,遍歷時(shí)傳入。

    3. tableHeader.push(rowData) 將內(nèi)容放入tableHeader中,形成完整的表格數(shù)據(jù)。

    4. let wb = XLSX.utils.book_new() 定義表格實(shí)例。

    5. let ws = XLSX.utils.aoa_to_sheet(tableHeader) 創(chuàng)建工作簿,將表格內(nèi)容放入工作簿。

    2.2 調(diào)用方法
    /**
     * 表格數(shù)據(jù)導(dǎo)出Excel調(diào)用方法
     */
    const exportExcel = () => {
      ElMessageBox.confirm(
              '確定導(dǎo)出資產(chǎn)設(shè)備基本信息表嗎?',
              '提示',
              {
                confirmButtonText: '確定',
                cancelButtonText: '取消',
                type: 'warning',
              }
      )
              .then(async () => {
                let list = [];
                const res = await request.get("asset/listAll");
                console.log(res)
                list = res.data.assetsAllList
                exportList(list);
                if (res.data.code === 200) {
                  ElMessage({
                    type: 'success',
                    message: '即刻開始下載',
                  })
                }
              })
              .catch(() => {
              })
    }

    await request.get(“asset/listAll”) 請(qǐng)求后端接口,拿到結(jié)果。將結(jié)果中的集合賦值給提前定義好的list數(shù)組list = res.data.assetsAllList。用了MessageBox消息彈框,根據(jù)自己的實(shí)際需求哈用到了異步等待,上面的request.get是自己封裝的axios方法 

    3.演示

    Vue前端表格導(dǎo)出Excel文件的方法是什么

    Vue前端表格導(dǎo)出Excel文件的方法是什么

    Vue前端表格導(dǎo)出Excel文件的方法是什么

    關(guān)于“Vue前端表格導(dǎo)出Excel文件的方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI