Как скопировать рабочий лист на существующий лист с помощью gspread?Python

Программы на Python
Anonymous
Как скопировать рабочий лист на существующий лист с помощью gspread?

Сообщение Anonymous »

В Google Sheets можно вручную скопировать лист с одного листа на другой лист; Я хочу сделать это программно с помощью gspread в блокноте Google Colab. Например, если у меня на диске есть 2 листа — spreadsheet_1 и spreadsheet_2 — я хочу скопировать рабочий лист ws_1 из spreadsheet_1 в spreadsheet_2.
Я прочитал часть документации gspread и обнаружил, что объект Worksheet имеет метод, называемый copy_to, который копирует заданный лист на другой лист. Я попробовал использовать его в следующем коде.

Код: Выделить всё

# import, authenticate, make gspread client
from google.colab import auth
auth.authenticate_user()

import gspread
from google.auth import default

creds, _ = default()
gc = gspread.authorize(creds)

# access worksheet ws_1 from sheet spreadsheet_1
sh_1 = gc.open('spreadsheet_1')
ws = sh_1.worksheet('ws_1')

# copy the worksheet to spreadsheet_2
sh_2 = gc.open('spreadsheet_2')
ws.copy_to(sh_2.id) # reference spreadsheet_2 with its id
Ошибка:

Код: Выделить всё

AttributeError                            Traceback (most recent call last)
 in ()
3
4 sh_2 = gc.open('spreadsheet_2')
----> 5 ws.copy_to(sh_2.id)

AttributeError: 'Worksheet' object has no attribute 'copy_to'
Но, судя по полученной мной ошибке атрибута, Worksheet на самом деле не имеет такого метода. Я попытался изучить документацию, но не совсем понятно, как можно выполнить эту задачу.

Вернуться в «Python»