vue word预览,excel预览,pdf预览

该博客介绍了前端实现Word、Excel和PDF文档预览的方法。使用mammoth.js库来预览.docx文件,通过sheetjs处理Excel文件,而vue-pdf库用于展示PDF文档。详细代码示例展示了如何使用这些库进行文件预览,并提供了根据文件类型跳转预览页面的逻辑。

一、word预览–mammoth.js
安装:​​npm install --save mammoth​​

tip:只能预览.docx文件

word.vue:

<template>
  <div>
    <div id="wordView" v-html="vHtml" />
  </div>
</template>

<script>
import mammoth from "mammoth";
export default {
  name: "word",
  data() {
    return {
      vHtml: "",
      wordURL:''//文件地址
    };
  },
  created() {
    let vm=this;
    vm.wordURL = this.$route.query.wordURL;

    const xhr = new XMLHttpRequest();
    xhr.open("get", this.wordURL, true);
    xhr.responseType = "arraybuffer";
    xhr.onload = function () {
      if (xhr.status == 200) {
        mammoth
          .convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) })
          .then(function (resultObject) {
            vm.$nextTick(() => {
              // document.querySelector("#wordView").innerHTML =
              //   resultObject.value;
              vm.vHtml=resultObject.value;
            });
          });
      }
    };
    xhr.send();
  },
  methods: {
  },
};
</script>

 跳转带的参数:

if (row.fileType == 3) {
         //word
         let routeData = this.$router.resolve({
           path: "/word",
           query: {
             wordURL: response.data,
           },
         });
         window.open(routeData.href, "_blank"); 
       } else if (row.fileType == 5) {
         //pdf
         window.open(response.data);
       } else if (row.fileType == 4) {
         //excel
         let routeData = this.$router.resolve({
           path: "/excel",
           query: {
             excelURL: response.data,
           },
         });
         window.open(routeData.href, "_blank");
       }

二、excel预览–sheetjs
安装:​npm install --save xlsx​


1.
三、pdf预览——vue-pdf
安装:​​npm install --save vue-pdf​​

### 三级标题:实现方案与技术选型 在内网环境中,使用 Vue 实现 WordExcelPDF 文件的预览功能,需要综合考虑文件格式的解析能力、浏览器兼容性以及内网部署的可行性。以下是针对不同文件类型的解决方案: #### WordExcel 文件预览 在内网环境中,若需实现 WordExcel 文件的预览功能,推荐使用 `XLSX` 和 `mammoth.js` 等 JavaScript 库进行本地解析和渲染。这些库支持从本地加载文件并将其转换为 HTML 格式,从而实现预览。 例如,使用 `XLSX` 库可以将 Excel 文件解析为 JSON 数据,并将其渲染为 HTML 表格: ```javascript const workbook = XLSX.utils.table_to_book(document.getElementById('table')); const json = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]); console.log(json); ``` 对于 Word 文件,可以使用 `mammoth.js` 进行解析和渲染,适用于 `.docx` 格式的文件: ```javascript mammoth.convertToHtml({arrayBuffer: fileArrayBuffer}) .then(function(result) { document.getElementById('word-preview').innerHTML = result.value; }) .catch(function(error) { console.error(error); }); ``` 这种方式适用于需要本地解析和渲染的场景,且不依赖外部服务,适合内网环境[^3]。 #### PDF 文件预览 对于 PDF 文件的预览,`PDF.js` 是一个非常强大的解决方案。它可以在不依赖任何插件的情况下,在浏览器中直接渲染 PDF 文件。`PDF.js` 由 Mozilla 提供,支持复杂的 PDF 格式,并提供良好的跨浏览器兼容性。 实现 PDF 文件预览的方式如下: ```html <iframe src="https://mozilla.github.io/pdf.js/build/pdf.js/web/viewer.html?file=http://storage.xuetangx.com/public_assets/xuetangx/PDF/sample.pdf" width="100%" height="600px" frameborder="0"></iframe> ``` 此外,`PDF.js` 还支持自定义渲染和交互功能,适合需要高度定制 PDF 预览的场景[^2]。 #### 使用 OnlyOffice 实现文档预览与编辑 除了本地解析方案,还可以使用开源工具 `OnlyOffice` 实现文档的预览与编辑功能。`OnlyOffice` 提供了一个完整的文档编辑器,支持 WordExcel 和 PowerPoint 文件的在线预览与编辑,适合需要支持多人协同编辑的场景。 在 Vue 项目中集成 `OnlyOffice` 的方式如下: 1. 部署 `OnlyOffice` 文档服务器。 2.Vue 项目中使用 `<iframe>` 或 `OnlyOffice` 提供的 SDK 集成文档编辑器。 示例代码如下: ```html <iframe :src="`http://onlyoffice-server:8080/apps/api/documents?fileType=docx&fileName=document.docx`" width="100%" height="600px" frameborder="0"></iframe> ``` 这种方式适用于需要支持复杂文档编辑功能的内网应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值