Google脚本编辑器-覆盖备份文件

问题描述 投票:1回答:1

我正在使用Google脚本编辑器。我的脚本的目的是将电子表格从Google表格中备份为csv到本地。我希望每个新备份都覆盖以前的备份文件。当前,该脚本生成的后续备份文件具有相同的名称,但具有相同的副本(例如文件名(1).csv和文件名(2).csv)。对覆盖的任何帮助将不胜感激。

  function myFunction() {// UPDATE THE FOLDER ID for e.g. "My Drive > Docs > Backups"
  var backupFolder = DriveApp.getFolderById("foldername");
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = spreadsheet.getId();
  var file = Drive.Files.get(spreadsheetId);
  var url = file.exportLinks[MimeType.CSV];

  // UPDATE THE SHEET-NAME TO BE EXPORTED - e.g. sheetName = "Malawi Ops"
  // -- LEAVE IT BLANK TO EXPORT THE ENTIRE SPREADSHEET - i.e. sheetName = ""
  var sheetName = "";
  if (sheetName.length) {
    var sheet = spreadsheet.getSheetByName(sheetName);
    var sheetId = sheet.getSheetId();
    url += "&gid=" + sheetId;
  }

  var token = ScriptApp.getOAuthToken();
  var options = { headers: { Authorization: "Bearer " + token } };
  var response = UrlFetchApp.fetch(url, options);
  var doc = response.getBlob();
  var backupDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH-mm-ss");
  var backupName = spreadsheet.getName() + ".csv";
  var tempFile = DriveApp.createFile(doc).setName(backupName);
  tempFile.makeCopy(backupName, backupFolder);
  tempFile.setTrashed(true);

}
google-apps-script google-sheets google-drive-api
1个回答
0
投票

我知道您正在使用代码对表格进行CSV备份,并且您希望每个新备份都覆盖旧备份。如果我对它的理解很好,那么您离实现目标非常接近。

复制新备份后,只需删除旧备份。这不是直接overwriting,但结果相同。创建新的CSV文件后,您可以立即搜索旧的CSV文件并在其上使用File.isTrashed()。请,不要犹豫,问我任何疑问。

© www.soinside.com 2019 - 2024. All rights reserved.