ItemNumber列单元格超字符限制时控制台打印日志及获取违规行号问询
实现方案
该需求完全可实现,你当前的代码框架已经完成了核心逻辑的大部分开发,行号的获取逻辑非常简单:通过getColumnByName拿到的itemDesc数组的下标,和表格行的位置是一一对应的,只需要根据你需要的行号规则做简单换算即可。
核心逻辑说明
行号计算分两种常用场景,按需选择即可:
- 如果你需要的是程序处理用的0起始下标,直接使用循环变量
i即可 - 如果你需要的是用户视角的1起始表格展示行号,直接给
i加1即可
你当前使用的是倒序遍历逻辑(从最后一行往第一行扫描),遍历顺序不影响行号的计算准确性。
修正后的完整代码
倒序遍历版本(兼容你当前的写法)
let itemDesc = newTable.getColumnByName("ItemNumber") for (let i = itemDesc.length - 1; i >= 0; i--) { let event = itemDesc[i]; // 需要0起始下标直接替换为i即可 let rowNumber = i + 1; // 加可选链避免空值读取length属性报错 if (event?.length > 10) { console.log(`Character count exceeds 10 characters at Rows: ${rowNumber}`); } }
正序遍历版本(可读性更高)
let itemDesc = newTable.getColumnByName("ItemNumber") const errorRows = [] for (let i = 0; i < itemDesc.length; i++) { const currentVal = itemDesc[i]; const rowNumber = i + 1; if (currentVal?.length > 10) { errorRows.push(rowNumber) console.log(`字符长度超出10位,行号:${rowNumber}`); } } // 可选择遍历结束后统一输出所有违规行号 if (errorRows.length) { console.log(`总共有${errorRows.length}行数据违规,行号列表:${errorRows.join(',')}`) }
内容的提问来源于stack exchange,提问作者nouptime
相关产品推荐
相关产品推荐

