如何使用Drive API在Google电子表格中获取表单列表(名称和" gid")?

时间:2015-09-18 00:56:02

标签: python python-2.7 google-drive-api google-api-python-client

我正在尝试使用Google Drive API(Python)下载电子表格文件的某些标签。 gids信息是否在文件的元数据中? 我想做的是(这可能不正确,请建议:)):

file_metadata = self.service.files().get(file_id=file_id).execute()
# in the following line, how can I get a download url with a gid (a tab in a spreadsheet file)
download_url = file_metadata.get('exportLinks')['text/csv']
# download the file.

感谢:)

2 个答案:

答案 0 :(得分:1)

事实上,这似乎是How to convert Google spreadsheet's worksheet string id to integer index (GID)?

的重复

以下是快速回答:

def to_gid(worksheet_id):
    return int(worksheet_id, 36) ^ 31578

答案 1 :(得分:1)

您可以使用Google Apps脚本中的电子表格服务执行此操作。它不像直接API调用那么方便,但至少有可能:

  1. 使用云端硬盘file_id调用SpreadsheetApp.openById(id)方法打开电子表格。
  2. 调用Spreadsheet.getSheets()方法检索Sheet个对象的列表。
  3. 对于每张工作表,请调用Sheet.getSheetId()Sheet.getSheetName()方法获取名称(电子表格用户看到的名称)和sheetId(需要在{{1导出时的参数。)。
  4. 您可以使用最近宣布的Apps Script Execution API为您的Apps脚本项目提供REST API,然后您可以通过与Drive API类似的方式调用该API。