将Google表格作为xlsx导出到公司网络驱动器

时间:2016-11-17 14:12:33

标签: excel google-apps-script google-sheets

更改工作表时会触发此功能。

function exportAsxlsx() {
 var spreadsheet   = SpreadsheetApp.getActiveSpreadsheet();
 var spreadsheetId = spreadsheet.getId()
 var file          = Drive.Files.get(spreadsheetId);
 var url           = file.exportLinks[MimeType.MICROSOFT_EXCEL];
 var token         = ScriptApp.getOAuthToken();
 var response      = UrlFetchApp.fetch(url, {
   headers: {
  'Authorization': 'Bearer ' +  token
 }
});

 var blobs   = response.getBlob();
 var folder = DriveApp.getFoldersByName('\\GBC1234.fs1.util.xxint.com\Shared\Projects\Test_Google2Excel');
 if(folder.hasNext()) {
   var existingPlan1 = DriveApp.getFilesByName('TestGoogle2Excel.xlsx');
   if(existingPlan1.hasNext()){
     var existingPlan2 = existingPlan1.next();
     var existingPlanID = existingPlan2.getId();
     Drive.Files.remove(existingPlanID);
   }
 } else {
folder = DriveApp.createFolder('\\GBC1234.fs1.util.xxint.com\Shared\Projects\Test_Google2Excel');
}
folder = DriveApp.getFoldersByName('\\GBC1234.fs1.util.xxint.com\Shared\Projects\Test_Google2Excel').next();
folder.createFile(blobs).setName('TestGoogle2Excel.xlsx')
  }

它会使Google驱动器中的目录“\ GBC1234.fs1.util.xxint.com \ Shared \ Projects \ Test_Google2Excel”将文件保存在那里。

如何将其保存到公司的驱动器中?

1 个答案:

答案 0 :(得分:0)

您需要拥有一个本地托管的“客户端”,将所述文件从已知的驱动器位置下载到网络。

一旦您开始考虑这个问题,客户端就可以与您描述的工作流程中的许多点进行交互。

即。  1.如上所述,民意调查google驱动器以查看输出xlsx是否已创建并下载。驱动API  2.轮询驱动器本身的工作表,然后触发应用程序脚本执行转换。 Apps Script Execution API  3.完全删除它们并直接与工作表交互。表格API

在每种情况下,您都希望缓存原始工作表数据的校验和,以便只有在事情发生变化时才会执行操作。 (有很多方法可以做到这一点)