GoogleSheetAPIv4 RubysDK столбец доступа по номеру - PullRequest
0 голосов
/ 09 апреля 2020

Я могу обновить ячейку 'C11', как показано ниже,

@service.update_spreadsheet_value(SPREADSHEET_ID, 'C11', vr, value_input_option: 'USER_ENTERED')

Есть ли способ, как показано ниже? Я хочу удалить алфавит из аргумента.

@service.update_spreadsheet_value(SPREADSHEET_ID, '[2][10]', vr, value_input_option: 'USER_ENTERED')

Спасибо!

1 Ответ

2 голосов
/ 09 апреля 2020
  • Вы хотите поместить значение в ячейку без использования a1Notation.
  • Вы хотите добиться этого с помощью googleapis с ruby.
  • Вы уже смогли получить и поместить значения для Google Spreadsheet с помощью Sheets API.

Если мое понимание правильное, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

update_spreadsheet_value() использует метод spreadsheets.values.update в Sheets API. В этом случае a1Notation необходимо использовать в качестве диапазона. Поэтому я хотел бы предложить следующие 2 шаблона:

Шаблон 1:

В этом шаблоне диапазон a1Notation создается из индекса столбца и индекса строки. Значение задается с помощью update_spreadsheet_value.

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

# Following function is from https://stackoverflow.com/a/31152792
def letter_sequence(n)
  n.to_s(26).each_char.map {|i| ('A'..'Z').to_a[i.to_i(26)]}.join
end

column_index = 2
row_index = 10
sheet_name = 'Sheet1'

range = sheet_name + '!' + letter_sequence(column_index) + (row_index + 1).to_s
@service.update_spreadsheet_value(SPREADSHEET_ID, range, vr, value_input_option: 'USER_ENTERED')
  • В этом случае range равно Sheet1!C11. И vr выводится из ячейки "C11".

Pattern 2:

В этом шаблоне GridRange используется в качестве диапазона. Для этого используется метод batchUpdate.

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

column_index = 2
row_index = 10
sheet_id = "###"  # Please set the sheet ID.

requests = {requests: [{update_cells: {
    rows: [{values: [{user_entered_value: {string_value: 'sample'}}]}],
    start: {sheet_id: sheet_id, row_index: row_index, column_index: column_index},
    fields: 'userEnteredValue'}
}]}
@service.batch_update_spreadsheet(SPREADSHEET_ID, requests, {})
  • В этом случае текст sample помещается в ячейку "C11".
  • Конечно, вы можете поставить несколько значений. В этом случае, пожалуйста, проверьте официальный документ .

Список литературы:

Если я неправильно понял ваш вопрос, и это не то направление, которое вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...