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

nodejs(officegen)+vue(axios)在客戶端導(dǎo)出word文檔的方法

 更新時間:2018年07月31日 09:36:09   作者:風(fēng)子豬  
這篇文章主要介紹了nodejs(officegen)+vue(axios)在客戶端導(dǎo)出word文檔的方法,需要的朋友可以參考下

前言

我的項目中有一個需求:點(diǎn)擊按鈕生成可編輯的word文檔訂單詳情的信息

我使用的前端框架是Vue.js、后臺使用的是node.js

node.js生成和導(dǎo)出word文檔我參考的是下面這兩篇文章,寫的挺好的(github上的那篇里面還有node.js生成word、excel、ppt的example,需要詳細(xì)的可以看里面)

http://m.fzitv.net/article/144769.htm

https://github.com/Ziv-Barber...

問題

node.js上面這兩篇文章已經(jīng)講的很不錯了,但是我在實(shí)現(xiàn)的過程中還是出現(xiàn)了一個問題:我在后端能生成一個完整的word文檔,但是在返回前端下載的時候遇到了問題。一開始我一直都以為node.js后臺方面的代碼導(dǎo)致的,畢竟我是第一次寫嘛^_^,但是在不斷的測試中我發(fā)現(xiàn):

1、點(diǎn)擊按鈕用vue里面的axios請求localhost:8081/order/getDoc沒有直接生成word文檔,把返回的數(shù)據(jù)console.log(res)出來查看,發(fā)現(xiàn)得到的數(shù)據(jù)是一堆的亂碼的字符串

2、但是在瀏覽器地址欄中請求同樣的后端接口,發(fā)現(xiàn)能生成一個整個的word文檔!

問題根源

有了頭緒我就開始上網(wǎng)搜尋,我發(fā)現(xiàn),ajax的接受類型只能是string字符串,不是流類型,所以無法實(shí)現(xiàn)文件下載。ajax方式請求的數(shù)據(jù)只能存放在javascipt內(nèi)存空間,可以通過javascript訪問,但是無法保存到硬盤,因為javascript不能直接和硬盤交互,否則將是一個安全問題。

axios是第一個第三方的ajax庫,所以同理。

解決方法

解決的方法我參考了一篇文章前端axios下載excel(二進(jìn)制) http://m.fzitv.net/article/144771.htm

解決方法:利用了blob對象,Blob對象可以看做是存放二進(jìn)制數(shù)據(jù)的容器,它是一個二進(jìn)制大對象,是一個可以存儲二進(jìn)制文件的容器。

methods:{
  handleClick(row){
  console.log(row);
  var orderId = row.orderId + row.oid.toString();
  console.log(orderId);
  this.$ajax({
  method:"get",
  url:"http://localhost:8081/order/getDoc",
  responseType:'blob'
  }).then((res)=>{
  //這里res.data是返回的blob對象
  var blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'}); //application/vnd.openxmlformats-officedocument.wordprocessingml.document這里表示doc類型
  var downloadElement = document.createElement('a');
  var href = window.URL.createObjectURL(blob); //創(chuàng)建下載的鏈接
  downloadElement.href = href;
  downloadElement.download = orderId+'.docx'; //下載后文件名
  document.body.appendChild(downloadElement);
  downloadElement.click(); //點(diǎn)擊下載
  document.body.removeChild(downloadElement); //下載完成移除元素
  window.URL.revokeObjectURL(href); //釋放掉blob對象
  })
  }
 }

總結(jié)

以上所述是小編給大家介紹的nodejs(officegen)+vue(axios)在客戶端導(dǎo)出word文檔的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • node使用Git Bash作為命令行終端示例

    node使用Git Bash作為命令行終端示例

    這篇文章主要為大家介紹了node使用Git Bash作為命令行終端示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 使用npm安裝最新版本nodejs

    使用npm安裝最新版本nodejs

    本文給大家分享的是如何使用npm安裝最新版本nodejs的方法,主要用到了nodejs版本管理模塊n,非常的好用,有需要的小伙伴可以參考下
    2018-01-01
  • node.js中express中間件body-parser的介紹與用法詳解

    node.js中express中間件body-parser的介紹與用法詳解

    這篇文章主要給大家介紹了關(guān)于node.js中express中間件body-parser的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • node.js中的fs.createWriteStream方法使用說明

    node.js中的fs.createWriteStream方法使用說明

    這篇文章主要介紹了node.js中的fs.createWriteStream方法使用說明,本文介紹了fs.createWriteStream方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js安裝及npm國內(nèi)鏡像配置的方法實(shí)現(xiàn)

    Node.js安裝及npm國內(nèi)鏡像配置的方法實(shí)現(xiàn)

    本文主要介紹了Node.js安裝及npm國內(nèi)鏡像配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 在Node.js中使用Swagger自動生成API接口文檔

    在Node.js中使用Swagger自動生成API接口文檔

    這篇文章主要給大家介紹了如何在Node.js項目中使用 Swagger 來自動生成 API接口文檔,使用生成方式有很多種,本文基于swagger-jsdoc+swagger-ui-express快速實(shí)現(xiàn),文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Node.js中的npm單獨(dú)與批量升級依賴包的方式超詳細(xì)講解

    Node.js中的npm單獨(dú)與批量升級依賴包的方式超詳細(xì)講解

    npm outdated僅檢查所有已安裝包的依賴關(guān)系,并將當(dāng)前版本遠(yuǎn)程倉庫中的最新版本進(jìn)行對比,不會升級,這篇文章主要介紹了Node.js中的npm單獨(dú)與批量升級依賴包的方式超詳細(xì)講解,需要的朋友可以參考下
    2024-02-02
  • 快速搭建Node.js(Express)用戶注冊、登錄以及授權(quán)的方法

    快速搭建Node.js(Express)用戶注冊、登錄以及授權(quán)的方法

    這篇文章主要介紹了快速搭建Node.js(Express)用戶注冊、登錄以及授權(quán),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)

    用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)

    這篇文章主要介紹了用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox),非常具有實(shí)用價值,需要的朋友可以參考下
    2017-05-05
  • node.js基于mongodb的搜索分頁示例

    node.js基于mongodb的搜索分頁示例

    本篇文章主要介紹了node.js基于mongodb的搜索分頁示例,mongodb分頁很簡單,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。
    2017-01-01

最新評論

木兰县| 香格里拉县| 土默特左旗| 九江市| 台湾省| 中阳县| 新泰市| 冕宁县| 乌鲁木齐县| 嘉禾县| 綦江县| 余干县| 嵊泗县| 长乐市| 博客| 梨树县| 武川县| 双流县| 临江市| 佛学| 教育| 承德县| 灵璧县| 自贡市| 广汉市| 嵩明县| 克什克腾旗| 漳州市| 乌审旗| 武宁县| 阳原县| 屯门区| 桂林市| 防城港市| 嘉祥县| 平阴县| 金坛市| 教育| 资源县| 吴桥县| 荣昌县|