vue項目預(yù)覽excel表格功能(file-viewer插件)
file-viewer的插件github地址如下
場景
我沒有直接使用file-viewer,是按照網(wǎng)上搜來的方法,只使用了file-viewer的預(yù)覽xlsx的功能,它里面還有預(yù)覽ppt,pdf,圖片等功能。

第一步:安裝相關(guān)依賴包(exceljs,)
npm install exceljs --save npm install '@handsontable/vue' --save npm install handsontable --save npm install 'handsontable/i18n' --save //這個依賴我沒有下成功,不過也能正常運(yùn)行
第二步:新建一個xlsxView的文件夾,將file-viewer里相關(guān)預(yù)覽xlsx的代碼放進(jìn)去。


第三步:新窗口打開,在預(yù)覽組件里引入并寫邏輯 html部分
<template>
<div>
<div v-if="fileType === 'xlsx'" ref="output" />
<div v-if="fileType === 'pptx'" ref="pptRef"></div>
</div>
</template>js部分
import renderSheet from '../xlsxView'; // 引入
// mounted生命周期
mounted() {
// 從路由地址中獲取fileUrl,fileType
this.fileUrl = this.$route.query.fileUrl ? this.$route.query.fileUrl : null
this.fileType = this.$route.query.fileType ? this.$route.query.fileType : null
if (this.fileUrl == null) {
this.$message({
type: 'error',
message: '文件地址無效,請刷新后重試'
})
}
// 加載文件內(nèi)容
this.uploading(this.fileUrl)
}
// methods方法
methods: {
// 加載文件內(nèi)容
uploading(file) {
// downloadFileXLS是接口,fileKey傳的是文件地址,調(diào)接口獲取文件流
downloadFileXLS({fileKey: file}).then(res => {
if(this.fileType === 'xlsx') {
// 預(yù)覽xlsx
this.displayResult(res)
} else if(this.fileType === 'pptx') {
// 預(yù)覽pptx,可忽略,該篇文章不涉及pptx的預(yù)覽
this.previewPptx(res)
}
})
},
displayResult(buffer) {
// 生成新的dom
const node = document.createElement('div')
// 添加孩子,防止vue實(shí)例替換dom元素
if (this.last) {
this.$refs.output.removeChild(this.last.$el)
this.last.$destroy()
}
const child = this.$refs.output.appendChild(node)
// 調(diào)用渲染方法進(jìn)行渲染
return new Promise((resolve, reject) =>
renderSheet(buffer, child).then(resolve).catch(reject)
)
}
}總結(jié)
還有一種使用luckysheet和luckyexcel來實(shí)現(xiàn)預(yù)覽excel的方法,鏈接如下。
vue項目使用luckyexcel預(yù)覽excel表格
到此這篇關(guān)于vue項目預(yù)覽excel表格(file-viewer插件)的文章就介紹到這了,更多相關(guān)vue項目預(yù)覽excel表格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue2.0 + element UI 中 el-table 數(shù)據(jù)導(dǎo)出Excel的方法
- vue項目使用luckyexcel預(yù)覽excel表格功能(心路歷程)
- Vue3實(shí)現(xiàn)動態(tài)導(dǎo)入Excel表格數(shù)據(jù)的方法詳解
- 使用SpringBoot+EasyExcel+Vue實(shí)現(xiàn)excel表格的導(dǎo)入和導(dǎo)出詳解
- vue使用axios導(dǎo)出后臺返回的文件流為excel表格詳解
- vue項目中常見的三種文件類型在線預(yù)覽實(shí)現(xiàn)(pdf/word/excel表格)
- vue中el-table前端如何導(dǎo)出excel數(shù)據(jù)表格
相關(guān)文章
Vue應(yīng)用國際化(i18n)的核心方案與實(shí)踐技巧
國際化(Internationalization,簡稱i18n)是現(xiàn)代Web應(yīng)用開發(fā)中不可或缺的重要功能,本文將深入探討Vue生態(tài)中最流行的國際化解決方案,從原理到實(shí)踐,帶你全面掌握Vue應(yīng)用的國際化實(shí)現(xiàn),需要的朋友可以參考下2026-01-01
Vue?el-table實(shí)現(xiàn)右鍵菜單功能
這篇文章主要為大家詳細(xì)介紹了Vue?el-table實(shí)現(xiàn)右鍵菜單功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
element-plus 下拉框?qū)崿F(xiàn)全選的示例代碼
本文主要介紹了element-plus 下拉框?qū)崿F(xiàn)全選的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
vue如何使用window.open打開頁面并拼接參數(shù)
這篇文章主要介紹了vue如何使用window.open打開頁面并拼接參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue登錄功能實(shí)現(xiàn)全套詳解(含封裝axios)
登錄功能對于前端剛?cè)腴T不久的同學(xué)來說較為困難,下面這篇文章主要給大家介紹了關(guān)于Vue登錄功能實(shí)現(xiàn)(含封裝axios)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12

