防止重复 Google 脚本复制具有范围内文件名的文件
Prevent Duplicate Google Script Copy A File with Filenames from Range
我可以复制文件并重命名电子表格范围内的新副本。如果我重新执行脚本,如何不创建现有文件名。
function copyDocs() {
var file = SpreadsheetApp.openById('fileID-spreadsheet');
var ss = file.getSheetByName('List');
var data = ss.getRange(2,1,ss.getLastRow()-1,1).getValues();
for (var i in data) {
var drive = DriveApp.getFileById('fileID-template');
drive.makeCopy(data[i][0]);
};
}
这是我根据答案得出的最终脚本
function copyDocs() {
try {
let spread = SpreadsheetApp.openById('fileID-spreadsheet');
let sheet = spread.getSheetByName('List');
let data = sheet.getRange(2,1,sheet.getLastRow()-1,1).getValues();
let file = DriveApp.getFileById('fileID-template');
let folder = file.getParents().next();
for( let i=0; i<data.length; i++ ) {
let files = folder.getFilesByName(data[i][0]);
if( !files.hasNext() ) {
file.makeCopy(data[i][0],folder);
}
}
}
catch(err) {
console.log(err);
}
}
描述
这是一个复制文件但检查同名文件是否不存在的简单示例。
这假定文件位于子文件夹中,与模板文件位于同一文件夹中。它还假设只能有一个文件具有相同的文件名。
我已经使用了我的文件,因此您需要根据您的要求检查任何 file/spreadsheet 参考资料。
脚本
function copyDocs() {
try {
let spread = SpreadsheetApp.getActiveSpreadsheet();
let sheet = spread.getSheetByName("Sheet1");
let data = sheet.getDataRange().getValues();
let file = DriveApp.getFileById(spread.getId());
let folder = file.getParents().next();
for( let i=0; i<data.length; i++ ) {
let files = folder.getFilesByName(data[i][0]);
if( !files.hasNext() ) {
file.makeCopy(data[i][0],folder);
}
}
}
catch(err) {
console.log(err);
}
}
参考
]4
我可以复制文件并重命名电子表格范围内的新副本。如果我重新执行脚本,如何不创建现有文件名。
function copyDocs() {
var file = SpreadsheetApp.openById('fileID-spreadsheet');
var ss = file.getSheetByName('List');
var data = ss.getRange(2,1,ss.getLastRow()-1,1).getValues();
for (var i in data) {
var drive = DriveApp.getFileById('fileID-template');
drive.makeCopy(data[i][0]);
};
}
这是我根据答案得出的最终脚本
function copyDocs() {
try {
let spread = SpreadsheetApp.openById('fileID-spreadsheet');
let sheet = spread.getSheetByName('List');
let data = sheet.getRange(2,1,sheet.getLastRow()-1,1).getValues();
let file = DriveApp.getFileById('fileID-template');
let folder = file.getParents().next();
for( let i=0; i<data.length; i++ ) {
let files = folder.getFilesByName(data[i][0]);
if( !files.hasNext() ) {
file.makeCopy(data[i][0],folder);
}
}
}
catch(err) {
console.log(err);
}
}
描述
这是一个复制文件但检查同名文件是否不存在的简单示例。
这假定文件位于子文件夹中,与模板文件位于同一文件夹中。它还假设只能有一个文件具有相同的文件名。
我已经使用了我的文件,因此您需要根据您的要求检查任何 file/spreadsheet 参考资料。
脚本
function copyDocs() {
try {
let spread = SpreadsheetApp.getActiveSpreadsheet();
let sheet = spread.getSheetByName("Sheet1");
let data = sheet.getDataRange().getValues();
let file = DriveApp.getFileById(spread.getId());
let folder = file.getParents().next();
for( let i=0; i<data.length; i++ ) {
let files = folder.getFilesByName(data[i][0]);
if( !files.hasNext() ) {
file.makeCopy(data[i][0],folder);
}
}
}
catch(err) {
console.log(err);
}
}
参考
]4