perf[UploadExcel]: optimized code (#1552)
This commit is contained in:
parent
22cdfc246c
commit
0f6946a88e
|
@ -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'])
|
||||||
|
|
Loading…
Reference in New Issue