Как получить доступ к объектам CellData в листах API - PullRequest
0 голосов
/ 12 января 2019

Я работаю над проектом интеграции листов Google, в котором я хотел бы добавить форматированный текст в ячейки (жирный, курсив). Это должно быть сделано только для части ячейки (например, только часть текста в ячейке полужирный ). Я вижу, что это можно сделать с помощью объекта CellData, задокументированного в таблицах API здесь:

CellData

Но я не могу понять, как получить экземпляр этих объектов. Я использую сервис листов для успешного получения объектов SpreadSheet, Sheet и ValueRange, но я не могу понять, как добраться до самих объектов данных ячейки, чтобы использовать эти методы.

1 Ответ

0 голосов
/ 15 января 2019
  1. Когда часть значения ячейки имеет несколько форматов, вы хотите получить форматы.
  2. Вы хотите поместить значение с несколькими форматами в ячейку.

Я понимаю ваш вопрос, как указано выше. Если мое понимание верно, как насчет этих образцов?

1. Получить значение

Когда часть значения ячейки имеет несколько форматов, как показано на рисунке ниже,

enter image description here

скрипт для получения значений в форматах выглядит следующим образом.

Пример сценария:

Этот пример сценария извлекает значение из ячейки «A1» в «Sheet1».

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. Положить значение

Когда в ячейку помещается значение нескольких форматов, сценарий выглядит следующим образом.

Пример сценария:

Этот пример сценария помещает значение в ячейку "B1" из "Sheet1". В качестве примера 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, если вы хотите перейти на другой лист, измените его.

Результат:

enter image description here

Примечание:

  • В этих примерах сценариев предполагается, что ваша среда может использовать API Sheets.
  • Это простые образцы. Поэтому, пожалуйста, измените их в своей ситуации.

Ссылки

...