繁星淼淼
2023-09-07 17:06:08
我正在嘗試訪問對象屬性,在循環(huán)中創(chuàng)建變量以從 Excel 數(shù)據(jù)中獲取單元格編號(hào)。但問題是有些在 ws[cell] 中有 'v' 屬性,如果沒有,就會(huì)出現(xiàn)錯(cuò)誤。錯(cuò)誤類型現(xiàn)在是 TypeError,我認(rèn)為這是因?yàn)樗鼪]有“v”。我已經(jīng)嘗試過條件,但出現(xiàn)錯(cuò)誤的原因與我猜測的相同。我想解決這個(gè)問題。當(dāng)沒有“v”時(shí),它只是通過循環(huán),否則它會(huì)打印我知道我可以使用 xlsx.utils.sheet_to_json 來簡化它,但我想知道我是否可以在 JS 中解決這個(gè)問題..請幫忙提前謝謝!這是我的代碼。 const xlsx = require('xlsx');let wb = xlsx.readFile('coupang_1.xlsx');let sheetName = wb.SheetNameslet ws = wb.Sheets[sheetName[0]];let refernceCell = ws[Object.keys(ws)[0]];let range = refernceCell.substring(3,5);let firstChr = range.charCodeAt(0);let secondChr = range.charCodeAt(1);let chr1 = '';let chr2 = '';let cellNum = firstObj.substring(5);let limit = 90;let cell = '';for(let n=1; n<=cellNum; n++){ for(let i=64 ; i<=firstChr; i++){ chr1 = String.fromCharCode(i); if(i==firstChr){ limit = secondChr; }else{ limit = 90; } if(i==64){ chr1 = ''; } for(let j=65; j<=limit; j++){ chr2 = String.fromCharCode(j); cell = chr1+chr2+n; let cellobj = ws[cell]; console.log(cell); let b = 'v' in cellobj; (b)?console.log('got it'):console.log('nope'); }}}fraction of resultD2got itE2C:\Users\q1\Documents\workspace\Practice\spread\sheet-to-json.js:57 let b = 'v' in cellobj; ^TypeError: Cannot use 'in' operator to search for 'v' in undefined at Object.<anonymous> (C:\Users\q1\Documents\workspace\Practice\spread\sheet-to-json.js:57:23)單元格 d2 沒有“v”屬性。
2 回答

料青山看我應(yīng)如是
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
正如我們從未定義的錯(cuò)誤中看到的cellobj。因此,要解決此問題,您需要設(shè)置一個(gè)條件cellobj。喜歡
for (let j = 65; j <= limit; j++) {
chr2 = String.fromCharCode(j);
cell = chr1 + chr2 + n;
let cellobj = ws[cell];
if (cellobj) {
let b = "v" in cellobj;
b ? console.log("got it") : console.log("nope");
}
}

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
正如當(dāng)前錯(cuò)誤消息所示,問題在于 is cellobj
,undefined
因此您無法in
對其應(yīng)用運(yùn)算符。
我想真正的問題在于該cell = chr1+chr2+n
行,您可能想console.log(cell)
檢查手機(jī)號(hào)碼的真正拼寫是什么。
祝你好運(yùn)!
添加回答
舉報(bào)
0/150
提交
取消