При работе над проектами вы столкнетесьdocx
、xlsx
、pdf
Требования к онлайн-просмотру для других файлов,Эта потребность в резерве может быть решена разными способами.,Эта статья основана наvue-office
выполнить Чистый внешний просмотр файла。
Как показано ниже,соответственноdocx
、xlsx
、pdf
Три типа файлов, загружаемых онлайн Эффект。Вы также можете посетитьОфициальный сайт предварительного просмотраПроверять Эффект。
существоватьpackage.json
Добавьте в файл следующие зависимости,и передать командуnpm i
Установить зависимости。
{
...,
"dependencies": {
"@vue-office/docx": "1.6.0",
"@vue-office/excel": "1.6.0",
"@vue-office/pdf": "1.6.0"
},
}
существоватьvue
в файле Введение зависимостей, пример кода выглядит следующим образом:
//Вводим связанные стили
import '@vue-office/docx/lib/index.css'
import '@vue-office/excel/lib/index.css'
//Представляем компонент VueOffice
import VueOfficeDocx from '@vue-office/docx'
import VueOfficeExcel from '@vue-office/excel'
import VueOfficePdf from '@vue-office/pdf'
export default {
components: {
VueOfficeDocx,
VueOfficeExcel,
VueOfficePdf
},
}
<template>
<div class="layout-file">
<div class="layout-file-title">{{docx}}</div>
<vue-office-docx :src="docx" @rendered="rendered"/>
</div>
<div class="layout-file">
<div class="layout-file-title">{{excel}}</div>
<vue-office-excel :src="excel" @rendered="rendered"/>
</div>
<div class="layout-file">
<div class="layout-file-title">{{pdf}}</div>
<vue-office-pdf style="height: 100%;" :src="pdf" @rendered="rendered"/>
</div>
</template>
Полный код калибровки выглядит следующим образом:
<template>
<div class="layout-file">
<div class="layout-file-title">{{docx}}</div>
<vue-office-docx :src="docx" @rendered="rendered"/>
</div>
<div class="layout-file">
<div class="layout-file-title">{{excel}}</div>
<vue-office-excel :src="excel" @rendered="rendered"/>
</div>
<div class="layout-file">
<div class="layout-file-title">{{pdf}}</div>
<vue-office-pdf style="height: 100%;" :src="pdf" @rendered="rendered"/>
</div>
</template>
<script>
//Вводим связанные стили
import '@vue-office/docx/lib/index.css'
import '@vue-office/excel/lib/index.css'
//Представляем компонент VueOffice
import VueOfficeDocx from '@vue-office/docx'
import VueOfficeExcel from '@vue-office/excel'
import VueOfficePdf from '@vue-office/pdf'
export default {
components: {
VueOfficeDocx,
VueOfficeExcel,
VueOfficePdf
},
data() {
return {
pdf: 'http://localhost:18081/doc.pdf',
excel: 'http://localhost:18081/doc.xlsx',
docx: 'http://localhost:18081/doc.docx',
ppt: 'http://localhost:18081/doc.pptx'
}
},
methods: {
rendered() {
console.log('rendered')
}
}
}
</script>
<style lang="scss" scoped>
.layout-file {
width: calc(50% - 1rem);
height: 50%;
float: left;
margin-top: 0.8rem;
margin-right: 0.8rem;
position: relative;
border: 1px solid #f00;
border-radius: 0.3rem;
&:nth-child(1), &:nth-child(2) {
margin-top: 0;
}
.layout-file-title {
position: absolute;
top: 0.5rem;
right: 1.5rem;
background-color: rgba(255,0,0,0.8);
padding: 0.1rem 0.4rem;
z-index: 99;
color: #fff;
border-radius: 0.3rem;
font-size: 12px;
}
}
</style>