所以我嘗試使用下面的模板和代碼將 CSV 檔案從輸入標簽轉換為 JSON:
<input type="file" ref="myfile" @change="csvJSON($event)" />
csvJSON(csv) {
console.log(csv)
var lines = csv.split('\n')
var result = []
var headers = lines[0].split(',')
for (var i = 1; i < lines.length; i ) {
var obj = {}
var currentline = lines[i].split(',')
for (var j = 0; j < headers.length; j ) {
obj[headers[j]] = currentline[j]
}
result.push(obj)
}
console.log('data', result)
},
但它一直顯示這個錯誤,因為我已經針對它的事件值,有人可以告訴我我在哪里做錯了嗎?
TypeError: csv.split is not a function
at VueComponent.csvJSON (Tables.vue?074c:179:1)
at change (Tables.vue?8f4b:282:1)
at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:3015:1)
at HTMLInputElement.invoker (vue.runtime.esm.js?2b0e:1813:1)
at original_1._wrapper (vue.runtime.esm.js?2b0e:7458:1)
uj5u.com熱心網友回復:
您需要使用事件目標檔案等待要加載的檔案內容:
async csvJSON(event) {
const file = event.target.files.item(0)
const csv = await file.text();
console.log(csv)
var lines = csv.split('\n')
var result = []
var headers = lines[0].split(',')
for (var i = 1; i < lines.length; i ) {
var obj = {}
var currentline = lines[i].split(',')
for (var j = 0; j < headers.length; j ) {
obj[headers[j]] = currentline[j]
}
result.push(obj)
}
console.log('data', result)
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/529503.html
