앱스크립트를 활용해 구글 시트의 학생 수상 목록으로 상장 자동생성
날짜: 2024년 1월 15일
주제: 앱스크립트를 활용한 학생 수상 목록으로 상장 자동 생성
서론: 효율적인 상장 제작의 혁신
학교나 교육 기관에서 상장을 제작할 때, 많은 수를 일일이 만드는 것은 시간과 노력이 많이 드는 작업입니다. 구글 앱스크립트를 활용해 스프레드시트의 데이터를 기반으로 자동으로 상장을 생성하는 방법은 이러한 작업을 혁신적으로 간소화할 수 있습니다.
학습 경험: 구글 앱스크립트를 이용한 자동 상장 생성
구글 앱스크립트의 활용:
구글 앱스크립트를 사용하여 구글 스프레드시트의 데이터를 기반으로 구글 슬라이드 상에서 상장을 자동으로 생성하는 스크립트를 작성할 수 있습니다.
1. 구글 슬라이드에서 상장 양식 만들기:
구글 슬라이드에서 상장 양식을 만듭니다. 반복해서 대입할 내용을 {{이름}}, {{수상 내역}}, {{수상 날짜}} 와 같이 작성해줍니다.
화면에 블록 지정과 같이 d/ 뒤 부터 /edit 앞까지가 슬라이드의 ID입니다. ID는 나중에 코드를 통해 이 슬라이드에 접근하기 위해 필요합니다.
2. 구글 시트에 수상 학생 목록 작성하기:
구글 시트에서 수상 학생 목록을 만들고, 확장 프로그램에서 앱스크립트를 열고 아래의 오늘의 코드를 붙여 넣습니다.
3. 오늘의 코드 스니펫: 상장 자동 생성
function createCertificates() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("시트1");
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
var slideId = '1UWGYBgt1lYukU7_H_jIlb44s_qF-x4XL6HvUOqs_F2k'; // 슬라이드 ID 입력
var slide = SlidesApp.openById(slideId);
data.forEach(function(row, index) {
if (index === 0) return; // 헤더 무시
var studentName = row[0];
var awardName = row[1];
var awardDate = row[2];
// 날짜 포매팅
if (awardDate instanceof Date) {
awardDate = Utilities.formatDate(awardDate, Session.getScriptTimeZone(), "yyyy년 M월 d일");
}
if (studentName && awardName && awardDate) {
var slideCopy = slide.getSlides()[0].duplicate(); // 슬라이드 복제
var textShapes = slideCopy.getShapes().filter(shape => shape.getShapeType() === SlidesApp.ShapeType.TEXT_BOX);
textShapes.forEach(function(shape) {
var text = shape.getText();
text.replaceAllText('{{이름}}', studentName);
text.replaceAllText('{{수상내역}}', awardName);
text.replaceAllText('{{수상날짜}}', awardDate);
});
}
});
}
이 스크립트는 스프레드시트에 나열된 학생 이름, 수상 내역, 수상 날짜를 사용하여 각 학생에 대한 개별 상장을 자동으로 생성합니다.
4. 결과물
클릭 한 번이면 끝납니다.
개인적 성찰: 교육 현장의 효율성 증대
이 기술은 교육 현장에서 상장 제작의 부담을 크게 줄여줍니다. 또한, 학생들에게 소프트웨어와 프로그래밍의 실제적인 적용 사례를 보여주며, 기술 교육에 대한 흥미를 증진시킬 수 있습니다.
마무리 생각:
오늘 배운 구글 앱스크립트를 통한 자동 상장 생성 방법은 단순한 문서 작업을 넘어, 일상 업무의 효율성을 크게 향상시키는 좋은 예입니다. 이러한 자동화 기법은 누구나 쉽게 배우고 적용할 수 있으며, 다양한 분야에서 활용될 수 있습니다. 여러분도 이 기술을 활용하여 업무를 더 효율적으로 관리해보세요! 앱스크립트와 같은 강력한 도구를 통해 일상 업무를 자동화하고, 이로 인해 생산성을 높이며, 궁극적으로는 더 많은 시간을 학생들과의 소통과 교육에 할애할 수 있습니다.