批量上传附件
<el-upload
class="upload-demo"
action="#"
:on-change="handleChange2"
:show-file-list="false"
:on-remove="handleRemove"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
:auto-upload="false"
>
<el-button v-if="false" size="small" type="primary">批量上传</el-button>
</el-upload>
handleChange2(file, fileList) {
this.fileTemp = file.raw
console.log(file)
// 判断上传文件格式
if (this.fileTemp) {
if (
this.fileTemp.type ===
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||
this.fileTemp.type === 'application/vnd.ms-excel'
) {
this.importfxx(this.fileTemp)
} else {
this.$message({
type: 'warning',
message: '附件格式错误,请删除后重新上传!'
})
}
} else {
this.$message({
type: 'warning',
message: '请上传附件!'
})
}
},
handleRemove(file, fileList) {
this.fileTemp = null
},
importfxx(obj) {
// 通过DOM取文件数据
this.file = obj
var rABS = false // 是否将文件读取为二进制字符串
var f = this.file
var reader = new FileReader()
FileReader.prototype.readAsBinaryString = function(f) {
var binary = ''
var rABS = false // 是否将文件读取为二进制字符串
var wb // 读取完成的数据
var outdata
var reader = new FileReader()
reader.onload = function(e) {
var bytes = new Uint8Array(reader.result)
console.log(reader.result)
var length = bytes.byteLength
for (var i = 0; i < length; i++) {
binary += String.fromCharCode(bytes[i])
}
var XLSX = require('xlsx')
if (rABS) {
wb = XLSX.read({
// 手动转化
type: 'base64'
})
} else {
wb = XLSX.read(binary, {
type: 'binary'
})
}
outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) // outdata就是读取excel内容之后输出的东西
this.da = [...outdata]
const arr = []
this.da.map((v) => {
const obj = {}
obj.ip = v['ip'] // ip是表的标题
arr.push(obj)
})
// return arr
console.log(this.da)
// 把读取的excel表格中的内容放进tableData2中(这里要改成自己的表的名字)
}
reader.readAsArrayBuffer(f)
}
if (rABS) {
reader.readAsArrayBuffer(f)
} else {
reader.readAsBinaryString(f)
}
}