Я попытался прочитать файлы Excel с помощью vue. js, но вы можете, как только я прочитаете файл, память начнет лететь с небес, как 5 ГБ ОЗУ, и я получаю файл Excel очень маленького размера. Пожалуйста, помогите, чтобы преобразовать file to json Метод vue для обработки файла Excel. Я перепробовал все опции типа, которые я видел в documintation , но все они посылают мне разные ошибки. Я видел похожий вопрос здесь но все еще не может решить эту проблему при попытке
- base64: "Ошибка типа: input.replace не является функцией"
- двоичная: "Ошибка типа: x.charCodeAt не является функцией"
- строка: «Ошибка типа: data.match не является функцией» * Массив 1012 *
- : это тот, который заставляет память войти в 5 ГБ
Также при попытке используйте новую программу чтения файлов, как указано в документации, при создании программы чтения. Загрузите функцию, которая никогда не выполнялась. фактический шаблон я попробовал две вещи. когда я использую буфер, кажется, он работает, но все функции возвращают пустой массив. как файл пуст, но это не
оба способа сделали то же самое
<v-file-input
v-on:change="displayFile($event)"
v-model="file">
</v-file-input>
<input type="file" name="xlfile" id="xlf" v-on:change="displayFile($event)" />
displayFile: function (event) {
// console.log(event.target.files[0])
// const file = event.target.files[0]
// const workbook = XLSX.read(file, {
// type: 'string'
// })
// console.log(workbook, workbook.SheetNames)
// const res = XLSX.read(file)
// console.log(res)
// const res = XLSX.read(this.file)
// console.log(res)
console.log(this.file)
this.file.text().then(text => {
const fileType = this.file.type
console.log(fileType)
// this.PropceseMethod(this.file, fileType)
})
const reader = new FileReader()
reader.onload = (data) => {
console.log('HERE')
console.log(data)
const workbook = XLSX.read(data, {
type: 'buffer'
})
console.log(workbook)
workbook.SheetNames.forEach(function (sheetName) {
console.log(sheetName)
console.log(workbook.Sheets[sheetName])
// Here is your object
const XLRowObject = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName])
console.log(XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]))
console.log(XLRowObject)
const jsonObject = JSON.stringify(XLRowObject)
console.log(jsonObject)
})
}
reader.onerror = function (ex) {
console.log(ex)
}
reader.readAsText(this.file)
}