如何通过Google表格API对行进行分组?

Dar*_*rey 8 google-sheets-api

我正在寻找一种通过Google表格API创建一组行的方法 - 有没有办法做到这一点?我无法找到能够执行此操作的API,但似乎它应该是一种相当常见的格式化需求.

通过选择一组行支持此功能,右键单击并弹出选项以创建组,请参阅下面链接的屏幕截图.我只是想通过API寻找一种方法.

在此输入图像描述

gen*_*egc 7

使用这个 --> Range.shiftColumnGroupDepth

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

// The column grouping depth is increased by 1.
range.shiftColumnGroupDepth(1);

// The column grouping depth is decreased by 1.
range.shiftColumnGroupDepth(-1);
Run Code Online (Sandbox Code Playgroud)


Mic*_*ael 4

您可以通过 Google Sheets API 版本 4 来实现此目的。

您需要向此端点提交 HTTP POST:

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate
Run Code Online (Sandbox Code Playgroud)

您将需要传递有效的 JSON 请求。我创建了一个简单的电子表格,其中包含一些要分组的行,并使用此 JSON 作为对第 14-17 行进行分组的测试:

{
  "requests": [
    {
      "addDimensionGroup": {
        "range": {
          "dimension": "ROWS",
          "sheetId": 0,
          "startIndex": 14,
          "endIndex": 17
        }
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

请注意,startIndex 是所有内容都将折叠到的行(或列)编号,即使折叠组也将保持可见,而 endIndex 是组的最后一个元素,当组折叠时它将保持隐藏状态。

有关此内容的文档位于此处。如果您的窗口足够宽,它将在右侧显示“尝试此 API”窗格。您可以输入工作表的电子表格 ID 并构建 JSON 请求正文并测试它以查看它直接在工作表上运行 - 如果您在另一个窗口中打开它,您应该会在单击“执行”后立即看到更新发生按钮。