Vue实现docx/xlsx/pdf等类型文件预览功能
蛰伏已久 人气:0都2023年了,怎么文件预览还这么难!
发现了问题之后,就想着能不能实现一个简单的VUE组件库,能够解决以上问题,让新手前端,能够非常高效的完成文件预览任务。
于是,我期望开发一个vue-office组件库,它必须满足以下3个要求
- 使用一定要简单,对新手要友好,即传递一个文件地址,就可实现预览
- 提供多种文件的一站式预览解决方案,解决常见的docx、excel、pdf三种文件的预览
- 预览效果也好,不只是对内容预览,也要支持样式
要求明确了,实现就相对简单了,从github上筛选每个文档最优的预览方案,然后封装成VUE组件,但是坑还是非常多的,文章最后一部分介绍。
使用
安装
有三个组件,可以分别根据需要进行安装
//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中的介绍。
加载全部内容