Google表格API:插入带格式的文字

时间:2017-10-23 10:41:24

标签: node.js google-sheets google-sheets-api

我正在尝试将粗体文字插入Google电子表格。我有以下NodeJS代码成功插入文本。

var body = {
 data: [{
   range: 'M2:M3',
   values: [["value1"],["value2"]]
 }],
 valueInputOption: 'USER_ENTERED',
};

var sheets = google.sheets('v4');
  sheets.spreadsheets.values.batchUpdate({
    auth: auth,
    spreadsheetId: SPREADSHEET_ID,
    resource: body
  }, function(err, response) {
    if (err) {
      console.log('The API returned an error: ' + err);
      return;
    }
  });

我查了一下,发现为了将文本格式更改为粗体,需要使用以下代码。

requests: [
 {
   "format": {
     "textFormat": {
       "bold": true
      }
   }
 }
]

但是,我无法理解这段代码应该去哪里。试图将requestsformat分别放在databatchUpdate内但不起作用。

1 个答案:

答案 0 :(得分:2)

这个示例脚本怎么样?如果要同时更新单元格值和单元格格式,可以使用spreadsheets.batchUpdate。详细信息为here

以下示例将[["value1"],["value2"]]导入'M2:M3',如脚本中所示。作为示例,Sheet id为0.范围需要输入GridRange

示例脚本:

var sheets = google.sheets('v4');
var request = {
  spreadsheetId: SPREADSHEET_ID,
  resource: {
    "requests": [
      {
        "updateCells": {
          "rows": [
            {
              "values": [
                {
                  "userEnteredValue": {
                    "stringValue": "value1"
                  },
                  "userEnteredFormat": {
                    "textFormat": {
                      "bold": true
                    }
                  }
                }
              ]
            },
            {
              "values": [
                {
                  "userEnteredValue": {
                    "stringValue": "value2"
                  },
                  "userEnteredFormat": {
                    "textFormat": {
                      "bold": true
                    }
                  }
                }
              ]
            }
          ],
          "range": {
            "sheetId": 0, // Sheet id
            "startColumnIndex": 12,
            "endColumnIndex": 13,
            "startRowIndex": 1,
            "endRowIndex": 3
          },
          "fields": "*"
        }
      }
    ]
  },
  auth: auth,
};
sheets.spreadsheets.batchUpdate(request, function(err, response) {
  if (err) {
    console.error(err);
    return;
  }
  console.log(JSON.stringify(response, null, 2));
});

如果我误解了你的问题,我很抱歉。