Чтобы заставить Google Sheets работать с последними созданными листами, а не только с первым, вы можете использовать библиотеку `gspread`, которая позволяет взаимодействовать с Google Sheets через API. Вот пример, как можно это сделать.
1. Установите библиотеку `gspread`, если она еще не установлена. Вы можете сделать это с помощью pip:
```bash
pip install gspread oauth2client
```
2. Используйте следующий код для создания и работы с листами:
```python
import gspread
from oauth2client.service_account import ServiceAccountCredentials
# Настройка доступа к Google Sheets API
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('path/to/credentials.json', scope)
# Подключение к Google Sheets
client = gspread.authorize(credentials)
# Открываем документ по URL или имени
spreadsheet = client.open("Имя вашего документа")
# Получаем текущий лист (если он не существует, создаём новый)
def get_current_sheet():
return spreadsheet.sheet1 # Здесь можно поменять на нужный лист по вашему усмотрению
# Создание нового листа на основе данных текущего листа
def create_new_sheet():
current_sheet = get_current_sheet()
previous_data = current_sheet.get_all_values() # Получаем все данные из текущего листа
# Создаём новый лист
new_sheet_title = f"Лист {len(spreadsheet.worksheets()) + 1}"
new_sheet = spreadsheet.add_worksheet(title=new_sheet_title, rows="100", cols="20")
# Записываем данные из предыдущего листа в новый лист
new_sheet.insert_rows(previous_data)
return new_sheet
# Основной цикл создания листов
for _ in range(5): # Меняем 5 на нужное количество листов
new_sheet = create_new_sheet()
print(f"Создан новый лист: {new_sheet.title}")
```
### Объяснение кода:
- Мы используем `gspread` для работы с Google Sheets и аутентифицируемся, используя учетные данные из JSON файла.
- Функция `get_current_sheet` возвращает текущий лист. В этом случае мы используем первый лист (sheet1), но можете модифицировать его, чтобы возвращать последний созданный лист.
- В функции `create_new_sheet` мы получаем данные текущего листа, создаем новый лист и вставляем данные из предыдущего листа в новый.
- Цикл создает определенное количество новых листов.
### Примечание:
Убедитесь, что у вас есть токен JSON для доступа к Google Sheets API. Настройте доступ в Google Cloud Console и загрузите файл с учетными данными.
Теперь каждый новый лист будет получать данные с последнего созданного листа, соответствуя вашим требованиям.