都2023年了,怎么文件预览还这么难!
发现了问题之后,就想着能不能实现一个简略的VUE组件库,可能解决以上问题,让老手前端,可能十分高效的实现文件预览工作。
于是,我冀望开发一个vue-office组件库,它必须满足以下3个要求
- 应用肯定要简略,对老手要敌对,即传递一个文件地址,就可实现预览
- 提供多种文件的一站式预览解决方案,解决常见的docx、excel、pdf三种文件的预览
- 预览成果也好,不只是对内容预览,也要反对款式
要求明确了,实现就绝对简略了,从github上筛选每个文档最优的预览计划,而后封装成VUE组件,然而坑还是十分多的,文章最初一部分介绍。
应用
查看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>复制代码
整个应用形式非常简单,基本上给定文档的src地址,或者是上传文件的ArrayBuffer、Blob格局数据就可实现预览,具体办法见github中的介绍。
github源码