首页 > 解决方案 > 如何下载表格文件,然后以 .XLSX 格式将其发送到服务器?

问题描述

我有一个包含我的文件的驱动器,并希望将它们发送到我的服务器进行备份。我想将所有表格转换为 Excel 格式 (.xlsx)。所以,我选择我的文件,然后单击上传按钮,它转到 myfunction()。在 myfunction 中,我下载了 .xlsx 文件,然后将文本发送到我的服务器,但随后我尝试使用 Open Office 打开它,我收到一条错误消息,指出文件已损坏。(我在控制台中打印出 url,当我在浏览器中打开该 url 时,它可以正常工作)。我在脚本中下载文件,以便确保它打开,因为在我的服务器上离线这样做可能无法打开它,因为它没有适当的权限。

function myfunction(file, ext){
  var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + file.getId() + "&exportFormat=xlsx";
  var params = {
    method      : "get",
    headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
    muteHttpExceptions: true
  };
  console.log("url: "+url);
  var txt = UrlFetchApp.fetch(url, params).getContentText();
  var options = {
    'method': 'POST',
    'payload': {
      file: file.getName() + '.xlsx',
      file_body: txt,
    },
  };

  var response = UrlFetchApp.fetch('https://example.com', options).getContentText();
  console.log("upload response: "+response);
}

我究竟做错了什么?此外,我担心团队驱动器上或共享的表格,并希望确保我也可以下载这些表格。

编辑:我也尝试过,getAs(contentType)但不幸的是,它告诉我我只能将其下载为 PDF。

标签: google-apps-scriptgoogle-sheetsdrive

解决方案


推荐阅读