Как скопировать рабочий лист на существующий лист с помощью 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 на самом деле не имеет такого метода. Я попытался изучить документацию, но не совсем понятно, как можно выполнить эту задачу.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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