首页 > 解决方案 > 如何格式化 Sheets.Spreadsheets.batchUpdate(resource, spreadsheetId) 的资源以创建列组

问题描述

我已经经历了几个不同的版本,但就目前而言,我得到了错误:

Invalid JSON payload received. Unknown name "range": Cannot find field. (line 4, file "20181212")

但在 API 参考中,它显示 JSON 格式的 AddDimensionGroupRequest 如下所示:

{ "range": { object(DimensionRange) } }

DimensionRange 看起来像这样:

{ "sheetId": number, "dimension": enum(Dimension), "startIndex": number, "endIndex": number }

代码完成建议格式如下:

Sheets.Spreadsheets.batchUpdate(resource, spreadsheetId)

但我似乎无法想出找出该资源格式的神奇公式。过去的经验建议使用 Drive API 的格式如下:

Drive.Files.update({"parents": [{"id": subFldr.getId()}]}, res.getId());

但是,如果我使用 Sheets API 建议的格式,这将不起作用:

Sheets.Spreadsheets.batchUpdate({"range":{dimension:"COLUMNS",startIndex:1,endIndex:3,sheetId:sh.getSheetId()}},ss.getId());

我得到错误:

Invalid JSON payload received. Unknown name "range": Cannot find field. (line 4, file "20181212")

问题: 如何格式化资源参数?

标签: google-apps-scriptgoogle-sheets-api

解决方案


哦,哇,我想通了。这是代码:

function makeColumnGroup() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet21');
  var res={
  "requests": [
    {
      "addDimensionGroup": {
        "range": {
          "dimension": "COLUMNS",
          "startIndex": 1,
          "endIndex": 3,
          "sheetId": 1163414414
        }
      }
    }
  ]
}
  Sheets.Spreadsheets.batchUpdate(res,ss.getId());

}

它只是归结为直接从 API Explorer 复制代码。将来我会努力记住这一点。如果其中一位知识渊博的志愿者有更好的解决方案,我将不加检查。

在此处输入图像描述


推荐阅读