Vue 展示word\excel\pdf 内容

Vue 展示word\excel\pdf 内容

1、前言

  • 项目使用的是若依框架,有一个审核的功能,审核弹窗中需要显示出上传的文件内容,而没有原生的组件可以实现该功能。

2、遇到的问题

  1. 使用 iframe 组件、不报错,但最后实现的效果是下载而不是展示出来

  2. 项目是vue2的版本使用@vue-office,直接报错,解决办法放后面

3、解决方法

  • 最终还是使用的@vue-office,解决办法是vue2需要再引入一个依赖"@vue/composition-api"

4、完整代码

1、 在package.json中添加依赖

"@vue-office/docx": "^1.6.2",
"@vue-office/excel": "^1.7.11",
"@vue-office/pdf": "^2.0.7",
"@vue/composition-api": "^1.7.2",

2、 在main.js中定义组件

//引入相关模块
import VueOfficeDocx from '@vue-office/docx/lib'
import VueOfficeExcel from '@vue-office/excel/lib'
import VueOfficePdf from '@vue-office/pdf/lib'
//引入相关样式
import '@vue-office/docx/lib/v2/index.css'

3、 最后在界面中使用就行了

 <el-form-item label="相关证书证明复印件">
    <div  v-if="getFileType( form.fileUrl) == 'docx' || getFileType( form.fileUrl) == 'doc'">
     <VueOfficeDocx style="width:100% ;height: 500px;" :src=" form.fileUrl" />
    </div>
   <div v-if="getFileType( form.fileUrl) == 'excel' || getFileType( form.fileUrl) == 'xlsx' || getFileType( form.fileUrl) == 'xls'">
     <VueOfficeExcel style="width:100% ;height: 500px;" :src=" form.fileUrl" />
   </div>
   <div v-if="getFileType( form.fileUrl) == 'pdf'">
     <VueOfficePdf style="width:100% ;height: 500px;" :src=" form.fileUrl" />
   </div>
 </el-form-item>

4、这里有个判断文件类型的方法getFileType,在vue的method中定义一下即可

getFileType(file) {
      const fileName = file.split('.');
      const fileExt = fileName[fileName.length - 1];
      return fileExt
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值