Как вставить значение в Google таблицы с помощью python, когда ячейка пуста/пуста

#python #google-sheets

Вопрос:

Я пытаюсь автоматизировать таблицы Google с помощью python, и каждый раз, когда выполняется мой запрос DF, он вставляет данные с текущим днем.

Проще говоря, когда столбец даты пуст, он должен быть заполнен датой запуска программы. Изображение является:

ПРИМЕР ИЗОБРАЖЕНИЯ

Я пытался сделать что-то подобное:

ws = клиент.открыть(«автоматизация»).рабочий лист(«лист2»)

ws.update(df_h.fillna(‘0’).столбцы.значения.толист())

Я не могу заполнить только пустое пространство, кажется, что или весь столбец заменен, или все строки и т. Д.

Комментарии:

1. Рассматривали ли вы возможность использования API Sheets ? Или Сценарий Приложений?

2. нет, не знаю, но все равно спасибо 🙂

Ответ №1:

Решил это с помощью другой учетной записи:

 ws_date_pipe = client.open("automation").worksheet('sheet2')
# Range of date column (targeted one, which is the min range)
next_row_min = str(len(list(filter(None, ws_date_pipe.col_values(8)))) 1)
# Range of first column (which is the max range)
next_row_max = str(len(list(filter(None, ws_date_pipe.col_values(1)))))

cell_list = ws_date_pipe.range(f"H{next_row_min}:H{next_row_max}")
cell_values = []

# Difference between max-min ranges, space that needs to be fulfilled
for x in range(0, ((int(next_row_max) 1)-int(next_row_min)), 1):
    iterator = x
    iterator = datetime.datetime.now().strftime("%Y-%m-%d")
    iterator = str(iterator)
    cell_values.append(iterator)

for i, val in enumerate(cell_values):  
    cell_list[i].value = val

# If date range len "next_row_min" is lower than the first column, then fill.
if int(next_row_min) < int(next_row_max) 1:
    ws_date_pipe.update_cells(cell_list)


print(f'Saved to csv file. {datetime.datetime.now().strftime("%Y-%m-%d")}')