perf[UploadExcel]: optimized code (#1552)

This commit is contained in:
花裤衩 2019-01-25 12:50:21 +08:00 committed by GitHub
parent 23055c9b2c
commit 3153a1b10b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -82,8 +82,7 @@ export default {
const reader = new FileReader() const reader = new FileReader()
reader.onload = e => { reader.onload = e => {
const data = e.target.result const data = e.target.result
const fixedData = this.fixData(data) const workbook = XLSX.read(data, { type: 'array' })
const workbook = XLSX.read(btoa(fixedData), { type: 'base64' })
const firstSheetName = workbook.SheetNames[0] const firstSheetName = workbook.SheetNames[0]
const worksheet = workbook.Sheets[firstSheetName] const worksheet = workbook.Sheets[firstSheetName]
const header = this.getHeaderRow(worksheet) const header = this.getHeaderRow(worksheet)
@ -95,14 +94,6 @@ export default {
reader.readAsArrayBuffer(rawFile) reader.readAsArrayBuffer(rawFile)
}) })
}, },
fixData(data) {
let o = ''
let l = 0
const w = 10240
for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)))
o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)))
return o
},
getHeaderRow(sheet) { getHeaderRow(sheet) {
const headers = [] const headers = []
const range = XLSX.utils.decode_range(sheet['!ref']) const range = XLSX.utils.decode_range(sheet['!ref'])