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

前端實現docx文件預覽的3種方式舉例及分析

 更新時間:2025年03月06日 08:44:09   作者:英子的搬磚日志  
這篇文章主要介紹了前端實現docx文件預覽的3種方式,三種方式分別是docx-preview、vue-office和mammoth,文中給出了詳細的代碼示例,需要的朋友可以參考下

需求:

有一個docx文件,需要按其本身的格式,將內容展示出來,即:實現doc文件預覽。

本文將doc文件存放到前端項目的public目錄下

1、docx-preview 實現(推薦)

安裝命令 npm install docx-preview

實現代碼

<template>
  <div class="document-wrapper">
    <div class="content" ref="contentRef"></div>
  </div>
</template>

<script lang="ts" setup>
import { ref } from "vue";
import axios from "axios";
import { renderAsync } from 'docx-preview';

const contentRef = ref<any>(null);

function getDocxContent() {
  // 注意:如果是前端本地靜態(tài)文件,需要放放在public目錄下
  axios.get('/test.docx', { responseType: 'arraybuffer' }).then((res) => {
    renderAsync(res.data, contentRef.value);
  }).catch((err) => { console.log(err) })
}
getDocxContent();

</script>

<style lang="less">
.document-wrapper {
  margin: 10px;
}

// 設置word文檔的樣式
// .docx-wrapper {
//   background: white !important;
//   border: 1px solid red;

//   section {
//     width: 100% !important;
//     padding: 20px !important;
//   }

//   .docx {
//     box-shadow: none !important;
//   }
// }</style>

效果: 樣式還原度一般,無分頁

2、vue-office 實現

vue-office特點

  • 一站式:提供word(.docx)、pdf、excel(.xlsx, .xls)、ppt(.pptx)多種文檔的在線預覽方案。
  • 簡單:只需提供文檔的src(網絡地址)即可完成文檔預覽。
  • 體驗好:選擇每個文檔的最佳預覽方案,保證用戶體驗和性能都達到最佳狀態(tài)。
  • 性能好:針對數據量較大做了優(yōu)化。

安裝命令

# docx文檔預覽,基于docx-preview庫實現
npm install @vue-office/docx

# excel文檔預覽,基于exceljs和x-data-spreadsheet實現,全網樣式支持更好
npm install @vue-office/excel

# pdf文檔預覽,基于pdfjs庫實現,實現了虛擬列表增加性能
npm install @vue-office/pdf

# pptx文檔預覽,基于pptx-preview實現
npm install @vue-office/pptx

本文只針對word文檔,安裝好如下:

實現代碼

<template>
  <div class="document-wrapper">
    <VueOfficeDocx :src="fileData" />
  </div>
</template>

<script lang="ts" setup>
import { ref } from "vue";
import axios from "axios";
import VueOfficeDocx from '@vue-office/docx'

const fileData = ref<any>(null);

function getDocxContent() {
  // 注意:本地靜態(tài)文件需要放放在public目錄下
  axios.get('/test.docx', { responseType: 'arraybuffer' }).then((res) => {
    fileData.value = res.data;
  }).catch((err) => { console.log(err) })
}
getDocxContent();

</script>

<style lang="less">
.document-wrapper {
  margin: 10px;
}
</style>

效果: 同第一種方式實現的效果

3、mammoth 實現(不推薦)

安裝命令npm install mammoth

實現代碼

<template>
  <div class="document-wrapper">
    <div ref="docxPreviewRef" v-html="fileContent"></div>
  </div>
</template>

<script lang="ts" setup>
import { ref } from "vue";
import axios from "axios";
import mammoth from 'mammoth';

const fileContent = ref<any>(null);

function getDocxContent() {
  axios.get('/test.docx', { responseType: 'arraybuffer' }).then((res) => {
    mammoth.convertToHtml({ arrayBuffer: new Uint8Array(res.data) }).then((res) => {
      fileContent.value = res.value;
    })
  }).catch((err) => { console.log(err) })
}
getDocxContent();

</script>

<style lang="less">
.document-wrapper {
  margin: 10px;
}
</style>

效果: word文檔的樣式沒有了,所以不推薦直接使用此中方式預覽.docx文件

總結 

到此這篇關于前端實現docx文件預覽的3種方式的文章就介紹到這了,更多相關前端實現docx文件預覽內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 原生js實現省市區(qū)三級聯(lián)動代碼分享

    原生js實現省市區(qū)三級聯(lián)動代碼分享

    這篇文章主要介紹了原生js實現省市區(qū)三級聯(lián)動功能以及代碼分享,對此有需要的朋友可以參考學習下。
    2018-02-02
  • JavaScript實現shuffle數組洗牌操作示例

    JavaScript實現shuffle數組洗牌操作示例

    這篇文章主要介紹了JavaScript實現shuffle數組洗牌操作,結合實例形式分析了javascript數組的定義、構造、排序等相關操作技巧,需要的朋友可以參考下
    2019-01-01
  • JS ES6多行字符串與連接字符串的表示方法

    JS ES6多行字符串與連接字符串的表示方法

    這篇文章主要介紹了JS ES6多行字符串與連接字符串的表示方法,結合具體實例形式對比分析了ES6中的多行字符串與連接字符串的表示方法與相關操作技巧,需要的朋友可以參考下
    2017-04-04
  • JS實現div模塊的截圖并下載功能

    JS實現div模塊的截圖并下載功能

    這篇文章主要介紹了JS實現div模塊的截圖并下載功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-10-10
  • javascript過濾數組重復元素的實現方法

    javascript過濾數組重復元素的實現方法

    這篇文章主要介紹了javascript過濾數組重復元素的實現方法的相關資料,需要的朋友可以參考下
    2017-05-05
  • JS動態(tài)更改div高度實現代碼例子

    JS動態(tài)更改div高度實現代碼例子

    在Web開發(fā)中通過使用JavaScript可以動態(tài)地修改HTML元素的屬性和樣式,下面這篇文章主要給大家介紹了關于JS動態(tài)更改div高度實現的相關資料,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-11-11
  • 淺談js中同名函數和同名變量的執(zhí)行問題

    淺談js中同名函數和同名變量的執(zhí)行問題

    下面小編就為大家?guī)硪黄獪\談js中同名函數和同名變量的執(zhí)行問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • javascript自定義右鍵彈出菜單實現方法

    javascript自定義右鍵彈出菜單實現方法

    這篇文章主要介紹了javascript自定義右鍵彈出菜單實現方法,涉及javascript操作鼠標事件及頁面元素的相關技巧,需要的朋友可以參考下
    2015-05-05
  • uniapp使用u-upload組件來實現圖片上傳功能

    uniapp使用u-upload組件來實現圖片上傳功能

    最近在用uniapp開發(fā)微信小程序,下面這篇文章主要給大家介紹了關于uniapp使用u-upload組件來實現圖片上傳功能的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 微信小程序實時聊天WebSocket

    微信小程序實時聊天WebSocket

    這篇文章主要為大家詳細介紹了微信小程序實時聊天WebSocket的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論

个旧市| 同江市| 昭通市| 五河县| 墨江| 新闻| 西峡县| 章丘市| 洞口县| 余庆县| 彰化市| 兴隆县| 博罗县| 秦皇岛市| 肇东市| 抚松县| 盘锦市| 喀喇| 疏附县| 南溪县| 烟台市| 富裕县| 称多县| 兴安盟| 合作市| 广河县| 沁阳市| 平原县| 札达县| 泗水县| 连江县| 玉树县| 敦化市| 林周县| 抚顺市| 石渠县| 万荣县| 巧家县| 康保县| 松溪县| 东平县|