如何使用应用程序脚本动态调整谷歌表格的行宽和列宽?

k.b*_*k.b 5 google-sheets google-apps-script

我即将在 Google Sheet 中设计一个结构。如何使用应用程序脚本动态调整行宽和列宽?

注意:要调整列或行的宽度,我的意思是给宽度一些像素或英寸大小。我的意思不是自动调整大小以适应单元格中的内容。

Tan*_*ike 11

我相信你的目标如下。

  • 您想要使用 Google Apps 脚本动态地使用自动调整大小来编辑行和列。

在这种情况下,使用 OnEdit 的简单触发器来运行脚本怎么样?这样,当您将值放入单元格时,脚本就会自动运行。autoResizeRows并且可以使用和来实现行和列的自动调整大小autoResizeColumns。示例脚本如下。

示例脚本:

请将以下脚本复制并粘贴到 Google Spreadsheet 的脚本编辑器中并保存项目。当您使用此脚本时,请在单元格中输入一个值。这样,脚本就会由触发器运行,并自动设置行高和列宽。

function onEdit(e) {
  const range = e.range;
  const sheet = range.getSheet();
  sheet
    .autoResizeRows(range.rowStart, range.rowEnd - range.rowStart + 1)
    .autoResizeColumns(range.columnStart, range.columnEnd - range.columnStart + 1);
}
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 该脚本由使用事件对象的 OnEdit 简单触发器运行。所以当你直接用脚本编辑器运行脚本时,就会出现错误。请小心这一点。

  • 这是一个简单的示例脚本。所以请根据您的实际情况进行修改。例如,当您要在“Sheet1”和“Sheet2”的特定工作表上运行脚本时,请将 的脚本放在if (!["Sheet1","Sheet2"].includes(sheet.getSheetName())) return;行之后const sheet = range.getSheet();

参考:

添加:

从您的以下回复来看,

我的意思不是自动调整大小,当我们调整列大小时,我们实际上可以手动输入像素作为宽度。我想使用应用程序脚本参数来调整大小以设置列宽像素值。

我为此又添加了一个示例脚本。

示例脚本:

请将以下脚本复制并粘贴到 Google Spreadsheet 的脚本编辑器中并保存项目。当您使用此脚本时,请在单元格中输入一个值。这样,脚本将由触发器运行,并且列宽将更改为columnWidth

function onEdit(e) {
  const columnWidth = 300; // Please set the column width you want to set.
  const range = e.range;
  const sheet = range.getSheet();
  // if (!["Sheet1","Sheet2"].includes(sheet.getSheetName())) return; // If you want to run the script for the specific sheet, please use this line.
  sheet.setColumnWidths(range.columnStart, range.columnEnd - range.columnStart + 1, columnWidth);
}
Run Code Online (Sandbox Code Playgroud)

参考: