我正在尝试访问对象属性,在循环中创建变量以从 Excel 数据中获取单元格编号。但问题是有些在 ws[cell] 中有 'v' 属性,如果没有,就会出现错误。错误类型现在是 TypeError,我认为这是因为它没有“v”。我已经尝试过条件,但出现错误的原因与我猜测的相同。我想解决这个问题。当没有“v”时,它只是通过循环,否则它会打印我知道我可以使用 xlsx.utils.sheet_to_json 来简化它,但我想知道我是否可以在 JS 中解决这个问题..请帮忙提前谢谢!这是我的代码。 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 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
正如我们从未定义的错误中看到的cellobj。因此,要解决此问题,您需要设置一个条件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贡献1835条经验 获得超7个赞
正如当前错误消息所示,问题在于 is cellobj
,undefined
因此您无法in
对其应用运算符。
我想真正的问题在于该cell = chr1+chr2+n
行,您可能想console.log(cell)
检查手机号码的真正拼写是什么。
祝你好运!
添加回答
举报
0/150
提交
取消