都2023年了,发现前端预览pdf、excel、word文件居然还很麻烦,虽然要用到的代码也不是很多,但是对于新手前端来说,还是有一些困难的,比如:

  • 预览的效果参差不齐,有的预览效果很好,有的预览缺少对样式的支持
  • 使用复杂,本来想着只要传一个文件地址就能预览,结果发现还要写很多细节代码
  • 每种文件都有很多方案需要去选择,比如docx、pdf、excel等,每个文件都有大量的第三方库,需要去甄别测试

于是,空闲时间开发一个vue-office组件库,开发之初,就要求它必须满足以下3个要求

  • 使用一定要简单,对新手要友好,最好只传递一个文件地址,就可实现预览
  • 提供多种文件的一站式预览解决方案,解决常见的docx、excel、pdf三种文件的预览
  • 预览效果也好,不只是对内容预览,也要支持样式

使用

查看demo演示

github源码

安装

考虑到三个包加一起的话会比较大,所以拆成了三个包,需要哪个自行安装即可。

//docx文档预览组件
npm install @vue-office/docx

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

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

使用示例

docx文档的预览

<template>
  <vue-office-docx :src="docx" @rendered="rendered"/>
</template>

<script>
//引入VueOfficeDocx组件
import VueOfficeDocx from '@vue-office/docx'

export default {
  components:{
    VueOfficeDocx
  },
  data(){
    return {
      docx: 'http://static.shanhuxueyuan.com/test6.docx' //设置文档地址
    }
  },
  methods:{
    rendered(){
      console.log("渲染完成")
    }
  }
}
</script>

excel文档预览

<template>
  <vue-office-excel :src="excel" @rendered="rendered"/>
</template>

<script>
//引入VueOfficeExcel组件
import VueOfficeExcel from '@vue-office/excel'
//引入相关样式
import '@vue-office/excel/lib/index.css'

export default {
  components:{
    VueOfficeExcel
  },
  data(){
    return {
      excel: 'http://static.shanhuxueyuan.com/demo/excel.xlsx'//设置文档地址
    }
  },
  methods:{
    rendered(){
      console.log("渲染完成")
    }
  }
}
</script>

pdf文档预览

<template>
  <vue-office-pdf :src="pdf" @rendered="rendered"/>
</template>

<script>
//引入VueOfficePdf组件
import VueOfficePdf from '@vue-office/pdf'

export default {
  components:{
    VueOfficePdf
  },
  data(){
    return {
      pdf: 'http://static.shanhuxueyuan.com/test.pdf' //设置文档地址
    }
  },
  methods:{
    rendered(){
      console.log("渲染完成")
    }
  }
}
</script>

如果不满足需求可以提Issues,也可以自行fork修改,github源码

如果觉得有用,麻烦帮点个赞支持一下~~