Google Apps Script中autoResizeColumns报列越界错误求助
问题分析
你调用autoResizeColumns时参数传错了:这个方法的第二个参数是需要调整的列的数量,而你传了arr.length(二维数组的行数)。
当数据行数(500)≤表格现有列数时,碰巧没触发越界错误;但行数784超过表格实际列数时,就会抛出“列越界”的报错——因为你试图调整从第1列开始的784列,但表格根本没有这么多列。
修复代码
把autoResizeColumns的第二个参数改成二维数组的列数arr[0].length即可:
const sheet = SpreadsheetApp.getActiveSheet(); const lastRow = sheet.getLastRow(); // 写入数据 sheet.getRange(lastRow + 1, 1, arr.length, arr[0].length).setValues(arr); // 正确调整列宽:从第1列开始,调整arr[0].length列 sheet.autoResizeColumns(1, arr[0].length);
额外优化建议
- 提前把
SpreadsheetApp.getActiveSheet()赋值给变量,避免重复调用,提升脚本性能。 - 如果担心二维数组为空(
arr[0]不存在),可以加个判断:
if (arr.length > 0 && arr[0].length > 0) { sheet.autoResizeColumns(1, arr[0].length); }
内容的提问来源于stack exchange,提问作者Shiv Yadav
相关产品推荐
相关产品推荐

