如何使用Python中的API重命名Google表格电子表格中的(工作)表格?

Ild*_*mil 21 python google-api google-sheets google-api-python-client google-sheets-api

我一直在努力/希望解决这个问题很长一段时间.我已经阅读了gspread的文档,但我发现有一种方法可以重命名工作表.你们任何人都知道怎么做?我会非常欣赏它!确实workheet.title给出了工作表的名称,但我找不到重命名实际工作表的方法.

先感谢您!

Mat*_*ati 20

这是我个人编写的图书馆的摘录:

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",
        }
    })
Run Code Online (Sandbox Code Playgroud)

我认为通过一点努力,您可以将其实现到您的代码中并获得您想要的内容.要进行batchUpdate调用,您需要使用spreadsheetId以及Python QUickstartservice中所述的初始化- Google Sheet API


abu*_*abu 5

尽管标题说使用 API,但问题详细信息OP想要使用gspread API(而不是使用直接调用Google Spreadsheets API)。

令我惊讶的是,目前还没有答案。也许在发布问题时 gspread 没有相应的方法,但现在它就像使用update_title方法一样简单:

import gspread

# authenticate:
gc = gspread.service_account()
# choose a gspread method to open your spreadsheet and your worksheet:
wsh = gc.open_by_key(spreadsheetId).worksheet("old_WorkSheetName")
# update your worksheet name:
wsh.update_title("new_WorksheetName")
Run Code Online (Sandbox Code Playgroud)

就是这样。