如何使用Google Sheets API v4和Python更改列宽?

6

我正在尝试使用Google Sheets API更改列宽。我知道可以通过ss_drive.get('id')获取spreadsheetId,但是我不知道如何获取sheetId

ss_drive = drive_api.files().create(body=file_metadata).execute()
ssId = ss_drive.get('id')

sheets_api = build('sheets', 'v4', credentials=credentials)

requests = []
requests.append({
    "updateDimensionProperties": {
    "range": {
      "sheetId": sheetId,
      "dimension": "COLUMNS",
      "startIndex": 0,
      "endIndex": 1
    },
    "properties": {
      "pixelSize": 160
    },
    "fields": "pixelSize"
    }
})

response = sheets_api.spreadsheets().batchUpdate(
    spreadsheetId=ssId, body={'requests': requests}).execute()

我将"sheetId": sheetId更改为"sheetId": 0。然后列的宽度发生了变化。

1个回答

1

您可以在您的账户中存储多个表格,因此您需要事先了解表格ID。您可以登录https://sheets.google.com,导航到您选择的表格,URL将类似于:

https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms

d/之后的标记是电子表格的ID,您可以根据开发人员示例在查询中使用它。

我可以使用这个命令从你的例子中获取1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upmsss_drive.get('id')。它被称为spreadsheetId。我的问题是如何获取"sheetId": sheetId?它们不一样。 - F. Vosnim
@F.Vosnim 这取决于你如何命名该表格。如果你不知道里面有什么,你可以通过spreadsheets()。get来获取概述。请参见我链接的问题。 - a_guest
我是说你所说的一切都没有帮助改变列宽。我在我的代码中放置了"sheetId": 0,并成功地更改了列的宽度。这意味着Sheet1、Sheet2、Sheet3...具有sheetId=0、1、2...。考虑你的例子1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms是你的spreadsheetId,但是这个电子表格内的第一个工作表具有sheetId=0 - F. Vosnim
1
只要您不删除工作表,那就没问题。但是如果删除了“Sheet1”,第一个工作表的“sheetId == 1”仍然存在。因此,通常不能假设第一个工作表的ID为“0”。如果移动工作表也是同样的情况。 - a_guest
没错,我删除了第一个工作表,第二个工作表变成了 'sheetId': 876005509 - F. Vosnim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接