Google स्प्रेडशीट में अटेंडेंस नाम की एक शीट होती है जिसे टेम्प्लेट कहा जाता है । उपयोगकर्ता इस शीट को डुप्लिकेट करता है, वर्तमान तिथि के साथ शीट का नाम बदल देता है और छात्रों के लिए उपस्थिति को चिह्नित करने के लिए इस शीट का उपयोग करता है। टेम्प्लेट शीट में संरक्षित सेल होते हैं और दिए गए स्थान (असुरक्षित सेल) में छात्र की आईडी संख्या दर्ज करके उपस्थिति को चिह्नित किया जाता है। मैं कई शीटों को डुप्लिकेट करने के लिए निम्न स्क्रिप्ट का उपयोग करता हूं और उन्हें हर रोज नाम देता हूं:
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;
}
यह स्क्रिप्ट मुझे टेम्प्लेट से शीट की कई प्रतियां बनाने में मदद करती है लेकिन डुप्लिकेट प्रतियां सेल / रेंज अनुमतियों को बरकरार नहीं रखती हैं। क्या एक लूप फ़ंक्शन को जोड़ने का एक तरीका है जो टेम्पलेट से अनुमति निकालता है और इसे हर बार लागू करता है जब लूप template.copyTo
एक शीट बनाता है?