今天早上我注意到,我们以前将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的电子表格,一切仍然正常。
答案 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')
但我不知道它会用多长时间