Excel Script报错sheet.getTable[i]未定义,如何在for循环中获取当前表格?
Excel Script循环获取表格行计数错误修复
原代码错误原因:sheet.getTable[i]是错误写法,getTable()是需要传入表格名称或ID的方法,并非可直接通过索引访问的数组。且你已经通过sheet.getTables()获取了当前工作表的所有表格数组,直接遍历该数组即可。
修正后的代码有两种写法:
写法1:保留原for循环结构
function main(workbook: ExcelScript.Workbook) { let sheet = workbook.getWorksheet('MySheet'); let tables = sheet.getTables(); let rowCount = 0; for (let i = 0; i < tables.length; i++) { // 直接从tables数组中取当前表格 rowCount = tables[i].getRangeBetweenHeaderAndTotal().getRowCount(); console.log(rowCount); }; }
写法2:使用for...of循环(更简洁)
function main(workbook: ExcelScript.Workbook) { let sheet = workbook.getWorksheet('MySheet'); let tables = sheet.getTables(); for (let table of tables) { const rowCount = table.getRangeBetweenHeaderAndTotal().getRowCount(); console.log(rowCount); }; }
核心修正点:
- 无需重复调用
sheet.getTable(),直接使用已获取的tables数组元素访问当前表格 - 避免了方法调用与数组访问的语法混淆
内容的提问来源于stack exchange,提问作者user15235239
相关产品推荐
相关产品推荐

