自动调整Google表格中的列数

Isa*_*ing 7 google-sheets google-apps-script

我想谷歌表上的列自动调整大小以适应我的文本,而不必在每次输入后手动调整它们的大小.我该怎么做呢?

Tom*_*ndt 21

仅供参考 - 对于那些不想深入研究脚本但希望更快地完成任务的人,可以手动自动调整所有列的大小:按Cmd + A(或Windows中的Ctrl + A)选择所有内容,然后将鼠标移动到任意两个列标题之间的边框 - 就好像您想手动调整该标题一样 - 光标变为箭头......然后双击.发现这一招在这里.

  • 我只是尝试了一下,但在Mac上却无法使用。似乎仅按“ Cmd + A”并不会选择整个工作表,而是选择存在内容的每个单元格。要选择整个工作表,您可以单击工作表左上角的灰色方块(A列的左侧和第1行的顶部),或者选择内容之外的单元格,然后按“ Cmd + A” (2认同)
  • 谢谢,是的,Google表格选择所有内容的方式似乎有点...神秘。例如,一次点击“ Cmd + A”似乎与连续两次点击不同。(两次更像是“是的,我的意思是真的”,并且将标题变成灰色,实际上似乎选择了_everything_。)通常,调整大小技巧适用于您所在的列(即,单击标题的最右边边框光标是向右的箭头)。 (2认同)

And*_*ndy 6

听起来像你想要autoResizeColumn.制作一个AppScript脚本,你可以把它

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

sheet.autoResizeColumn(COLUMN_NUMBER);
Run Code Online (Sandbox Code Playgroud)

这将根据其内容调整指定列的大小.

每次要调整大小时运行该函数或将其置于onOpen()之类的触发器中.

但是,它似乎具有更改为的最大大小.


Ter*_*ole 6

要使列完全自动调整大小,您可以创建此函数,每次编辑单元格内容时都会触发该函数:

function onEdit(e) {
  e.range.getSheet ().autoResizeColumn (e.range.getColumn ());
}
Run Code Online (Sandbox Code Playgroud)

请注意,此触发器只会响应键入而运行。粘贴和导入不会导致此触发器运行。

如果您想要一个可以调整活动工作表中所有列大小的函数,这个函数可以做到:

function resizeAllColumns () {
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getDataRange();
  var firstColumn = dataRange.getColumn();
  var lastColumn = dataRange.getLastColumn();
  sheet.autoResizeColumns(firstColumn, lastColumn);
}
Run Code Online (Sandbox Code Playgroud)

如果您需要经常执行手动功能,为方便起见,您可以为该功能附加一个键盘快捷键。