最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用vue導(dǎo)出excel遇到的坑及解決

 更新時間:2022年04月07日 11:19:12   作者:前端陳晨  
這篇文章主要介紹了使用vue導(dǎo)出excel遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue導(dǎo)出excel遇到的坑

需求

Vue+element UI el-table下的導(dǎo)出當(dāng)前所有數(shù)據(jù)到一個excel文件里。

先按照網(wǎng)上的方法,看看有哪些坑

準(zhǔn)備工作

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

2、在放置需要導(dǎo)出功能的組件中引入

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

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

   //導(dǎo)出當(dāng)前表格
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
},

我們來看一下原始數(shù)據(jù)

接下來再來看一下導(dǎo)出的結(jié)果

哎???我訂單編號跟銀行卡號咋成了科學(xué)計數(shù)法了??

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

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

經(jīng)過各種搜索,最終解決方法如下:

exportExcel() {
? ? ? var xlsxParam = { raw: true };//轉(zhuǎn)換成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;
? ? },

再來看我們的數(shù)據(jù)

大功告成。

vue導(dǎo)出excel表報錯處理

Excel表導(dǎo)出功能需要將請求中的 responseType 設(shè)置為 blob,也就是說請求只能接收Excel文件,json數(shù)據(jù)沒法處理

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

        // 導(dǎo)出
        downLoad(){
            const fileReader = new FileReader() // 第一步創(chuàng)建文件對象
            const loading = this.$loading({
                lock: true,
                text: '導(dǎo)出加載中···',
                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') { // 第三步進(jìn)行判斷
                        const jsonData = JSON.parse(fileReader.result) // 說明是普通對象數(shù)據(jù),后臺轉(zhuǎn)換失敗
                        // 后臺信息
                        // 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);
            })
        },

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中添加音頻和視頻的示例詳解

    vue中添加音頻和視頻的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何vue中添加音頻和視頻的相關(guān)知識,文中的示例代碼簡潔易懂,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下
    2023-08-08
  • Vue3  defineExpose要在方法聲明定義以后使用的教程

    Vue3  defineExpose要在方法聲明定義以后使用的教程

    這篇文章主要介紹了Vue3  defineExpose要在方法聲明定義以后使用的教程,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • VUE中使用HTTP庫Axios方法詳解

    VUE中使用HTTP庫Axios方法詳解

    本文將詳細(xì)介紹在VUE中使用HTTP庫Axios的詳細(xì)方法,需要的朋友可以參考下
    2020-02-02
  • 多個vue子路由文件自動化合并的方法

    多個vue子路由文件自動化合并的方法

    這篇文章主要給大家介紹了關(guān)于多個vue子路由文件自動化合并的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vue實現(xiàn)登陸功能

    vue實現(xiàn)登陸功能

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)登陸功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • VUE重點(diǎn)問題總結(jié)

    VUE重點(diǎn)問題總結(jié)

    本篇內(nèi)容給大家總結(jié)了VUE的重要難點(diǎn),并把代碼做了詳細(xì)分享,有興趣的朋友參考學(xué)習(xí)下。
    2018-03-03
  • 5種vue模糊查詢的方法總結(jié)

    5種vue模糊查詢的方法總結(jié)

    在Vue中,有多種方式可以實現(xiàn)模糊查詢,這篇文章主要介紹了5種vue中的常用方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-08-08
  • vuex模塊獲取數(shù)據(jù)及方法的簡單示例

    vuex模塊獲取數(shù)據(jù)及方法的簡單示例

    Vuex是一個專為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式,它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式發(fā)生變化,下面這篇文章主要給大家介紹了關(guān)于vuex模塊獲取數(shù)據(jù)及方法的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Vue過濾器filters的用法及時間戳轉(zhuǎn)換問題

    Vue過濾器filters的用法及時間戳轉(zhuǎn)換問題

    Vue的filters過濾器是比較常見的一個知識點(diǎn),下面我將結(jié)合時間戳轉(zhuǎn)換的例子帶你快速了解filters的用法,感興趣的朋友一起看看吧
    2021-09-09
  • vue.js實現(xiàn)圖書管理功能

    vue.js實現(xiàn)圖書管理功能

    這篇文章主要為大家詳細(xì)介紹了vue.js實現(xiàn)圖書管理功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09

最新評論

芷江| 民勤县| 岳阳市| 开远市| 青川县| 鄂尔多斯市| 胶州市| 曲麻莱县| 大余县| 枣强县| 讷河市| 永州市| 青浦区| 四会市| 辽源市| 襄樊市| 纳雍县| 共和县| 久治县| 华阴市| 沙河市| 航空| 抚顺市| 宁城县| 财经| 白水县| 乐昌市| 新河县| 青神县| 桂东县| 寿阳县| 古浪县| 易门县| 大新县| 高邮市| 延长县| 博野县| 迁安市| 耿马| 台南县| 莎车县|