Есть ли способ продублировать рабочий лист, используя gspread в python? - PullRequest
1 голос
/ 13 июля 2020

Итак, я пытался создать хранилище данных с помощью листов Google (мне легче ориентироваться). Я пытаюсь сделать это, создав новый рабочий лист с идентификатором пользователя и помещая информацию, которую я сохранил на отдельном рабочем листе под названием «шаблон», в новый рабочий лист.

Это мой текущий код :

newsheet = sh.add_worksheet(title = f"{author}", rows = "152", cols = "2")
for index in range(1, len(savefiletemplate.col_values(1))):
    newsheet.update_cell(index, 1, savefiletemplate.cell(index, 1).value)

author - это идентификатор пользователя, sh - моя электронная таблица и savefiletemplate - мой рабочий лист шаблона

Это дает мне очень длинную ошибку, которую я не поймете после копирования 90-120 ячеек. Мне было интересно, это моя вина или моя IDE, и знает ли кто, как это исправить

1 Ответ

0 голосов
/ 23 июля 2020

Я бы попробовал что-то вроде этого ...

rows = 152
cols = 2
template_data = savefiletemplate.get_all_values()  # this will be a list of lists
newsheet = sh.add_worksheet(title=author, rows=rows, cols=cols)
a1_range = f"A1:{chr(ord('@')+cols)}{rows}"  # A1:B152
newsheet.update(a1_range, template_data)
        

Это в основном берет ваш шаблон и помещает его в список списков. Затем использует значения rows и cols для построения правильной записи a1 для диапазона. Затем обновляет диапазон на новом листе с template_data. Попробуйте и посмотрите, сделает ли он то, что вы ищете.

...