Google Apps 脚本:Google 表格分组

Posted

技术标签:

【中文标题】Google Apps 脚本:Google 表格分组【英文标题】:Google Apps Script: Google Sheet Grouping 【发布时间】:2018-11-16 16:18:07 【问题描述】:

一旦脚本(如下)到达数据的最后一行,如何停止 for 循环继续?

如何让每个组折叠,而不是只折叠第一个?

我不确定如何将.getLastRow()-1 合并到脚本中。我需要 numRows 为 179,因为这是我想组合在一起的行数,但不确定如何完成脚本。我修改了一个新的“录制的宏”并向后工作了一点。此外,第一个组在分组后会按预期折叠,但其他组不会。任何帮助将不胜感激!

function test2() 
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var currentRow = 3;
var startColumn= 1;
var numRows = 179;
var numColumns= sheet.getMaxColumns();
for (i = 0; i < numRows; i++) 
  sheet.getRange(currentRow, startColumn, numRows, numColumns).activate()
  .shiftRowGroupDepth(1);
  spreadsheet.getActiveSheet().getRowGroup(3, 1).collapse();
currentRow = currentRow+180
  
;

【问题讨论】:

我想出了如何解决每个组崩溃的问题:spreadsheet.getActiveSheet().getRowGroup(currentRow, 1).collapse(); 【参考方案1】:

好的,对于遇到此问题的其他人,这就是我发现的。我觉得必须有一种比指定我最终想要创建的组的确切数量更简单的方法,但它确实有效。

function test2() 
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var currentRow = 3;
var startColumn= 1;
var numRows = 179;
var numColumns= sheet.getMaxColumns();
var numGroups = 28;

for (i = 0; i < numGroups; i++) 
  sheet.getRange(currentRow, startColumn, numRows, numColumns).activate()
  .shiftRowGroupDepth(1);
  spreadsheet.getActiveSheet().getRowGroup(currentRow, 1).collapse();
  currentRow = currentRow+180
 
;

【讨论】:

以上是关于Google Apps 脚本:Google 表格分组的主要内容,如果未能解决你的问题,请参考以下文章

Google Apps 脚本:Google 表格分组

如何通过 Apps 脚本在 Google 表格中“清除格式”

使用 Google Apps 脚本在 Google 表格中创建新表格

使用 Google BigQuery / Apps 脚本为插入 Google 表格的数据添加时间戳

仅通过 Google Apps 脚本值修改 Google 电子表格

使用Google Apps脚本Web应用添加到Google表格