【发布时间】:2019-01-19 03:53:49
【问题描述】:
编辑尝试使这更容易理解:
这是我所做的:
我创建了一个 Google 电子表格。我创建了一个 SCRIPT,它使用基于服务日期和客户名称的文件名将其保存到 Google Drive 文件夹中。
这是我目前拥有的脚本:
// This creates a custom Menu Function so that I can save the file.
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Choice Menu')
.addItem('Submit Form','saveAsSpreadsheet')
.addToUi(); }
// Saves Spreadsheet in Google Drive Folder
function saveAsSpreadsheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var destFolder = DriveApp.getFolderById("0B8xnkPYxGFbUMktOWm14TVA3Yjg");
DriveApp.getFileById(sheet.getId()).makeCopy(getFilename(), destFolder);
}
//This Function uses a cell "G4" (Which is Date and Customer Name) to create a file name. This file name will be then used for the above Script.
function getFilename() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('Manifest');
var cell = sheet.getRange('G4');
var filename = cell.getValue();
return filename;}
所以我的代码运行良好,除了一个问题。
这是我的问题:
当我使用上述脚本第二次保存电子表格时,它会保存一个新文件。除非文件名相同,否则我想将其另存为新文件。如果文件名相同,我想删除原文件,然后保存新文件。
我尝试了什么: 根据我对以下 cmets 的理解,我需要运行一个代码,“1. 需要运行查询以查看是否存在任何具有您选择的名称的文件,然后采取相应的行动。2. 如果没有具有该名称的文件名称,然后继续创建一个(使用我上面列出的函数)。如果有同名文件,3.删除原始文件并创建一个新的同名文件。
我尝试了几天来尝试不同的选项,但都没有奏效,所以我希望重新开始。
欣赏任何编码解决方案或前进方向!
【问题讨论】:
-
我可以问你关于
it replace (not create a copy)的事吗?如果文件夹中有一个文件名重复的文件,你想怎么办? 1.您要删除现有文件并创建具有相同文件名的新文件。在这种情况下,文件 ID 与原始文件不同。 2. 您想替换文件而不更改文件 ID。在现阶段,这还不能实现。 -
如果电子表格足够简单,您可以将工作表从新文件复制到旧文件并删除旧工作表。如果您引用其他工作表上的命名范围,或者如果您有引用其他工作表或更复杂的公式(至少在没有重要编码的情况下),这将不起作用。
-
@s1c0j1 ,看起来我的工作表很复杂。该文件由多张纸组成。
-
@Tanaike ,我想做你的选择 1。我不在乎 fileID 不同。
-
@Ben 感谢您的回复。我注意到发布了一个答案。我认为它会解决您的问题。
标签: google-apps-script google-sheets google-drive-api