7

我在文档中没有看到任何让我认为这是受支持的功能的内容。我正在写几张纸,如果不突出显示所有列并使用鼠标自动调整大小,就很难从视觉上看到所有数据。我宁愿不必每次运行脚本时都这样做。

有没有办法通过应用程序脚本以编程方式执行此操作?我看到了 setColumnWidth 的选项,但是当我的文本可能因列而异时,我怎么知道设置列的宽度。

==感谢您的帮助。

4

5 回答 5

9

autoResizeColumn(columnPosition)

See the API for more details

于 2013-05-14T04:41:33.707 回答
5

现在有一个新方法叫做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 行

于 2018-05-23T23:21:14.897 回答
1

现在无法从 GAS 自动调整电子表格列的宽度。问题跟踪器中有一个关于它的主题。请为此主题加注星标,以向 Google 证明很多人需要此功能。

于 2012-09-12T07:12:03.957 回答
0

当尝试遍历指定数量的列并根据列中文本的宽度自动调整大小时,我发现这很有效:

 for (var i = 1; i < 9; i ++){ sheet.autoResizeColumn(i);}
于 2020-01-23T01:29:05.663 回答
-1

如果您禁用对范围内的单元格的换行,您可以获得所需的效果。

这是一个对我有用的片段:

var dataRange = sheet.getRange(1,1,data.length,headers.length);
dataRange.setValues(data);
dataRange.setWrap(false);

Goolge 应用程序文档: Range.setWrap

于 2012-11-15T19:44:55.677 回答