Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Google电子表格API:duplicateSheet:没有ID为的工作表_Python_Google Sheets_Google Api Python Client - Fatal编程技术网

Python Google电子表格API:duplicateSheet:没有ID为的工作表

Python Google电子表格API:duplicateSheet:没有ID为的工作表,python,google-sheets,google-api-python-client,Python,Google Sheets,Google Api Python Client,我正在尝试使用duplicateSheet请求,使用batchUpdate()方法复制工作表: body['requests'] = [ { "duplicateSheet": { "newSheetName": date_today(), "sourceSheetId": int(sheet_number) } } ] sheet = service.spreadsheets() request

我正在尝试使用
duplicateSheet
请求,使用
batchUpdate()
方法复制工作表:

body['requests'] = [
    {
        "duplicateSheet": {
            "newSheetName": date_today(),
            "sourceSheetId": int(sheet_number)
        }
    }
]

sheet = service.spreadsheets()
request = sheet.batchUpdate(spreadsheetId=spreadsheetId,
                            body=requestBody)
response = request.execute()
但我收到了这个错误信息:

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://sheets.googleapis.com/v4/spreadsheets/xxxxxxxxxx_xxxxxxxx-xxxxxxx:batchUpdate?alt=json returned "Invalid requests[0].duplicateSheet: No sheet with id: 3">

“sourceSheetId”
中使用的工作表ID为。工作表ID可以通过
sheets.spreadsheets.get
检索Python,通过
getSheetId()
检索GAS。示例脚本如下所示

Python示例 气体样品
“sourceSheetId”
中使用的工作表ID为。工作表ID可以通过
sheets.spreadsheets.get
检索Python,通过
getSheetId()
检索GAS。示例脚本如下所示

Python示例 气体样品 最终使用了此代码(感谢我的同事):

最终使用了此代码(感谢我的同事):

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getIndex();
sheet = service.spreadsheets()
request = sheet.get(
    spreadsheetId=spreadsheetId,
    fields="sheets(properties(sheetId,title))")
response = request.execute()
var res = [
  [i.getSheetId(), i.getSheetName()]
  for each (i in SpreadsheetApp.getActiveSpreadsheet().getSheets())
];
meta = service.spreadsheets().get(spreadsheetId=SPREADSHEET_ID).execute()
sheets = meta.get("sheets", {})

for sheet in sheets:
    sheet_index = sheet.get("properties", {}).get("index")
    sheet_id = sheet.get("properties", {}).get("sheetId")
    if (sheet_index == index):
        return sheet_id