[英]Google Scripts Editor-Overwrite backup file
I am working with Google Scripts Editor.我正在使用 Google 脚本编辑器。 The purpose of my script is to backup a spreadsheet from Google Sheets to my local as a csv.
我的脚本的目的是将电子表格从 Google 表格备份到我的本地作为 csv。 I would like each new backup to overwrite the previous backup file.
我希望每个新备份都覆盖以前的备份文件。 Currently the script results in subsequent backup files as the same name but as a copy (Ex. filename (1).csv and filename (2).csv) Any help in overwriting would be appreciated.
目前,该脚本会导致后续备份文件名称相同但作为副本(例如文件名 (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);
}
I understood that you are using your code to make CSV backups of your Sheets, and you want each new backup to override the old one.我了解到您正在使用您的代码对表格进行 CSV 备份,并且您希望每个新备份都覆盖旧备份。 If I understood it well, you are very close from reaching your goal.
如果我理解得很好,那么你离目标很近了。
After copying the new backup, you only need to delete the old one.复制新备份后,只需删除旧备份即可。 This isn't directly overwriting , but has the same result.
这不是直接覆盖,但具有相同的结果。 Immediately after you created your new CSV, you can search for the old one and use
File.isTrashed()
on it.创建新的 CSV 后,您可以立即搜索旧的并在其上使用
File.isTrashed()
。 Please, don't hesitate to ask me any doubts.请不要犹豫,问我任何疑问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.