- Вы хотите скопировать исходную электронную таблицу как новую электронную таблицу.
- Вы хотите добиться этого с помощью gspread с python.
- Вы уже смогли получить и поставить значения для Google Spreadsheet с использованием API Sheets.
Если я правильно понял, как насчет этого ответа? Пожалуйста, подумайте об этом, как об одном из нескольких возможных ответов.
Проблема и решение:
Похоже, что метод размножения duplicate_sheet
используется для копирования листа в исходной электронной таблице в ту же таблицу. Исходная таблица. Ссылка Чтобы скопировать исходную электронную таблицу как новую электронную таблицу, пожалуйста, используйте метод copy()
Class Client.
Пример сценария:
Измените сценарий следующим образом.
С:
client = gspread.authorize(credentials)
spreadsheet_client = Spreadsheet(client)
spreadsheet_client.duplicate_sheet("18Qk5bzuA7JOBD8CTgwvKYRiMl_35it5AwcFG2Bi5npo", new_sheet_name="timcard2")
worksheet = client.open("timcard2")
worksheet.share("my_email@google.com", perm_type='user', role='writer')
Кому:
client = gspread.authorize(credentials)
client.copy("18Qk5bzuA7JOBD8CTgwvKYRiMl_35it5AwcFG2Bi5npo", title="timcard2", copy_permissions=True)
worksheet = client.open("timcard2")
worksheet.share("my_email@google.com", perm_type='user', role='writer')
- При запуске сценария в качестве имени электронной таблицы копируется электронная таблица с идентификатором
18Qk5bzuA7JOBD8CTgwvKYRiMl_35it5AwcFG2Bi5npo
. timcard2
. И информация о разрешениях исходной электронной таблицы также копируется.
Примечание:
- В этом случае, когда используется
copy_permissions=True
, информация о разрешениях также копируется , Поэтому, хотя я не уверен в вашей реальной ситуации, может не потребоваться использование worksheet.share("my_email@google.com", perm_type='user', role='writer')
. Пожалуйста, будьте осторожны.
Ссылки:
Добавлено:
- Вы хотите скопировать один из листов в Google Spreadsheet.
Я могу понять как над. Для этого пример сценария выглядит следующим образом.
Пример сценария:
client = gspread.authorize(credentials)
client.copy("18Qk5bzuA7JOBD8CTgwvKYRiMl_35it5AwcFG2Bi5npo", title="timcard2", copy_permissions=True)
ss = client.open("timcard2")
ss.share("my_email@google.com", perm_type='user', role='writer')
delete_sheets = ["Sheet2", "Sheet3", "Sheet4"] # Please set the sheet names you want to delete.
for s in delete_sheets:
ss.del_worksheet(ss.worksheet(s))
- В этом примере листы "Лист2", "Лист3", "Лист4" удалено из скопированной таблицы.
Ссылка: