当前位置:首页 > 科技  > 软件

Vue2问题:分享一个通用多文件类型预览库

来源: 责编: 时间:2024-02-29 14:39:45 262观看
导读1. 需求分析当我们在做文件预览功能时,往往会遇到一种糟糕的情况。就是每预览一种类型的文件,就需要重新安装、配置、编写一个新的库来实现,很麻烦,也很繁琐。于是,我寻找了一个可以通用的预览库,来处理这个问题。vue-offic

ESZ28资讯网——每日最新资讯28at.com

1. 需求分析

当我们在做文件预览功能时,往往会遇到一种糟糕的情况。ESZ28资讯网——每日最新资讯28at.com

就是每预览一种类型的文件,就需要重新安装、配置、编写一个新的库来实现,很麻烦,也很繁琐。ESZ28资讯网——每日最新资讯28at.com

于是,我寻找了一个可以通用的预览库,来处理这个问题。ESZ28资讯网——每日最新资讯28at.com

vue-office,一个支持多种文件docx、excel、pdf预览的vue组件库,作者hit757。这个库不仅能支持vue2/3,也支持非Vue框架的预览使用。ESZ28资讯网——每日最新资讯28at.com

先看一下线上演示效果,如果实现效果与项目使用不符,为节约朋友们时间,可自行选择是否向下阅读。演示地址:https://501351981.github.io/vue-office/examples/dist/#/docx。ESZ28资讯网——每日最新资讯28at.com

如果朋友们觉得能用,就继续往下面看看它的实现。ESZ28资讯网——每日最新资讯28at.com

ESZ28资讯网——每日最新资讯28at.com

ESZ28资讯网——每日最新资讯28at.com

2. 实现步骤

(1)关于针对特定类型文件的预览库

如果不使用这种vue-office通用的多文件类型预览库,我们可能需要使用如下这些,关于针对特定类型文件的预览库,包括但不限于:ESZ28资讯网——每日最新资讯28at.com

  • 预览PDF:

pdf.js:是由 Mozilla 开发的用于在浏览器中渲染PDF文件的JavaScript库。你可以使用它在Vue项目中嵌入PDF预览功能。ESZ28资讯网——每日最新资讯28at.com

Vue-PDF:是一个用于在Vue项目中显示PDF文件的组件。它基于PDF.js构建,提供了简单易用的API。ESZ28资讯网——每日最新资讯28at.com

  • 预览Excel:

SheetJS:是一个强大的用于处理Excel文件的JavaScript库。你可以使用它在Vue项目中读取Excel文件并显示内容。ESZ28资讯网——每日最新资讯28at.com

  • 预览Word:

Mammoth.js:是一个用于将.docx文件转换为HTML的JavaScript库。你可以使用它在Vue项目中将Word文档转换为HTML并显示。ESZ28资讯网——每日最新资讯28at.com

  • 预览图片:

el-image组件:预览图片的需求,用它我觉得一般就足够了。ESZ28资讯网——每日最新资讯28at.com

Viewer.js:是一个强大的用于在浏览器中查看图片的JavaScript库。你可以使用它在Vue项目中实现图片预览功能。ESZ28资讯网——每日最新资讯28at.com

Vue Image Viewer:是一个用于在Vue项目中实现图片查看器功能的组件。它支持缩放、旋转等功能。ESZ28资讯网——每日最新资讯28at.com

(2)vue-office预览word文件使用

安装依赖:ESZ28资讯网——每日最新资讯28at.com

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

如果是vue2.6版本或以下还需要额外安装 @vue/composition-api。ESZ28资讯网——每日最新资讯28at.com

npm install @vue/composition-api/

使用文件的网络地址预览代码:ESZ28资讯网——每日最新资讯28at.com

<template><vue-office-docx :src="docx"style="height: 100vh;"@rendered="rendered"/></template><script>//引入VueOfficeDocx组件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>

使用上传文件预览代码(读取文件的ArrayBuffer):ESZ28资讯网——每日最新资讯28at.com

<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>

使用接口返回的二进制文件预览代码:ESZ28资讯网——每日最新资讯28at.com

如果后端给的不是CDN地址,而是一些POST接口,该接口返回二进制流,则可以调用接口获取文件的ArrayBuffer数据,传递给src属性。ESZ28资讯网——每日最新资讯28at.com

<template><vue-office-docx :src="docx"style="height: 100vh;"@rendered="rendered"/></template><script>//引入VueOfficeDocx组件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>

(3)vue-office预览excel文件使用

安装依赖:ESZ28资讯网——每日最新资讯28at.com

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

如果是vue2.6版本或以下还需要额外安装 @vue/composition-api。ESZ28资讯网——每日最新资讯28at.com

npm install @vue/composition-api/

使用文件的网络地址预览代码、使用上传文件预览代码、使用接口返回的二进制文件预览代码,基本都和word文件预览使用相同,只不过需要修改逻辑中对样式和组件对象的引用:ESZ28资讯网——每日最新资讯28at.com

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

(4)vue-office预览pdf文件使用

安装依赖:ESZ28资讯网——每日最新资讯28at.com

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

如果是vue2.6版本或以下还需要额外安装 @vue/composition-api。ESZ28资讯网——每日最新资讯28at.com

npm install @vue/composition-api/

使用文件的网络地址预览代码、使用上传文件预览代码、使用接口返回的二进制文件预览代码,基本都和word文件预览使用相同,只不过需要修改逻辑中对样式和组件对象的引用:ESZ28资讯网——每日最新资讯28at.com

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

3. 问题详解

(1)关于vue-office文档地址

为了朋友们阅读到此处时,方便查阅官方文档学习。ESZ28资讯网——每日最新资讯28at.com

最后附上,vue-office官方文档地址:https://github.com/501351981/vue-office。ESZ28资讯网——每日最新资讯28at.com

关于非Vue框架的使用,也请移步参考官方文档。ESZ28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-75310-0.htmlVue2问题:分享一个通用多文件类型预览库

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: springboot-如何配置线程池实现定时任务

下一篇: 面试必备:四种经典限流算法讲解

标签:
  • 热门焦点
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页&ldquo;充值中心&rdquo;入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事&ldquo;起猛了,我能看得懂日语了&rdquo;。&ldquo;为什么日本人说话我能听懂?&rdquo;&ldquo;中文不像中文,日语不像日语,但是我竟然看懂了&rdquo;&hellip;&hell
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
  • 3699元!iQOO Neo8 Pro顶配版今日首销:1TB UFS 4.0同价位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更是首发搭载了联发科天玑9200+旗舰
  • 2299元起!iQOO Pad明晚首销:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其最大的卖点
  • 三翼鸟智能家居亮相电博会,让用户体验更真实

    2021电博会在青岛国际会展中心开幕中,三翼鸟直接把“家”搬到了现场,成为了展会的一大看点。这也是三翼鸟继9月9日发布了行业首个一站式定制智慧家平台后的
Top