我有二维数组数据要添加到工作表。我有一个脚本可以在 Google 应用脚本中添加列。我使用 setValue 方法在 Google 工作表中添加数据。我有长度为 784 的数据要添加到工作表中。之后,我尝试根据文本调整列大小。当我当时有长度500的数据时,autoSizeColumns方法工作很好,但是当我有长度784的数据时当时它显示错误“这些列超出范围”。我不知道为什么会出现这个错误。该脚本在打印数据到工作表时工作正常,但在resizeColumns时出现错误。
用于添加数据到工作表中的代码。
const lastRow = SpreadsheetApp.getActiveSheet().getLastRow();
SpreadsheetApp.getActiveSheet().getRange(lastRow + 1, 1, arr.length, arr[0].length).setValues(arr);
SpreadsheetApp.getActiveSheet().autoResizeColumns(1, arr.length);
有人可以指导我吗?
最佳答案
autoResizeColumns(startColumn, numColumns)
的参数为 startColumn, numColumns
。 Ref在您的脚本中,您似乎按如下方式使用它。
SpreadsheetApp.getActiveSheet().autoResizeColumns(1, arr.length);
如果arr
是我有2D数组数据要添加到工作表中的
且二维数组数据
。数据长度为784
为行数,autoResizeColumns(startColumn, numColumns)
的startColumn
和numColumns
为1
和784
,分别。当事件工作表中的最大列数小于 784 时,会出现类似异常:这些列超出范围。
的错误。我认为这可能是您当前问题的原因 当我当时有长度为 500 的数据时 autoSizeColumns 方法工作正常,但当我当时有长度为 784 的数据时,它显示错误“那些列已超出”边界”。
.
例如,如果你想避免错误,那么进行如下修改如何?在此修改中,最大列用作 numColumns
。
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
sheet.getRange(lastRow + 1, 1, arr.length, arr[0].length).setValues(arr);
sheet.autoResizeColumns(1, sheet.getMaxColumns());
或者,如果需要使用arr.length
作为numColumns
,那么进行以下修改如何?
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
sheet.getRange(lastRow + 1, 1, arr.length, arr[0].length).setValues(arr);
const maxColumn = sheet.getMaxColumns();
const arrLength = arr.length;
if (arrLength <= maxColumn) {
sheet.autoResizeColumns(1, arrLength);
} else {
sheet.insertColumnsAfter(maxColumn, arrLength - maxColumn).autoResizeColumns(1, arrLength);
}
引用:
关于google-apps-script - 这些列在 autoResizeColumns 方法中出现越界错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76453728/