¿Cómo cambio el nombre de una hoja (de trabajo) en una hoja de cálculo de Google Sheets usando la API en Python?

He estado tratando / buscando resolver este problema durante mucho tiempo. He leído la documentación de gspread y no puedo encontrar una forma de cambiar el nombre de una hoja de cálculo. ¿Alguno de ustedes sabe cómo? ¡Lo apreciaría masivamente! De hecho, hay worksheet.title que da el nombre de la hoja de trabajo, pero no puedo encontrar una manera de cambiar el nombre de la hoja real.

¡Gracias de antemano!

Esta es una extracción de una biblioteca que he codificado personalmente:

 def _batch(self, requests): body = { 'requests': requests } return self._service.spreadsheets().batchUpdate(spreadsheetId=self.spreadsheetId, body=body).execute() def renameSheet(self, sheetId, newName): return self._batch({ "updateSheetProperties": { "properties": { "sheetId": sheetId, "title": newName, }, "fields": "title", } }) 

Creo que con un poco de esfuerzo, puede implementarlo en su código y obtener lo que desea. Para realizar la llamada batchUpdate , necesitará la hoja de batchUpdate y el service inicializado como se explica en Python QUickstart – API de la hoja de Google

Su respuesta se puede resolver a través de una solicitud HTTP de Python.

Enlace esta aqui

Debe enviar algún tipo de metadatos para la hoja de trabajo a través de HTTP.

Por ejemplo, obtenga el ID de la hoja de trabajo utilizando Python y envíe la siguiente información:

   https://spreadsheets.google.com/feeds/worksheets/key/private/full/worksheetId  2007-07-30T18:51:30.666Z  Income Expenses     45 15  

El sitio web también tiene una solución Java y .NET. (Esto es para la versión heredada 3)

Para la versión más reciente, también puede usar una actualización por lotes a través de una solicitud http POST de Python.

el enlace está aquí

Los datos para la solicitud son.

 { "requests": [{ "updateSpreadsheetProperties": { "properties": {"title": "My New Title"}, "fields": "title" } }] } 

para ser enviado vía POST a https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate

En ambas solicitudes, reemplace la hoja de cálculo en la URL con el ID de la hoja de Google que está editando.

Observe el cambio de v3 a v4 en las URL.

Si está utilizando una aplicación de la versión 3 y desea migrar, el enlace que se encuentra aquí.

EDITAR

Un comentarista notó que la segunda solicitud no cambia el nombre de una hoja de trabajo. El enlace que agregué muestra la manera de cambiar las complejas propiedades de una hoja de trabajo, pronto actualizaré mi respuesta.

Podrías lograr lo mismo con el puerto gspread para api v4 – pygsheets (autor aquí). El código correspondiente usando pygsheets será,

 import pygsheets gc = pygsheets.authorize() # Open spreadsheet and then workseet sh = gc.open('my new ssheet') wks = sh.sheet1 wks.title = "new title"