Gathering detailed insights and metrics for @vue-office/excel
Gathering detailed insights and metrics for @vue-office/excel
Gathering detailed insights and metrics for @vue-office/excel
Gathering detailed insights and metrics for @vue-office/excel
支持word(.docx)、excel(.xlsx,.xls)、pdf、pptx等各类型office文件预览的vue组件集合,提供一站式office文件预览方案,支持vue2和3,也支持React等非Vue框架。Web-based pdf, excel, word, pptx preview library
npm install @vue-office/excel
Typescript
Module System
Node Version
NPM Version
62.2
Supply Chain
98.5
Quality
89.6
Maintenance
50
Vulnerability
100
License
JavaScript (59.55%)
Vue (40.45%)
Total Downloads
169,897
Last Day
582
Last Week
2,815
Last Month
10,703
Last Year
129,581
4,209 Stars
232 Commits
483 Forks
21 Watching
1 Branches
3 Contributors
Latest Version
1.7.12
Package Id
@vue-office/excel@1.7.12
Unpacked Size
13.21 MB
Size
3.11 MB
File Count
16
NPM Version
8.19.2
Node Version
18.12.1
Publised On
23 Dec 2024
Cumulative downloads
Total Downloads
Last day
36%
582
Compared to previous day
Last week
17.6%
2,815
Compared to previous week
Last month
11.4%
10,703
Compared to previous month
Last year
221.4%
129,581
Compared to previous year
3
支持多种文件(docx、excel、pdf、pptx)预览的vue组件库,支持vue2/3。也支持非Vue框架的预览。
《使用非Vue框架(原生js、React等)、或者Vue里面报错,看这里》
1#docx文档预览组件 2npm install @vue-office/docx vue-demi@0.14.6 3 4#excel文档预览组件 5npm install @vue-office/excel vue-demi@0.14.6 6 7#pdf文档预览组件 8npm install @vue-office/pdf vue-demi@0.14.6 9 10#pptx文档预览组件 11npm install @vue-office/pptx vue-demi@0.14.6
如果是vue2.6版本或以下还需要额外安装 @vue/composition-api
1npm install @vue/composition-api
文档预览场景大致可以分为三种:
1. 使用网络地址预览
1<template> 2 <vue-office-docx 3 :src="docx" 4 style="height: 100vh;" 5 @rendered="rendered" 6 /> 7</template> 8 9<script> 10//引入VueOfficeDocx组件 11import VueOfficeDocx from '@vue-office/docx' 12//引入相关样式 13import '@vue-office/docx/lib/index.css' 14 15export default { 16 components:{ 17 VueOfficeDocx 18 }, 19 data(){ 20 return { 21 docx: 'http://static.shanhuxueyuan.com/test6.docx' //设置文档网络地址,可以是相对地址 22 } 23 }, 24 methods:{ 25 rendered(){ 26 console.log("渲染完成") 27 } 28 } 29} 30</script>
2. 上传文件预览
读取文件的ArrayBuffer
1<template> 2 <div> 3 <input type="file" @change="changeHandle"/> 4 <vue-office-docx :src="src"/> 5 </div> 6</template> 7 8<script> 9import VueOfficeDocx from '@vue-office/docx' 10import '@vue-office/docx/lib/index.css' 11 12export default { 13 components: { 14 VueOfficeDocx 15 }, 16 data(){ 17 return { 18 src: '' 19 } 20 }, 21 methods:{ 22 changeHandle(event){ 23 let file = event.target.files[0] 24 let fileReader = new FileReader() 25 fileReader.readAsArrayBuffer(file) 26 fileReader.onload = () => { 27 this.src = fileReader.result 28 } 29 } 30 } 31} 32</script>
3. 二进制文件预览
如果后端给的不是CDN地址,而是一些POST接口,该接口返回二进制流,则可以调用接口获取文件的ArrayBuffer数据,传递给src属性。
1<template> 2 <vue-office-docx 3 :src="docx" 4 style="height: 100vh;" 5 @rendered="rendered" 6 /> 7</template> 8 9<script> 10//引入VueOfficeDocx组件 11import VueOfficeDocx from '@vue-office/docx' 12//引入相关样式 13import '@vue-office/docx/lib/index.css' 14 15export default { 16 components:{ 17 VueOfficeDocx 18 }, 19 data(){ 20 return { 21 docx: '' 22 } 23 }, 24 mounted(){ 25 fetch('你的API文件地址', { 26 method: 'post' 27 }).then(res=>{ 28 //读取文件的arrayBuffer 29 res.arrayBuffer().then(res=>{ 30 this.docx = res 31 }) 32 }) 33 }, 34 methods:{ 35 rendered(){ 36 console.log("渲染完成") 37 } 38 } 39} 40</script>
通过网络地址预览示例如下,通过文件ArrayBuffer预览和上面docx的使用方式一致。
1<template> 2 <vue-office-excel 3 :src="excel" 4 style="height: 100vh;" 5 @rendered="renderedHandler" 6 @error="errorHandler" 7 /> 8</template> 9 10<script> 11//引入VueOfficeExcel组件 12import VueOfficeExcel from '@vue-office/excel' 13//引入相关样式 14import '@vue-office/excel/lib/index.css' 15 16export default { 17 components: { 18 VueOfficeExcel 19 }, 20 data() { 21 return { 22 excel: 'http://static.shanhuxueyuan.com/demo/excel.xlsx'//设置文档地址 23 } 24 }, 25 methods: { 26 renderedHandler() { 27 console.log("渲染完成") 28 }, 29 errorHandler() { 30 console.log("渲染失败") 31 } 32 } 33} 34</script>
通过网络地址预览示例如下,通过文件ArrayBuffer预览和上面docx的使用方式一致。
1<template> 2 <vue-office-pdf 3 :src="pdf" 4 style="height: 100vh" 5 @rendered="renderedHandler" 6 @error="errorHandler" 7 /> 8</template> 9 10<script> 11//引入VueOfficePdf组件 12import VueOfficePdf from '@vue-office/pdf' 13 14export default { 15 components: { 16 VueOfficePdf 17 }, 18 data() { 19 return { 20 pdf: 'http://static.shanhuxueyuan.com/test.pdf' //设置文档地址 21 } 22 }, 23 methods: { 24 renderedHandler() { 25 console.log("渲染完成") 26 }, 27 errorHandler() { 28 console.log("渲染失败") 29 } 30 } 31} 32</script>
通过网络地址预览示例如下,通过文件ArrayBuffer预览和上面docx的使用方式一致。
1<template> 2 <vue-office-pptx 3 :src="pdf" 4 style="height: 100vh" 5 @rendered="renderedHandler" 6 @error="errorHandler" 7 /> 8</template> 9 10<script> 11import VueOfficePptx from '@vue-office/pptx' 12 13export default { 14 components: { 15 VueOfficePptx 16 }, 17 data() { 18 return { 19 pdf: 'http://****/test.pptx' //设置文档地址 20 } 21 }, 22 methods: { 23 renderedHandler() { 24 console.log("渲染完成") 25 }, 26 errorHandler() { 27 console.log("渲染失败") 28 } 29 } 30} 31</script>
如果该项目帮到了您,节省了您宝贵的开发时间,还请您不吝给项目点个免费的赞。
当然了,如果您能请作者喝杯咖啡,哪怕喝瓶娃娃哈矿泉水,也是对作者最真诚的鼓励,打赏用户欢迎添加微信,后续交流前端相关问题。
如果您有问题要咨询或者解决,可打赏咨询作者,自2024年12月起,可能不会及时处理issues内容,作者也要吃饭,也面临大龄程序员困境。
我们都知道,如果一件事情没有收益,那是很难长久的,特别是对于一个大龄程序员来说,花费大量的时间"用爱发电"对大家来说是非常值得尊敬的,而我感觉对家庭来说可能是不道德的,没有收益,没有正反馈,很难把这个库完善下去,我们也看到了,很多开源库已经多年没有更新了。为了后续开发出更好用的前端office文件预览库,本项目需要大家的支持!
源码需付费向作者索要(打赏50+),打赏用户(无论多少)均可添加作者微信,交流该库或者前端领域话题,源码不得用于开源(这也是关闭源码的原因之一,有些人直接复制开源作为自己项目)。
凝聚作者近10年工作经验的掘金小册《如何写出高质量的前端代码》 已经上线啦,欢迎前端同学关注,希望能够提升大家的前端编码水平。
小册已售 890+份,收到前端同学的高度评价,对提升日常开发效率和质量,有非常大的帮助。
No vulnerabilities found.
No security vulnerabilities found.