我在文档中没有看到任何让我认为这是受支持的功能的内容。我正在写几张纸,如果不突出显示所有列并使用鼠标自动调整大小,就很难从视觉上看到所有数据。我宁愿不必每次运行脚本时都这样做。
有没有办法通过应用程序脚本以编程方式执行此操作?我看到了 setColumnWidth 的选项,但是当我的文本可能因列而异时,我怎么知道设置列的宽度。
==感谢您的帮助。
我在文档中没有看到任何让我认为这是受支持的功能的内容。我正在写几张纸,如果不突出显示所有列并使用鼠标自动调整大小,就很难从视觉上看到所有数据。我宁愿不必每次运行脚本时都这样做。
有没有办法通过应用程序脚本以编程方式执行此操作?我看到了 setColumnWidth 的选项,但是当我的文本可能因列而异时,我怎么知道设置列的宽度。
==感谢您的帮助。
autoResizeColumn(columnPosition)
See the API for more details
现在有一个新方法叫做autoResizeColumn(columnPosition)
var s = SpreadsheetApp.getActive().getActiveSheet();
s.autoResizeColumn(6);
自动调整第 6 列(又名“F”列)。
请参阅此 stackoverflow 答案 https://stackoverflow.com/a/29930315/8458041
还有一种方法可以一次处理多个列:autoResizeColumns(startColumn, numColumns)
var s = SpreadsheetApp.getActive().getActiveSheet();
s.autoResizeColumns(6, 3);
自动调整 F、G 和 H 列的大小。
多行的相应自动调整大小方法是autoResizeRows(startRow, numRows)
s.autoResizeRows(6, 3);
自动调整第 6、7 和 8 行的大小
没有对应的单行自动调整大小方法(还没有?);要自动调整单行大小,请将行数指定为 1
s.autoResizeRows(6, 1);
仅自动调整第 6 行
现在无法从 GAS 自动调整电子表格列的宽度。问题跟踪器中有一个关于它的主题。请为此主题加注星标,以向 Google 证明很多人需要此功能。
当尝试遍历指定数量的列并根据列中文本的宽度自动调整大小时,我发现这很有效:
for (var i = 1; i < 9; i ++){ sheet.autoResizeColumn(i);}
如果您禁用对范围内的单元格的换行,您可以获得所需的效果。
这是一个对我有用的片段:
var dataRange = sheet.getRange(1,1,data.length,headers.length);
dataRange.setValues(data);
dataRange.setWrap(false);
Goolge 应用程序文档: Range.setWrap