vue2 预览word文件
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
1. 使用vue-office
父组件调用init方法即,适用于远程url和本地文件
npm install @vue-office/docx vue-demi
<template>
<el-dialog
v-el-drag-dialog
:visible.sync="previewOpen"
:close-on-click-modal="false"
append-to-body
custom-class="previewDialog"
@close="closeDialog"
>
<vue-office-docx :src="docx" @rendered="rendered" />
</el-dialog>
</template>
<script>
import VueOfficeDocx from '@vue-office/docx'
import axios from 'axios'
export default {
components: {
VueOfficeDocx
},
data() {
return {
previewOpen: false,
docx: '' // 远程url地址,本次使用blob文件流转url
}
},
beforeDestroy() {
if (this.docx) {
URL.revokeObjectURL(this.docx) // 清除Blob URL
}
},
methods: {
// 预览
init(id) {
axios({
method: 'get',
responseType: 'blob',
url: '' // 自己的服务器,提供的一个word下载文件接口
}).then((res) => {
this.previewOpen = true
this.$nextTick(() => {
this.docx = window.URL.createObjectURL(res.data)
})
})
},
rendered() {
console.log('渲染完成')
},
closeDialog() {
this.previewOpen = false
}
}
}
</script>
<style scoped>
.previewDialog .el-dialog__headerbtn .el-dialog__close {
z-index: 2001;
}
.word {
display: block;
}
</style>
2.使用docx-preview
父组件调用init方法即可,适用于本地文件
npm install docx-preview
<template>
<el-dialog
v-el-drag-dialog
:visible.sync="previewOpen"
:close-on-click-modal="false"
append-to-body
custom-class="previewDialog"
@close="closeDialog"
>
<div class="word">
<div ref="myfile" />
</div>
</el-dialog>
</template>
<script>
const docx = require('docx-preview')
import axios from 'axios'
export default {
data() {
return {
previewOpen: false
}
},
methods: {
init(id) {
axios({
method: 'get',
responseType: 'blob',
url: '' // 自己的服务器,提供的一个word下载文件接口
}).then((res) => {
this.previewOpen = true
this.$nextTick(() => {
docx.renderAsync(res.data, this.$refs.myfile)
})
})
},
closeDialog() {
this.previewOpen = false
}
}
}
</script>
<style scoped>
.previewDialog .el-dialog__headerbtn .el-dialog__close {
z-index: 2001;
}
.word {
display: block;
}
</style>
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)