美文网首页
vue引用vue-office实现docx、excel、pdf等

vue引用vue-office实现docx、excel、pdf等

作者: 清风昙 | 来源:发表于2024-05-15 22:16 被阅读0次
vue-office

vue-office支持多种文件(docx、excel、pdf)预览的vue组件库,支持vue2/3,也支持非Vue框架的预览。

特点

一站式:提供word(.docx)、pdf、excel(.xlsx, .xls)多种文档在线预览
简单:只需提供文档的src(网络地址、本地地址)即可完成文档预览
体验好:选择每个文档的最佳预览方案,保证用户体验和性能都达到最佳状态
性能好:针对数据量较大做了优化

安装
#docx文档预览
npm install @vue-office/docx

#excel文档预览
npm install @vue-office/excel

#pdf文档预览
npm install @vue-office/pdf

如果是vue2.6版本或以下还需要额外安装 @vue/composition-api

npm install @vue/composition-api
使用例子

文档预览场景大致分为两种:
1.网络地址/本地项目地址,比如 https://***.pdf
2.文件上传时预览,可以通过获取文件的ArrayBuffer或Blob

pdf文件预览

使用网络地址/本地项目地址

<template>
  <div>
    <vue-office-pdf
      :src="pdfUrl"
      style="height: 100vh"
      @rendered="renderedHandler"
      @error="errorHandler"
    />
  </div>
</template>

<script>
import VueOfficePdf from "@vue-office/pdf";
export default {
  name: "PdfView",
  components: {
    VueOfficePdf,
  },
  data() {
    return {
      pdfUrl: "/pdf-test.pdf",
    };
  },
  mounted() {},
  methods: {
    renderedHandler() {
      console.log("渲染完成");
    },
    errorHandler() {
      console.log("渲染失败");
    },
  },
};
</script>
<style scoped>
</style>

此处pdf文件使用的是本地项目下的文件,存在放public目录下


image.png

文件上传时预览

<template>
  <div>
    <el-upload
      action=""
      :show-file-list="false"
      :before-upload="beforeAvatarUpload"
    >
      <el-button size="small" type="primary">选择文件</el-button>
    </el-upload>
  </div>
</template>

<script>
import VueOfficePdf from "@vue-office/pdf";
export default {
  name: "PdfView",
  components: {
    VueOfficePdf,
  },
  data() {
    return {
      pdfUrl: "/pdf-test.pdf",
    };
  },
  mounted() {},
  methods: {
    beforeAvatarUpload(file) {
      let fileReader = new FileReader();
      fileReader.readAsArrayBuffer(file);
      fileReader.onload = () => {
        this.pdfUrl = fileReader.result;
      };
    }
  },
};
</script>
<style scoped>
</style>

另外docx和excel文档预览和pdf使用方式一致

参考资料:
https://www.npmjs.com/package/@vue-office/excel

相关文章

网友评论

      本文标题:vue引用vue-office实现docx、excel、pdf等

      本文链接:https://www.haomeiwen.com/subject/nvkbfjtx.html