<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        如何用Vue導出excel表格

        來源:懂視網 責編:小采 時間:2020-11-27 19:45:59
        文檔

        如何用Vue導出excel表格

        如何用Vue導出excel表格:這次給大家帶來如何用Vue導出excel表格,用Vue導出excel表格的注意事項有哪些,下面就是實戰案例,一起來看一下。引言:最近使用vue在做一個后臺系統,技術棧 vue + iView ,在頁面中生成表格后, iView可以實現表格的導出,不過只能導出csv格式的,并不適
        推薦度:
        導讀如何用Vue導出excel表格:這次給大家帶來如何用Vue導出excel表格,用Vue導出excel表格的注意事項有哪些,下面就是實戰案例,一起來看一下。引言:最近使用vue在做一個后臺系統,技術棧 vue + iView ,在頁面中生成表格后, iView可以實現表格的導出,不過只能導出csv格式的,并不適

        這次給大家帶來如何用Vue導出excel表格,用Vue導出excel表格的注意事項有哪些,下面就是實戰案例,一起來看一下。

        引言:

        最近使用vue在做一個后臺系統,技術棧 vue + iView ,在頁面中生成表格后, iView可以實現表格的導出,不過只能導出csv格式的,并不適合項目需求。

        如果想要導出Excel

      1. 在src目錄下創建一個文件(vendor)進入 Blob.js 和 Export2Excel.js

      2. npm install -S file-saver 用來生成文件的web應用程序

      3. npm install -S xlsx 電子表格格式的解析器

      4. npm install -D script-loader 將js掛在在全局下

      5. 表結構

        渲染頁面中的表結構是由 columns 列 和 tableData 行,來渲染的 columns 為表頭數據 tableData 為表實體內容

        columns1: [
         {
         title: '序號',
         key: 'serNum'
         },
         {
         title: '選擇',
         key: 'choose',
         align: 'center',
         render: (h, params) => {
         if (params.row.status !== '1' && params.row.status !== '2') {
         return h('p', [
         h('checkbox', {
         props: {
         type: 'selection'
         },
         on: {
         'input': (val) => {
         console.log(val)
         }
         }
         })
         ])
         } else {
         return h('span', {
         style: {
         color: '#587dde',
         cursor: 'pointer'
         },
         on: {
         click: () => {
         // this.$router.push({name: '', query: { id: params.row.id }})
         }
         }
         }, '查看訂單')
         }
         }
         },
         ...
         ],

        tableData 就不寫了,具體數據結構查看iViewAPI

        在build 目錄下 webpack.base.conf.js 配置 我們要加載時的路徑

        alias: {
         'src': path.resolve(dirname, '../src'),
         }

        在當前頁面中引入依賴

        require('script-loader!file-saver')
         // 轉二進制用
         require('script-loader!src/vendor/Blob')
         // xlsx核心
         require('script-loader!xlsx/dist/xlsx.core.min')

        當我們要導出表格執行 @click 事件調用 handleDownload 函數

        handleDownload() {
         this.downloadLoading = true
         require.ensure([], () => {
         const {export_json_to_excel} = require('src/vendor/Export2Excel')
         const tHeader = Util.cutValue(this.columns1, 'title')
         const filterVal = Util.cutValue(this.columns1, 'key')
         const list = this.tableData1
         const data = this.formatJson(filterVal, list)
         export_json_to_excel(tHeader, data, '列表excel')
         this.downloadLoading = false
         })
         },
         formatJson(filterVal, jsonData) {
         return jsonData.map(v => filterVal.map(j => v[j]))
         }

        Util.cutValue 是公共方法,目的是為了將,tHeader 和filterVal 的值轉成數組從而生成表格

        ### Util module
        // 截取value值
        utils.cutValue = function (target, name) {
         let arr = []
         for (let i = 0; i < target.length; i++) {
         arr.push(target[i][name])
         }
         return arr
        }

        Export2Excel.js/Blob.js 的代碼

        下面再看下vue中excel表格的導入和導出

        注意:vue中要實現表格的導入與導出,首先要install兩個依賴,

        npm install -S file-saver xlsx npm install -D script-loader。其次,在項目src目錄下新建一個文件夾vendor(名字隨意),在此文件夾下放置兩個文件Blob.js和Export2Excal.js(下載地址:http://files.cnblogs.com/files/wangyunhui/vendor.rar)。之后就可以愉快的導入導出了微笑。

        1、導入

        1.<input id="upload" type="file" @change="importfxx(this)" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" /> 
        importfxx(obj) { 
        let _this = this; 
        console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxx1"); 
        let inputDOM = this.$refs.inputer; 
        // 通過DOM取文件數據 
        this.file = event.currentTarget.files[0]; 
        var rABS = false; //是否將文件讀取為二進制字符串 
        var f = this.file; 
        var reader = new FileReader(); 
        //if (!FileReader.prototype.readAsBinaryString) { 
        FileReader.prototype.readAsBinaryString = function(f) { 
        var binary = ""; 
        var rABS = false; //是否將文件讀取為二進制字符串 
        var pt = this; 
        var wb; //讀取完成的數據 
        var outdata; 
        var reader = new FileReader(); 
        reader.onload = function(e) { 
        var bytes = new Uint8Array(reader.result); 
        var length = bytes.byteLength; 
        for(var i = 0; i < length; i++) { 
        binary += String.fromCharCode(bytes[i]); 
        } 
        var XLSX = require('xlsx'); 
        if(rABS) { 
        wb = XLSX.read(btoa(fixdata(binary)), { //手動轉化 
        type: 'base' 
        }); 
        } else { 
        wb = XLSX.read(binary, { 
        type: 'binary' 
        }); 
        } 
        outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);//outdata就是你想要的東西 
        } 
        reader.readAsArrayBuffer(f); 
        } 
        if(rABS) { 
        reader.readAsArrayBuffer(f); 
        } else { 
        reader.readAsBinaryString(f); 
        } 
        }

        2.導出

        inportexcel: function() { //兼容ie10哦! 
        require.ensure([], () => {         
        const { export_json_to_excel } = require('../../vendor/Export2Excel');  //引入文件       
        const tHeader = ['用戶名', '姓名', '部門', '職位', '郵箱', '充值']; //將對應的屬性名轉換成中文 
        // const tHeader = []; 
                 
        const filterVal = ['userName', 'realName', 'department', 'position', 'email', 'money'];//table表格中對應的屬性名          
        const list = this.sels;         
        const data = this.formatJson(filterVal, list);         
        export_json_to_excel(tHeader, data, '列表excel');       
        }) 
        }

        相信看了本文案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!

        推薦閱讀

        怎樣使js將鍵值字符串轉為json字符串

        怎樣把webpack4.0打包優化

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        如何用Vue導出excel表格

        如何用Vue導出excel表格:這次給大家帶來如何用Vue導出excel表格,用Vue導出excel表格的注意事項有哪些,下面就是實戰案例,一起來看一下。引言:最近使用vue在做一個后臺系統,技術棧 vue + iView ,在頁面中生成表格后, iView可以實現表格的導出,不過只能導出csv格式的,并不適
        推薦度:
        標簽: 表格 導出 excel
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top 主站蜘蛛池模板: 亚洲视频一区二区三区四区| 亚洲人AV永久一区二区三区久久| 亚洲AV无码专区国产乱码电影| 日韩在线观看视频免费| 亚洲AV无码成H人在线观看| 看成年女人免费午夜视频| 啊v在线免费观看| 男女污污污超污视频免费在线看| 免费久久精品国产片香蕉| 精品亚洲成A人在线观看青青| 亚洲日本一线产区和二线 | 久久精品免费一区二区喷潮| 亚洲熟妇色自偷自拍另类| 无码国产精品一区二区免费I6| 亚洲熟妇无码AV在线播放| a级毛片黄免费a级毛片| 久久精品国产亚洲精品2020| 久久国内免费视频| 亚洲成年轻人电影网站www| 99re这里有免费视频精品| 亚洲www在线观看| 国产一区二区三区在线免费观看 | 国产免费牲交视频| 有码人妻在线免费看片| 久久久亚洲欧洲日产国码农村| 4399好看日本在线电影免费| 亚洲色成人四虎在线观看| 亚洲M码 欧洲S码SSS222| 久草免费福利视频| 日韩亚洲变态另类中文| 亚洲免费人成在线视频观看| 亚洲专区中文字幕| 亚洲AⅤ优女AV综合久久久| 久久久精品午夜免费不卡| 亚洲国产视频久久| 免费观看成人毛片a片2008| 免费国产黄网站在线观看动图 | 成人毛片视频免费网站观看| 一级毛片a女人刺激视频免费| 亚洲一区二区三区首页| 又大又黄又粗又爽的免费视频|