Google云端硬盘Web API不会返回新电子表格版本的Open Office导出链接

时间:2015-01-19 15:26:55

标签: google-drive-api google-spreadsheet-api

今天早上我注意到,我们以前将Google电子表格导出为Open Office(ods)文档的方式不再适用于新的电子表格版本。我们通过Google Drive API请求文件的元数据,并使用返回的exportLinks。对于旧版电子表格,结果如下:

exportLinks: {
  'application/pdf': 'https://docs.google.com/feeds/download/spreadsheets/Export?key=someid&exportFormat=pdf',
  'application/x-vnd.oasis.opendocument.spreadsheet': 'https://docs.google.com/feeds/download/spreadsheets/Export?key=someid&exportFormat=ods',
  'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'https://docs.google.com/feeds/download/spreadsheets/Export?key=someid&exportFormat=xlsx'
}

因此我们获得了PDF,XLSX和ODS链接。但在新版本中,我们获得了CSV而不是ODS链接:

exportLinks: {
  'text/csv': 'https://docs.google.com/spreadsheets/export?id=someid&exportFormat=csv',
  'application/pdf': 'https://docs.google.com/spreadsheets/export?id=someid&exportFormat=pdf',
  'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'https://docs.google.com/spreadsheets/export?id=someid&exportFormat=xlsx'
}

根据documentation,电子表格的导出链接应为Microsoft Excel(xlsx),Open Office工作表(ods)和PDF。我目前还不确定文档是否是最新的,或者我在使用API​​时出错了。我目前的解决方法是硬编码ODS导出的链接。下载仍然有效,exportLinks对象中缺少下载链接。

P.S。:使其更清晰。对于尚未更新为new spreadsheet version的电子表格,一切仍然正常。

1 个答案:

答案 0 :(得分:0)

我用

解决了这个问题
download_url = drive_file[u'exportLinks'][u'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']
  # xlsx shold be changed to ods
  download_url = download_url.replace('xlsx','ods')

但我不知道它会用多长时间