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

Vue通過Blob對象實現(xiàn)導出Excel功能示例代碼

 更新時間:2020年07月31日 14:47:47   作者:他好像一條狗啊  
這篇文章主要介紹了Vue通過Blob對象實現(xiàn)導出Excel功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

  不同的項目有不同的導出需求,有些只導出當前所顯示結果頁面的表格進入excel,這個時候就有很多插件,比如vue-json-excel或者是Blob.js+Export2Excel.js來實現(xiàn)導出Excel功能。但是有些需求因為數(shù)據(jù)量太大,成千上萬條數(shù)據(jù),所以是需要后端拼接,然后輸出二進制流文件,然后前端直接下載,這次我們談談后者的做法。

  Blob對象表示一個不可變、原始數(shù)據(jù)的類文件對象,通常我也叫它二進制流對象。我們可以通過Blob對象實現(xiàn)導出Excel功能,先放上代碼:

<el-button @click="exportExcel()">導出</el-button>

<script>
methods: {
 exportExcel(){
  var params={
  XX:xx//額外需要攜帶的請求體
  }
  this.$axios.get('/XX/XX',{
  params: params,
  responseType: 'blob' //首先設置responseType字段格式為 blob
  }).then(res => {
  console.log(res);
  let blob = new Blob([res], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"}); // 為blob設置文件類型,這里以.xlsx為例
  let url = window.URL.createObjectURL(blob); // 創(chuàng)建一個臨時的url指向blob對象
  let a = document.createElement("a");
  a.href = url;
  a.click();
  // 釋放這個臨時的對象url
  window.URL.revokeObjectURL(url); 
  });
 },
 }
</script>

  'responseType'表示的是服務器響應的數(shù)據(jù)類型,可以是'arrayBuffer'、'blob'、'document'、'json'、'txt'、'stream',默認為json。axios官方文檔地址:https://www.kancloud.cn/yunye/axios/234845(axios請求配置章節(jié))。

  所以我們接收后臺傳給前端的二進制流之前需要先設置responseType為blob,否則默認會以json獲取,下載下來的文件打開會提示文件已損壞??刂婆_輸出的可以看到是個正確的Blob對象,這就說明我們的配置是對的,如圖1所示。

圖1 控制臺輸出的Blob對象

  后端最好也要配置response頭的content-type為對應的類型,所圖2所示。

圖2 后端設置了響應頭相對應的content-type

  然后,需要給這個Blob對象設置一個type,這個type表明改Blob對象所包含數(shù)據(jù)的MIME類型。如果類型未知,則該值為空字符串。這里給出幾個常用文件格式的MIME類型:(詳細的可參考WebAPI官方文檔:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

擴展名----------MIME類型

  .csv--------------text/csv

  .jpeg/.jpg-------image/jpeg

  .png-------------image/png

  .rar--------------application/x-rar-compressed

  .doc-------------application/msword

  .docx-----------application/vnd.openxmlformats-officedocument.wordprocessingml.document

  .xls--------------application/vnd.ms-excel

.xlsx------------application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

  .zip--------------application/zip

  在正常的導出請求之后可以看到又發(fā)了一個新的blob請求,其本質是到這個地址下載文件,如圖3所示:

圖3 創(chuàng)建一個臨時的url指向blob對象

  一般來說,這樣就可以實現(xiàn)下載的功能了。

  這里提點題外話,谷歌瀏覽器下載設置默認為瀏覽器下載默認路徑,也就不會彈出文件框,谷歌瀏覽器下載文件框如圖4所示,也就沒有了所謂的自定義保存路徑和自定義文件名,如圖5所示,在瀏覽器底部會有下載提示。

圖4谷歌瀏覽器下載文件框

圖5 谷歌瀏覽器下載會在屏幕底部顯示

如果想要有下載文件框,請在設置->高級->下載內容->下載前詢問每個文件的保存位置中設置為啟用。

總結

到此這篇關于Vue通過Blob對象實現(xiàn)導出Excel功能的文章就介紹到這了,更多相關vue 通過blob對象導出excel內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue?v-model的詳細講解(推薦!)

    vue?v-model的詳細講解(推薦!)

    vue中經(jīng)常使用到和這類表單元素,vue對于這些元素的數(shù)據(jù)綁定和我們以前經(jīng)常用的jQuery有些區(qū)別,下面這篇文章主要給大家介紹了關于vue?v-model的相關資料,需要的朋友可以參考下
    2022-04-04
  • Vue動態(tài)生成el-checkbox點擊無法賦值的解決方法

    Vue動態(tài)生成el-checkbox點擊無法賦值的解決方法

    這篇文章主要給大家介紹了關于Vue動態(tài)生成el-checkbox點擊無法賦值的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-02-02
  • vue更新數(shù)據(jù)卻不渲染頁面的解決

    vue更新數(shù)據(jù)卻不渲染頁面的解決

    這篇文章主要介紹了vue更新數(shù)據(jù)卻不渲染頁面的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 6種Vue中常用數(shù)據(jù)加密方式的使用詳解

    6種Vue中常用數(shù)據(jù)加密方式的使用詳解

    在Vue.js項目中,你可能需要執(zhí)行數(shù)據(jù)加密以確保敏感信息的安全,這篇文章為大家整理了Vue中常用的6種數(shù)據(jù)加密方式的使用,需要的小伙伴可以參考下
    2024-03-03
  • Vue繪制雙Y軸折線柱狀圖

    Vue繪制雙Y軸折線柱狀圖

    這篇文章主要介紹了Vue繪制雙Y軸折線柱狀圖實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue中使用vue-pdf組件實現(xiàn)文件預覽及相應報錯解決

    vue中使用vue-pdf組件實現(xiàn)文件預覽及相應報錯解決

    在需求中,經(jīng)常遇見pdf的在線預覽效果,很多pdf插件不支持vue3,或者是沒有集成翻頁放大縮小功能,比如vue-pdf,下面這篇文章主要給大家介紹了關于vue中使用vue-pdf組件實現(xiàn)文件預覽及相應報錯解決的相關資料,需要的朋友可以參考下
    2022-09-09
  • vue-router傳參的四種方式超詳細講解

    vue-router傳參的四種方式超詳細講解

    這篇文章主要介紹了vue-router傳參的四種方式超詳細,有router-link路由導航方式傳參,調用$router.push實現(xiàn)路由傳參,通過路由屬性name匹配路由,再根據(jù)params傳遞參數(shù)等等,結合示例代碼講解的非常詳細,需要的朋友可以參考下
    2022-12-12
  • vue實現(xiàn)頁面緩存功能

    vue實現(xiàn)頁面緩存功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)頁面緩存功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • VUE實現(xiàn)一個Flappy Bird游戲的示例代碼

    VUE實現(xiàn)一個Flappy Bird游戲的示例代碼

    這篇文章主要介紹了VUE實現(xiàn)一個Flappy Bird的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Vue2路由動畫效果的實現(xiàn)代碼

    Vue2路由動畫效果的實現(xiàn)代碼

    本篇文章主要介紹了Vue2路由動畫效果的實現(xiàn)代碼,可以根據(jù)不同的路徑去改變動畫的效果,有興趣的可以了解一下
    2017-07-07

最新評論

龙南县| 罗江县| 永善县| 荔浦县| 余姚市| 晋中市| 邵东县| 闽侯县| 洪雅县| 遂溪县| 西华县| 诸暨市| 万年县| 梓潼县| 绥宁县| 木里| 阳高县| 恩施市| 日喀则市| 财经| 梁河县| 达拉特旗| 邵阳县| 肥乡县| 商南县| 抚宁县| 恩施市| 洪雅县| 伊吾县| 进贤县| 太湖县| 天镇县| 健康| 海丰县| 买车| 五莲县| 清新县| 昌乐县| 青田县| 太康县| 敦煌市|