【发布时间】:2016-10-26 06:40:04
【问题描述】:
我要做的就是调整电子表格中所有列的大小。这是一个独立的电子表格。我正在使用:
function format() {
var destination = SpreadsheetApp
.openByUrl("https://docs.google.com/spreadsheets/d/spreadsheetIdHere/edit#gid=0")
.getSheetByName("sheetName");
var columns = destination.getMaxColumns();
destination.setFrozenRows(1);
destination.setFrozenColumns(3);
for (var i = columns; i >= 1; i--) {
Logger.log(i)
destination.autoResizeColumn(i);
}
}
for (var i = columns; i >= 1; i--) 和for (var i = 1; i <= columns; i++) 我都试过了,只是因为我不知道是什么原因造成的。我假设一个无限循环,但我完全删除了循环,它仍然运行了太长时间。
当我注释掉 autoResize... 大约一秒钟后,日志会产生预期的结果。带回 autoResize... 脚本会不断运行,甚至不会更改任何列。
我尝试取出循环并在autoResizeColumn(227) 中输入一个数字,这很有效。把循环带回来,我就卡住了。
是 autoResizeColums() 太慢了,还是我遗漏了什么?
如果需要更多信息,请告诉我。
【问题讨论】:
-
尝试使用 getLastColumn() 而不是 getMaxColumn()。 getLastColumn() 为您提供包含数据的最后一列的索引,而 getMaxColumn() 为您提供电子表格中总列数的索引。标准 Google 电子表格中的最大列数为 256。
标签: javascript for-loop google-apps-script google-sheets