vue上传excel并展示_(一)vue导入上传excel功能

1、excel上传功能

ref="upload"

:show-upload-list="false"

:default-file-list="defaultList"

:on-success="handleSuccess"

:on-error="handleError"

:format ="['xlsx','xls']"

:max-size="fileSize"

:on-format-error="handleFormatError"

:on-exceeded-size="handleMaxSize"

:before-upload="handleBeforeUpload"

action="//jsonplaceholder.typicode.com/posts/"

style="display: inline-block;width:58px;">

购买明细表

/*文件上传操作*/

import util from '@/libs/util.js';

export default {

name: 'insurance-data-import',

data () {

return {

fileName:'',

fileTemArr:['购买明细表','索赔记录表'],

fileSize:10,

defaultList:[],

};

},

mounted:function(){

},

methods: {

handleSuccess(res,file){

if(res.errcode === 0){

this.$Message.success("数据导入成功!")

this.$refs.upload.clearFiles()

}

},

handleError(error,file){

this.$Message.error("数据导入失败!")

},

handleFormatError (file) {

this.$Notice.warning({

title: '文件格式不正确',

desc: '文件 ' + file.name + ' 格式不正确,请上传.xls,.xlsx文件。'

});

},

handleMaxSize (file) {

this.$Notice.warning({

title: '文件大小错误',

desc: 'File ' + file.name + ' 文件大小不得超过'+this.fileSize+'M'

});

},

pro (file) {

return new Promise((resolve, reject) => {

setTimeout(() => {

this.$Notice.warning({

title: '文件名称错误',

desc: 'File ' + file.name

});

reject(new Error('err'))

}, 100)

})

},

//阻止上传//上传前判断用户选择的模板与实际上传的模板是否相同(文件名判断)

handleBeforeUpload (file) {

let name = '';

if(file.name){

// name = file.name.replace(/\s/g,"").split('.')[0]

name = file.name.split('.')[0]

alert(name)

if(name !== this.fileName){

return this.pro(file)

}

}

}

}

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue导入Excel文件展示,可以使用以下步骤: 1. 安装依赖 ``` npm install xlsx file-saver --save ``` 2. 创建一个input标签,允许用户选择Excel文件并触发事件: ```html <template> <div> <input type="file" @change="handleFileUpload" accept=".xlsx, .xls" /> <table> <thead> <tr> <th v-for="(header, index) in headers" :key="index">{{ header }}</th> </tr> </thead> <tbody> <tr v-for="(row, index) in rows" :key="index"> <td v-for="(cell, index) in row" :key="index">{{ cell }}</td> </tr> </tbody> </table> </div> </template> ``` 3. 在Vue组件定义handleFileUpload方法,该方法将读取Excel文件并将其转换为JSON格式: ```js <script> import XLSX from 'xlsx'; import FileSaver from 'file-saver'; export default { data() { return { headers: [], rows: [], }; }, methods: { handleFileUpload(event) { const file = event.target.files[0]; const reader = new FileReader(); reader.onload = e => { const data = new Uint8Array(e.target.result); const workbook = XLSX.read(data, { type: 'array' }); const sheetName = workbook.SheetNames[0]; const worksheet = workbook.Sheets[sheetName]; const headers = []; const rows = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); for (const key in rows[0]) { headers.push(key); } this.headers = headers; this.rows = rows; }; reader.readAsArrayBuffer(file); }, }, }; </script> ``` 4. 在组件展示Excel数据。 以上代码将读取Excel文件并将其转换为JSON对象,该对象将包含表头和行数据。可以将表头和行数据分别存储在组件的数据属性,并在模板使用v-for指令将它们渲染到表格。 注意:以上代码仅支持读取XLSX和XLS格式的Excel文件。如果需要支持其他格式,请参考XLSX.js文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值