您的位置:首页 > 房产 > 建筑 > 广东网站建设公司排名_免费二级域名分发网_seo网站排名优化软件_阿里云官网首页

广东网站建设公司排名_免费二级域名分发网_seo网站排名优化软件_阿里云官网首页

2024/12/23 6:05:28 来源:https://blog.csdn.net/leeit/article/details/144621249  浏览:    关键词:广东网站建设公司排名_免费二级域名分发网_seo网站排名优化软件_阿里云官网首页
广东网站建设公司排名_免费二级域名分发网_seo网站排名优化软件_阿里云官网首页

嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法

vue-office 是一个支持多种文件格式(docx、excel、pdf、pptx)预览的Vue组件库,它不仅支持Vue2和Vue3,还兼容非Vue框架如React等。这个Web-based的库提供了一个全面的解决方案,用于在线预览pdf、excel、word和pptx文档。

功能特色

一站式解决方案

提供word(.docx)、pdf、excel(.xlsx, .xls)、ppt(.pptx)等多种文档的在线预览方案,一个库满足所有需求。

简单易用

只需提供文档的src(网络地址)即可完成文档预览。

良好的用户体验

选择每个文档的最佳预览方案,保证用户体验和性能都达到最佳状态。

性能优化

针对数据量较大的文件进行了优化。

安装

docx文档预览组件

npm install @vue-office/docx vue-demi@0.14.6

excel文档预览组件

npm install @vue-office/excel vue-demi@0.14.6

pdf文档预览组件

npm install @vue-office/pdf vue-demi@0.14.6

pptx文档预览组件

npm install @vue-office/pptx vue-demi@0.14.6

对于Vue2.6版本或以下,还需要额外安装@vue/composition-api

npm install @vue/composition-api

使用示例

文档预览场景大致可以分为三种:有文档CDN地址、通过接口请求获取文件内容、文件上传时预览。

1. 使用网络地址预览

docx文件预览示例

<template><vue-office-docx:src="docx"style="height: 100vh;"@rendered="rendered"/>
</template><script>
import VueOfficeDocx from '@vue-office/docx'
import '@vue-office/docx/lib/index.css'
export default {components:{VueOfficeDocx},data(){return {docx: 'http://static.shanhuxueyuan.com/test6.docx' //设置文档网络地址,可以是相对地址}},methods:{rendered(){console.log("渲染完成")}}
}
</script>

2. 上传文件预览

读取文件的ArrayBuffer

<template><div><input type="file" @change="changeHandle"/><vue-office-docx :src="src"/></div>
</template><script>
import VueOfficeDocx from '@vue-office/docx'
import '@vue-office/docx/lib/index.css'
export default {components: {VueOfficeDocx},data(){return {src: ''}},methods:{changeHandle(event){let file = event.target.files[0]let fileReader = new FileReader()fileReader.readAsArrayBuffer(file)fileReader.onload =  () => {this.src = fileReader.result}}}
}
</script>

3. 二进制文件预览

如果后端给的不是CDN地址,而是一些POST接口,该接口返回二进制流,则可以调用接口获取文件的ArrayBuffer数据,传递给src属性。

<template><vue-office-docx:src="docx"style="height: 100vh;"@rendered="rendered"/>
</template><script>
import VueOfficeDocx from '@vue-office/docx'
import '@vue-office/docx/lib/index.css'
export default {components:{VueOfficeDocx},data(){return {docx: ''}},mounted(){fetch('你的API文件地址', {method: 'post'}).then(res=>{//读取文件的arrayBufferres.arrayBuffer().then(res=>{this.docx = res})})},methods:{rendered(){console.log("渲染完成")}}
}
</script>

项目依赖的第三方库

  • docx:基于docx-preview库实现,相关issues暂不处理。

  • pdf:基于pdfjs库实现,实现了虚拟列表增加性能。

  • excel:基于exceljs 和 x-data-spreadsheet实现,全网样式支持更好。

  • pptx:基于自研库 pptx-preview 实现,源码单独付费向作者索取。

项目效果

结语

Vue-office为开发者提供了一种简单、高效的Office文件预览解决方案。无论是Word、Excel、PDF还是PPTX文件,都可以轻松实现预览功能。如果你正在寻找这样的解决方案,Vue-office绝对值得一试。

最后,值得一提的是,市场上还有其他同类项目,但Vue-office以其出色的性能和易用性在开发者中建立了良好的口碑。如果你想了解更多关于Vue-office的信息,或者有其他相关问题,欢迎继续关注我们的后续文章。

项目地址

https://github.com/501351981/vue-office

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com