Di Google Spreadsheet yang disebut Kehadiran ada lembar yang disebut Template . Pengguna menduplikasi lembar ini, mengganti nama lembar dengan tanggal saat ini dan menggunakan lembar ini untuk menandai kehadiran bagi siswa. Lembar Templat berisi sel-sel yang dilindungi dan kehadiran ditandai dengan memasukkan nomor ID Siswa di ruang yang diberikan (sel yang tidak terlindungi). Saya menggunakan skrip berikut untuk menduplikasi beberapa lembar dan mengganti nama setiap hari:
function createDailyAttendance() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var refss = ss.getSheetByName("DataPointers");
// Get the range Row and Column information.
var dataRangeRow = refss.getRange("K2").getValue();
//var dataRangeCol = ss.getRangeByName(ColName).getValue();
// Get the range of cells that store Duplicate sheet name.
var AttendanceDataRange = refss.getRange(dataRangeRow);
var AttendanceObjects = AttendanceDataRange.getValues();
var template = ss.getSheetByName('Template');
for (var i=0; i < AttendanceObjects.length; i++) {
// Put the sheet you want to create in a variable
var sheet = ss.getSheetByName(AttendanceObjects[i]);
// Check if the sheet you want to create already exists. If so,
// log this and loop back. If not, create the new sheet.
if (sheet) {
Logger.log("Sheet " + AttendanceObjects[i] + "already exists");
} else {
template.copyTo(ss).setName(AttendanceObjects[i]);
}
}
return;
}
Skrip ini membantu saya membuat beberapa lembar salinan dari Templat tetapi salinan duplikat tidak mempertahankan izin Cell / Range. Apakah ada cara untuk menambahkan fungsi loop yang mengekstraksi izin dari Template dan menerapkannya setiap kali loop template.copyTo
membuat sheet?