Google apps script 谷歌脚本编辑器覆盖备份文件
我正在使用谷歌脚本编辑器。我的脚本的目的是以csv格式将电子表格从Google Sheets备份到本地。我希望每个新备份都覆盖以前的备份文件。目前,该脚本会导致后续备份文件的名称相同,但作为一个副本(例如文件名(1).csv和文件名(2).csv)),如果您有任何关于覆盖的帮助,我们将不胜感激Google apps script 谷歌脚本编辑器覆盖备份文件,google-apps-script,google-sheets,google-drive-api,Google Apps Script,Google Sheets,Google Drive Api,我正在使用谷歌脚本编辑器。我的脚本的目的是以csv格式将电子表格从Google Sheets备份到本地。我希望每个新备份都覆盖以前的备份文件。目前,该脚本会导致后续备份文件的名称相同,但作为一个副本(例如文件名(1).csv和文件名(2).csv)),如果您有任何关于覆盖的帮助,我们将不胜感激 function myFunction() {// UPDATE THE FOLDER ID for e.g. "My Drive > Docs > Backups" var back
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);
}
我知道您正在使用代码对工作表进行CSV备份,并且希望每个新备份都覆盖旧备份。如果我理解得很好的话,你离实现目标很近了
复制新备份后,只需删除旧备份。这不是直接覆盖,而是具有相同的结果。创建新CSV后,您可以立即搜索旧CSV并在其上使用。请不要犹豫问我任何疑问。我知道您正在使用代码对工作表进行CSV备份,并且您希望每个新备份都覆盖旧备份。如果我理解得很好的话,你离实现目标很近了
复制新备份后,只需删除旧备份。这不是直接覆盖,而是具有相同的结果。创建新CSV后,您可以立即搜索旧CSV并在其上使用。请不要犹豫问我任何疑问。在你的问题中,你说
我的脚本的目的是将电子表格从Google Sheets以csv形式备份到我的本地。
。但在您的脚本中,Google电子表格将转换为Excel文件,并将其放在Google驱动器中的备份文件夹中。从这种情况来看,我无法理解你的目标。我可以问一下它的详细信息吗?代码经过编辑以反映作为csv导出。我正在尝试以csv格式备份到本地。我不清楚的是,我是否可以通过谷歌脚本编辑器在我的本地服务器上强制覆盖原始文件,以及该代码是什么样子。目前,每次运行脚本时,我都会得到一份原始脚本的副本,而不是覆盖。谢谢您的回复。不幸的是,在当前阶段,你的目标无法实现。因为Google脚本编辑器无法用于本地PC中的文件。对此我深表歉意。在你的问题中,你说我脚本的目的是将电子表格作为csv从Google Sheets备份到本地。
。但在您的脚本中,Google电子表格将转换为Excel文件,并将其放在Google驱动器中的备份文件夹中。从这种情况来看,我无法理解你的目标。我可以问一下它的详细信息吗?代码经过编辑以反映作为csv导出。我正在尝试以csv格式备份到本地。我不清楚的是,我是否可以通过谷歌脚本编辑器在我的本地服务器上强制覆盖原始文件,以及该代码是什么样子。目前,每次运行脚本时,我都会得到一份原始脚本的副本,而不是覆盖。谢谢您的回复。不幸的是,在当前阶段,你的目标无法实现。因为谷歌脚本编辑器无法用于本地电脑中的文件。对此我深表歉意。感谢您的回复。我该如何寻找旧的?可能使用getDateCreated()?如果是这样的话,你有没有一个我可以写的例子?你好,希瑟!是的,你可以用它来做手术。如果您知道文件名,一种更简单的方法是根据文件名删除该文件。此方法仅适用于驱动器备份,如果您想将其存储在其他位置,请回答并指出,以便我能更好地帮助您。感谢您的回复。我该如何寻找旧的?可能使用getDateCreated()?如果是这样的话,你有没有一个我可以写的例子?你好,希瑟!是的,你可以用它来做手术。如果您知道文件名,一种更简单的方法是根据文件名删除该文件。这种方法只适用于驱动器备份,如果您想将它们存储在其他位置,请回答并指出,这样我可以更好地帮助您。