vue预览excel文档_在vue中,实现纯前端读取和展示excel文件

本文介绍如何在Vue项目中利用XLSX库实现纯前端的Excel文件预览和读取。首先,需要安装XLSX依赖,并将Excel文件放在静态资源目录下。然后,在组件中通过XLSX的API读取Excel数据,转换为JSON并显示在表格中。当工作表切换时,实时更新表格内容。
摘要由CSDN通过智能技术生成

本项目使用vue Element

使用的插件:XLSX

需要在项目中安装依赖 npm install XLSX

excel表格要放在src/static目录下

:data="tableData"

style="width: 100%">

v-for="(value,key,index) in tableData[2]"

:key="index"

:prop="key"

:label="key">

import XLSX from 'xlsx'

export default {

data () {

return {

tableData: [

{

'接口大类': '基础信息',

'接口类别': '人防部门',

'接口类别ID': 'O2_001'

},

{

'接口大类': '基础信息',

'接口类别': '人防部门',

'接口类别ID': 'O2_001'

}

],

card: [],

cardActive: '',

workbook: {}

}

},

watch: {

cardActive (ov, nv) {

this.getTable(ov)

}

},

mounted () {

this.readWorkbookFromRemoteFile('/static/o2.xlsx')

},

methods: {

readWorkbookFromRemoteFile: function (url) {

var xhr = new XMLHttpRequest()

xhr.open('get', url, true)

xhr.responseType = 'arraybuffer'

let _this = this

xhr.onload = function (e) {

if (xhr.status === 200) {

var data = new Uint8Array(xhr.response)

var workbook = XLSX.read(data, {type: 'array'})

console.log(workbook)

var sheetNames = workbook.SheetNames // 工作表名称集合

_this.workbook = workbook

_this.card = sheetNames

_this.cardActive = sheetNames[0]

_this.getTable(sheetNames[0])

}

}

xhr.send()

},

getTable (sheetName) {

console.log(111111111111)

console.log(sheetName)

var worksheet = this.workbook.Sheets[sheetName]

this.tableData = XLSX.utils.sheet_to_json(worksheet)

console.log(this.tableData)

}

}

}

#table

font-family: 'Avenir', Helvetica, Arial, sans-serif;

-webkit-font-smoothing: antialiased;

-moz-osx-font-smoothing: grayscale;

color: #2c3e50;

margin-top: 60px;

border 1px solid #ebebeb

padding 20px

width 80%

margin 20px auto

border-shadow 0 0 8px 0 rgba(232,237,250,.6), 0 2px 4px 0 rgba(232,237,250,.5)

border-radius 10px

overflow scroll

height 100%

.tab

margin 0 0 20px 0

display flex

flex-direction row

.is-active{

background-color:#409EFF

}

span{

background-color:red

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值