function recreateSheetsFromColumnD() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var mainSheet = spreadsheet.getSheetByName("Main"); // 메인 시트 이름을 "Main"으로 가정
var mainDataRange = mainSheet.getRange("D1:D" + mainSheet.getLastRow());
var mainData = mainDataRange.getValues(); // Main 시트의 D열 데이터를 가져옴
// 1. 기존 시트들 삭제
var allSheets = spreadsheet.getSheets();
for (var i = 0; i < allSheets.length; i++) {
var sheetName = allSheets[i].getName();
// "Main" 시트는 삭제하지 않음
if (sheetName !== "Main") {
spreadsheet.deleteSheet(allSheets[i]); // Main 시트 외의 모든 시트 삭제
}
}
// 2. D열 값을 기준으로 새로운 시트 생성
for (var i = 0; i < mainData.length; i++) {
var value = mainData[i][0]; // D열의 각 값을 가져옴
// 공백이 있거나 값이 "Metric"이면 시트 생성하지 않음
if (value && value !== "Metric") {
try {
// 이미 동일한 이름의 시트가 없으면 시트를 생성함
if (spreadsheet.getSheetByName(value) === null) {
spreadsheet.insertSheet(value); // 새로운 시트 생성
}
} catch (e) {
Logger.log("Error creating sheet: " + e.message);
}
}
}
}
spreadsheet.getSheets()를 사용해 모든 시트를 가져온 후, Main 시트를 제외한 나머지 시트들을 삭제합니다.
deleteSheet() 함수로 시트를 삭제하며, "Main" 시트는 건너뜁니다.
Main 시트의 D열 데이터를 읽어와 공백이나 "Metric"이 아닌 경우에만 새로운 시트를 생성합니다.
insertSheet() 함수로 시트를 생성하며, 이미 동일한 이름의 시트가 존재하는 경우에는 생성하지 않습니다.
위 스크립트를 Google Apps Script에 저장한 후, recreateSheetsFromColumnD 함수를 실행합니다. 그러면 기존 시트가 모두 삭제된 후, 새로운 시트가 공백과 "Metric"을 제외하고 다시 생성됩니다.