亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用vue導出excel遇到的坑怎么解決

發布時間:2022-04-07 13:37:11 來源:億速云 閱讀:276 作者:iii 欄目:開發技術

這篇“使用vue導出excel遇到的坑怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“使用vue導出excel遇到的坑怎么解決”文章吧。

    vue導出excel遇到的坑

    需求

    Vue+element UI el-table下的導出當前所有數據到一個excel文件里。

    先按照網上的方法,看看有哪些坑

    準備工作

    1、安裝依賴:yarn add xlsx file-saver -S

    2、在放置需要導出功能的組件中引入

    import FileSaver from "file-saver";
    import XLSX from "xlsx";

    3、HTML中的設置,簡單來說就是給需要導出的table標簽el-table上加一個id:如outTable,對應下面的exportExcel方法中的 document.querySelector(‘#outTable‘)

       //導出當前表格
    exportCurrent:function(){
        var wb = XLSX.utils.table_to_book(document.querySelector('#outTable')) //表格id
        var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
        try {
            FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'sheet.xlsx')  //文件名
        } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
        return wbout
    },


    我們來看一下原始數據

    使用vue導出excel遇到的坑怎么解決

    接下來再來看一下導出的結果

    使用vue導出excel遇到的坑怎么解決

    哎???我訂單編號跟銀行卡號咋成了科學計數法了??

    還有我的時間,時分秒呢??

    原因是因為數字太長了,需要使用excel的文本格式才能顯示正常

    經過各種搜索,最終解決方法如下:

    exportExcel() {
          var xlsxParam = { raw: true };//轉換成excel時,使用原始的格式
          var wb = XLSX.utils.table_to_book(document.querySelector("#outTable"),xlsxParam);
          var wbout = XLSX.write(wb, {
            bookType: "xlsx",
            bookSST: true,
            type: "array"
          });
          try {
            FileSaver.saveAs(
              new Blob([wbout], { type: "application/octet-stream;charset=utf-8" }),
              "sheetjs.xlsx"
            );
          } catch (e) {
            if (typeof console !== "undefined") console.log(e, wbout);
          }
          return wbout;
        },


    再來看我們的數據

    使用vue導出excel遇到的坑怎么解決

    大功告成。
     

    vue導出excel表報錯處理

    Excel表導出功能需要將請求中的 responseType 設置為 blob,也就是說請求只能接收Excel文件,json數據沒法處理

    此時可以根據 Response 的 Content-Type值類判斷處理,如果值 為 application/json,則先將返回的數據轉換成字符串,然后再轉換為 JSON
     

            // 導出
            downLoad(){
                const fileReader = new FileReader() // 第一步創建文件對象
                const loading = this.$loading({
                    lock: true,
                    text: '導出加載中···',
                    spinner: 'el-icon-loading',
                    background: 'rgba(0, 0, 0, 0.7)'
                });
                const data = {
                    equipmentName: this.searchForm.equipmentName,
                    equipmentCode: this.searchForm.equipmentCode,
                };
                download('/api/mfg-mes/equipmentVersion/exportStandardWorkTime', data).then(res => {
                    fileReader.onloadend = () => { // 定義方法
                        if (res.type === 'application/json') { // 第三步進行判斷
                            const jsonData = JSON.parse(fileReader.result) // 說明是普通對象數據,后臺轉換失敗
                            // 后臺信息
                            // console.log(jsonData,'fileReader')
                            this.$message.error(jsonData.msg)
                            loading.close();
                        }else{
                            downloadFile(res, '信息表', 'xlsx')
                            loading.close();
                        }
                    }
                    fileReader.readAsText(res)
                }).catch(err => {
                    console.log(err);
                })
            },

    以上就是關于“使用vue導出excel遇到的坑怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    怀宁县| 甘谷县| 武夷山市| 米林县| 芜湖县| 息烽县| 海安县| 舞钢市| 顺昌县| 新昌县| 北宁市| 北票市| 根河市| 尼木县| 松滋市| 英山县| 呼图壁县| 岑巩县| 株洲县| 克东县| 陵水| 东明县| 塘沽区| 元谋县| 大同市| 东乡县| 洞口县| 孝感市| 康乐县| 博野县| 土默特右旗| 开化县| 醴陵市| 蒙城县| 泰顺县| 神农架林区| 崇信县| 楚雄市| 株洲县| 泰和县| 长子县|