Как идентифицировать ячейку объединенную ячейку с API Google листов - PullRequest
1 голос
/ 03 апреля 2019

Я использую Go API https://developers.google.com/sheets/api/quickstart/go

У меня есть лист, похожий на этот, и я хочу автоматизировать логику заполнения ячеек

  |  B   |  C   |
--+------+------+
1 |  b1  |  c1  |
--+------+      |
2 |  b2  |      |
--+------+------+
3 |  b3  |      |
--+------+------+

При использовании readRange := "B1:C" от

resp, _ := s.srv.Spreadsheets.Values.Get(spreadsheetId, readRange).Do()
for _, row := range resp.Values {
   ...
}

Я не могу сказать разницу между C2 и C3. В этом случае я хотел бы заполнить некоторые значения для C3, но не для C2. Как я могу проверить это через API?

1 Ответ

1 голос
/ 04 апреля 2019
  • Вы хотите получить информацию о ячейках слияния в листе, используя API Sheets.

Из вашего ответа я мог понять, как выше. Если мое понимание правильное, метод spreadsheets.values.get не может получить информацию о ячейках слияния. В этом случае, пожалуйста, используйте метод spreadsheets.get. Модифицированный скрипт выглядит следующим образом.

Модифицированный скрипт:

ranges := []string{"B1:C"}
resp, _ := s.srv.Spreadsheets.Get(spreadsheetId).Ranges(ranges...).Do()
for _, sheet := range resp.Sheets {
    for _, merge := range sheet.Merges {
        fmt.Printf("%#v\n", merge)
    }
}

Примечание:

  • Этот измененный скрипт предполагает, что вы уже использовали Sheets API.
  • Диапазон B1:C означает B1:C первой вкладки.
  • Когда вы запустите скрипт выше, вы можете получить координаты объединенных ячеек в виде GridRange, как показано ниже.

    {
      "sheetId": 0,
      "startRowIndex": 0,
      "endRowIndex": 2,
      "startColumnIndex": 2,
      "endColumnIndex": 3
    }
    
    • Этот GridRange является C1:C2 ID листа 0 в качестве a1Notation.
      • Из приведенного выше результата выясняется, что C1:C2 является объединенной ячейкой.
      • В этом случае, когда значение вводится в C1, отображается значение. Но когда значение введено в C2, значение не отображается. Пожалуйста, будьте осторожны с этим.
    • Если вы хотите поместить значение с помощью GridRange, вы можете использовать метод spreadsheets.batchUpdate.

Ссылки:

...