【问题标题】:How to Append and Format Row at same time Google sheet API如何同时追加和格式化行Google sheet API
【发布时间】:2017-03-09 13:08:07
【问题描述】:

我想附加在谷歌表格中。我写了一段代码,它在 JavaScript 中成功运行。

function appendMajor() {
  var responseJson ='{values : [["3/2/2017 13:38:32","3/2/2017","12:33:00 PM","ABC","xyz","pqr","bca"]] }';
  gapi.client.sheets.spreadsheets.values.append({
    spreadsheetId: 'spreadSheetId',
    range: 'A1:B',  
    resource: responseJson,
    valueInputOption: 'USER_ENTERED',
  }).then(function (response) {
    appendPre(response);
  }, function (response) {
    appendPre('Error: ' + response.result.error.message);
  });
}

我想更改附加行的背景颜色。前三个单元格为蓝色,另外四个单元格为灰色。

我也尝试使用 BatchUpdate 来执行此操作,但它会覆盖给定范围的行,而不是附加到工作表文件中。如果有人知道如何使用 BatchUpdate 追加行,请回答我。

【问题讨论】:

    标签: javascript api google-sheets spreadsheet google-spreadsheet-api


    【解决方案1】:

    要一次性完成,您必须使用带有AppendCellsRequest 的batchUpdate。不幸的是,以这种方式附加值比电子表格.values.append 有点冗长,但它会得到你想要的。此外,您将需要 sheetId(默认工作表为 0),而不是指定范围(您的“A1:B”)。这是一个将所需样式应用于默认工作表的示例:

    const values = ['3/2/2017 13:38:32','3/2/2017','12:33:00 PM','ABC'];
    const colors = [
        [0.0, 0.0, 1.0],    //Blue
        [0.0, 0.0, 1.0],    //Blue
        [0.0, 0.0, 1.0],    //Blue
        [0.5, 0.5, 0.5]     //Grey
    ];
    gapi.client.spreadsheets.batchUpdate({
        spreadsheetId: 'spreadsheetId',
        resource: {
            requests: [{
                appendCells: {
                    sheetId: 0,
                    rows: [{
                        values: values.map((v, i) => ({
                            userEnteredValue: {
                                stringValue: v
                            },
                            userEnteredFormat: {
                                backgroundColor: {
                                    red: colors[i][0],
                                    green: colors[i][1],
                                    blue: colors[i][2]
                                }
                            }
                        }))
                    }],
                    fields: '*'
                }
            }]
        }
    }, (err, resp) => {
        if (err) throw err;
        console.log(resp.data);
    });
    

    使用 Google API 始终是一种冒险 ^_^ 希望这会有所帮助。

    【讨论】:

    • 如果您使用AppendCellsRequest,则无法知道插入行的索引。对某些人来说,这可能是一个主要的 PITA,我知道这是给我的。 ://
    • 有没有办法知道我想格式化的单元格索引
    【解决方案2】:

    API 中唯一可用的内置方法是 spreadsheets.values.append

    将值附加到电子表格。输入范围用于搜索 现有数据并在该范围内找到一个“表格”。值将是 附加到表格的下一行,从第一列开始 表。

    HTTP 请求

    POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}:append
    

    如果您需要示例代码,请查看Append Values sample

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多