<el-upload
class="upload-demo"
ref="upload"
:on-remove="handleRemove"
:file-list="fileList"
:auto-upload="false"
:multiple="false"
accept=".xls,.xlsx"
action=""
:on-change="fileChange"
:http-request="httpRequest"
>
<el-button slot="trigger" size="small" type="primary" icon="el-icon-plus">选取文件</el-button>
<div class="el-upload__tip" slot="tip">只能上传excel文件</div>
</el-upload>
readWorkbookFromLocalFile(file, callback) {
var reader = new FileReader()
reader.onload = function(e) {
var data = e.target.result
var workbook = XLSX.read(data, { type: 'binary', cellDates: true })
if (callback) callback(workbook)
}
reader.readAsBinaryString(file)
},
fileChange(file, fileList) {
this.fileList = [file]
this.parsingExcel = true
this.readWorkbookFromLocalFile(file.raw, workbook => {
var sheetNames = workbook.SheetNames
let wb = workbook
var worksheet = wb.Sheets[sheetNames[0]]
for (const i in worksheet) {
if (worksheet[i]['v'] !== null && worksheet[i]['v'] !== undefined && worksheet[i]['t'] == 'd') {
worksheet[i]['v'] = parseTime(new Date(worksheet[i]['w']), '{y}-{m}-{d} {h}:{i}')
worksheet[i]['t'] = 's'
worksheet[i]['w'] = worksheet[i]['v']
console.log('here2', worksheet[i]['v'])
}
}
var csv = XLSX.utils.sheet_to_csv(worksheet)
var json = XLSX.utils.sheet_to_json(worksheet, {
header: 1,
defval: '',
raw: false,
rawNumbers: true
})
console.log(
'json',
XLSX.utils.sheet_to_json(worksheet, {
header: 1,
defval: ''
}),
csv
)
this.excelContent = rows
this.excelTplId = parseInt(rows[0])
this.parsingExcel = false
})
},
```