如何访问工作表中的 celldata 对象 api

How to access celldata objects in sheets api

我正在做一个 google 工作表集成项目,我想在其中向单元格添加格式化文本(粗体、斜体)。这只需要用于单元格的一部分(例如,单元格中只有一些文本是 bold )我可以看到这可以通过 CellData 对象完成,记录在工作表中api 这里:

CellData

但我不知道如何获取这些对象的实例。我正在使用工作表服务成功获取 SpreadSheet、Sheet 和 ValueRange 对象,但我不知道如何通过单元格数据对象本身来使用这些方法。

  1. 当一个单元格的部分值有多种格式时,您想检索这些格式。
  2. 您想将具有多种格式的值放入一个单元格。

我理解你的问题如上。如果我的理解是正确的,这些样本怎么样?

1。检索值

当单元格的一部分值具有如下图所示的多种格式时,

检索格式值的脚本如下。

示例脚本:

此示例脚本从 "Sheet1" 的单元格 "A1" 中检索值。

spreadsheet_id = '### spreadsheet ID ###'
ranges = ['Sheet1!A1']
fields = 'sheets(data(rowData(values(textFormatRuns,userEnteredValue))))'
response = service.get_spreadsheet(spreadsheet_id, ranges: ranges, fields: fields)

结果:

{
  "sheets": [
    {
      "data": [
        {
          "rowData": [
            {
              "values": [
                {
                  "userEnteredValue": {
                    "stringValue": "abcdefg"
                  },
                  "textFormatRuns": [
                    {
                      "format": {}
                    },
                    {
                      "format": {
                        "fontSize": 24,
                        "foregroundColor": {
                          "red": 1
                        },
                        "bold": true
                      },
                      "startIndex": 2
                    },
                    {
                      "format": {},
                      "startIndex": 5
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

2。放值

当一个单元格中有多种格式的值时,脚本如下。

示例脚本:

此示例脚本将值放入 "Sheet1" 的单元格 "B1"。作为示例,update_cells 用于这种情况。

spreadsheet_id = '### spreadsheet ID ###'
requests = {requests: [
  update_cells: {
    fields: 'userEnteredValue,textFormatRuns',
    range: {sheet_id: 0, start_row_index: 0, end_row_index: 1, start_column_index: 1, end_column_index: 2},
    rows: [{values: [{user_entered_value: {
          string_value: 'abcdefg'},
          text_format_runs: [{format: {}}, {format: {font_size: 24, foreground_color: {red: 1}, bold: true}, start_index: 2}, {format:{}, start_index: 5}]
    }]}]
  }
]}
response = service.batch_update_spreadsheet(spreadsheet_id, requests, {})
  • 关于sheet_id: 0,如需其他sheet,请自行修改

结果:

注:

  • 这些示例脚本假定您的环境可以使用表格 API。
  • 这些是简单的示例。所以请根据您的情况修改它们。

参考文献: