VUE实现文档预览【pdf,docx,excel】

提示:这篇文档主要依据vue的插件实现文档的页面展示

pdf \ docx \ excel 等类型文件的页面预览

一、安装vue组件

提示:这里可以根据需求安装对应组件

	#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

如果使用的是vue2.6及以下版本需要额外安装@vue/composition-api

npm install @vue/composition-api

二、文件预览

文件预览(网络地址)

提示:paf、docx、excel 都可以用此方法预览 按需引入

<template>
  <div>
    <vue-office-docx
      :src="docx"
      style="height: 100vh"
      @rendered="renderedHandler"
      @error="errorHandler"
    />
    <vue-office-excel
      :src="excel"
      style="height: 100vh"
      @rendered="renderedHandler"
      @error="errorHandler"
    />
    <vue-office-pdf
      :src="pdf"
      style="height: 100vh"
      @rendered="renderedHandler"
      @error="errorHandler"
    />
  </div>
</template>
<script>
//引入VueOfficeDocx组件
import VueOfficeDocx from '@vue-office/docx'
import VueOfficeExcel from '@vue-office/excel'
import VueOfficePdf from '@vue-office/pdf'
//引入相关样式
import '@vue-office/docx/lib/index.css'

export default {
    components:{
        VueOfficeDocx,
        VueOfficeExcel ,
        VueOfficePdf 
    },
    data(){
        return {
            docx: '',
            excel:'',
            pdf:''
        }
    },
    mounted(){ 
    },
    methods:{
        methods: {
        renderedHandler() {
            console.log("渲染完成")
        },
        errorHandler() {
            console.log("渲染失败")
        }
    }
}
</script>

文件预览(上传文件)

<template>
    <div>
        <input type="file" @change="changeHandle"/>
        <vue-office-docx :src="src"/>
    </div>
</template>

<script>
import VueOfficeDocx from '@vue-office/docx' 

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>

文件预览(二进制文件)

<template>
    <vue-office-docx
        :src="src"
        style="height: 100vh;" 
    />
</template>

<script> 
import VueOfficeDocx from '@vue-office/docx' 

export default {
    components:{
        VueOfficeDocx
    },
    data(){
        return {
            src: ''
        }
    },
    mounted(){
        fetch('你的API文件地址', {
            method: 'post'
        }).then(res=>{
            //读取文件的arrayBuffer
            res.arrayBuffer().then(res=>{
                this.src= res
            })
        })
    }, 
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值