我可以復制檔案并從電子表格范圍重命名新副本。如果我重新執行腳本,如何不創建現有檔案名。
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);
}
}
uj5u.com熱心網友回復:
描述
這是一個復制檔案但檢查該名稱的檔案是否不存在的簡單示例。
這假定檔案位于子檔案夾中,與模板檔案位于同一檔案夾中。它還假設只能有一個具有相同檔案名的檔案。
我已經使用了我的檔案,因此您需要根據您的要求檢查任何檔案/電子表格參考。
腳本
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);
}
}
參考
- 檔案.getParents()
- Folder.getFilesByName()
- 檔案迭代器
- 檔案.makeCopy()
] 4
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/457225.html
標籤:谷歌应用脚本
