Python - API Google Sheets - запись не в указанный диапазон

Я бы сказал, что:

Element < Class < ID

Я думаю, что они складываются только в зависимости от того, что вы получаете, если оно кратно тому же. Таким образом, класс всегда будет переопределять элемент и идентификатор всегда над классом, но если он относится к одному из четырех элементов, где 3 - синим, а 1 - красным, он будет синим.

Например:

.a .b .c .d .e .f .g .h .i .j .k .l
{
color: red;
}

 .m .n .o
{
color blue;
}

Должно получиться красным.

См. Пример http://jsfiddle.net/RWFWq/

", если Vings скажем, красный и 3 говорят, что синий колодец Има пойдет красным "

0
задан Kerem Akagündüz 15 January 2019 в 17:50
поделиться

1 ответ

  • Вы хотите поместить значения [[max_temp, avg_temp, min_temp]] в столбцы B-C, E-G и H-J.

Если мое понимание верно, как насчет этой модификации?

Точки модификации:

  • Если используется values.append , когда [ 113] и 'Sheet1!B:D' используются в качестве значения и диапазона, соответственно значения помещаются в столбцы AC. Даже если используется диапазон 'Sheet1', результат тот же.
  • Чтобы записать [[max_temp, avg_temp, min_temp]] в столбец B-C, есть 2 способа:
    1. Когда в последней строке предполагается значение 10, в качестве диапазона используется 'Sheet1!B11'.
      • В этом случае требуется знать последнюю строку.
    2. Когда используется диапазон 'Sheet1!B:D', в качестве значения используется [["", max_temp, avg_temp, min_temp]] ,
      • В этом случае, хотя значения помещаются в последнюю строку, когда значения добавляют пустые элементы в начало массива, существует случай, когда значения не помещаются в правильные позиции.

В моем окружении я был смущен в этой ситуации раньше. Поэтому я подумал об обходном пути и решил свою проблему. В этом обходном пути используется метод AppendCellsRequest из spreadsheets.batchUpdate . Я думаю, что для вашей ситуации может быть несколько обходных путей, поэтому, пожалуйста, подумайте об этом как об одном из них.

Изменен скрипт:

Пожалуйста, обновите ваш скрипт (после service = build('sheets', 'v4', http=creds.authorize(Http()))) до следующих строк:

spreadsheet_id = "#####"  # Please set spreadsheet ID here.
sheetId = 0  # Please set sheet ID here.
values = [[max_temp, avg_temp, min_temp]]
range_list = [1, 4, 7]  # columns B, E and H. First index is 0.
rows = [{'values': ([{}] * e) + [{'userEnteredValue': {'stringValue': r}} for r in values[0]]} for e in range_list]
body = {'requests': [{'appendCells': {'rows': rows, 'sheetId': 0, 'fields': "userEnteredValue.stringValue"}}]}
result = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=body).execute()

Примечание:

  • Этот измененный скрипт Предполагается, что ваша среда может использовать API Sheets.
  • При использовании этого сценария, пожалуйста, установите идентификатор листа Sheet1 и установите значения max_temp, avg_temp, min_temp.
  • range_list = [1, 4, 7] означает столбцы B, E и H. В этом случае первый индекс равен 0.
  • В этом модифицированном скрипте все значения range_list создаются как тело запроса и используются. Таким образом, значения могут быть введены одним вызовом API. Так что for i in range(3) в вашем вопросе можно удалить.
  • Это пример модификации. Поэтому, пожалуйста, измените вашу ситуацию.

Ссылки:

Если я неправильно понял ваш вопрос, извините.

0
ответ дан tehhowch 15 January 2019 в 17:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: