- Вы хотите поместить значение в ячейку без использования 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". - Конечно, вы можете поставить несколько значений. В этом случае, пожалуйста, проверьте официальный документ .
Список литературы:
Если я неправильно понял ваш вопрос, и это не то направление, которое вы хотите, я прошу прощения.