以编程方式下载文件

时间:2018-08-23 12:55:25

标签: google-apps-script google-api google-drive-api

我有一个Google表格应用程序,该应用程序生成的文件需要上传到HMRC政府网络。他们只接受HMRC最初格式化和生成的文件中的开放文档格式(.ods)。

当前,我唯一能做的就是将数据作为.ods文件手动下载到PC中。我希望能够直接将Google File Drive Stream中的文件上传到HMRC,我认为这是真实的文件,但事实并非如此! HMRC不会看它。

那么,有没有人知道DriveApp或任何其他Google Apps Script方法是否可以像手动那样下载文件?

1 个答案:

答案 0 :(得分:0)

一种可能性是在Google Apps脚本中使用Advanced Drive Service并在脚本中使用Drive API。使用files.get方法,您可以访问文件中的导出链接,然后选择所需的链接。

您还需要提示对话框以单击链接,因为我认为您无法直接从Google Apps脚本中打开URL。

此代码可能对您有用:

function exportToODS(fileId){
  var file = Drive.Files.get(fileId);
  var openOfficeURL = file.exportLinks["application/x-vnd.oasis.opendocument.spreadsheet"];
  showDialog('Click here to export',openOfficeURL);
}

function showDialog(name,url) {
  var html = '<html><body><a href="'+url+'" target="blank" onclick="google.script.host.close()">'+name+'</a></body></html>';
  var ui = HtmlService.createHtmlOutput(html)
  SpreadsheetApp.getUi().showModelessDialog(ui,"Export to ODS");
}

请记住,在使用它们之前,您需要先enable Advanced Google Services

  

要使用高级Google服务,请按照以下说明进行操作:

     
      
  1. 在脚本编辑器中,选择资源>高级Google服务...
  2.   
  3. 在出现的对话框中,单击要使用的服务旁边的开/关开关。
  4.   
  5. 在对话框底部,单击 Google API控制台的链接。
  6.   
  7. 在控制台中,单击进入过滤器框,然后键入API名称的一部分(例如“ Calendar”),然后单击一次名称   你看到了。
  8.   
  9. 在下一个屏幕上,点击启用API
  10.   
  11. 关闭API控制台并返回到脚本编辑器。在对话框中点击确定。您启用的高级服务现在可以在   自动完成。
  12.   

希望对您有帮助!