구글 시트 + 드라이브 + Apps Script로 주간 보고서 자동 생성하기
본문 바로가기
카테고리 없음

구글 시트 + 드라이브 + Apps Script로 주간 보고서 자동 생성하기

by 스토리인포당 2025. 5. 15.
반응형

구글 시트 + 드라이브 + Apps Script로 주간 보고서 자동 생성하기

 

반복적인 주간 업무 보고서를 매주 직접 작성하고 저장하고 이메일로 공유하고 계신가요? 그렇다면 이제 Google Apps Script를 활용한 자동 보고 시스템으로 전환할 때입니다.

이번 글에서는 구글 시트에 입력된 내용을 기반으로 매주 자동으로 보고서를 생성하고, 지정된 드라이브 폴더에 저장하는 **완전 자동화 프로세스**를 구성하는 방법을 소개합니다.

1. 기본 구조: 어떤 구성으로 자동화되는가?

자동화 시스템은 크게 다음과 같이 구성됩니다.

  • 📊 입력 소스: Google Sheets에 매주 업무 내용 입력
  • 📄 템플릿 문서: Google Docs 형태의 보고서 서식
  • 📂 저장 위치: 드라이브 내 주간 보고서 폴더
  • 📜 자동화 코드: Apps Script로 연결

이 구조를 통해 한 번의 설정만으로 매주 보고서 자동 생성, 저장, 이메일 발송까지 수행할 수 있습니다.

2. 구글 시트 설정: 업무 내용 입력 시트 만들기

Google Sheets에 아래와 같은 표를 만들어 업무 내용을 정리합니다.

이름 부서 주차 업무 요약 특이사항
김지은 마케팅팀 2025-W20 신규 캠페인 기획 완료 광고 집행 예산 조정

이 시트를 기반으로 Apps Script가 데이터를 추출하여 정해진 템플릿 문서에 자동 삽입하게 됩니다.

3. 템플릿 문서 만들기 (Google Docs)

Google Docs에 보고서 형식을 미리 구성하고, 데이터를 삽입할 자리에 **플레이스홀더**를 넣습니다.

[주간 업무 보고서]

성명: {{이름}}
부서: {{부서}}
주차: {{주차}}

- 업무 요약:
{{업무요약}}

- 특이사항:
{{특이사항}}
  

이 문서를 보기 전용으로 저장하고, 문서 ID를 기억해 두세요. (문서 링크의 /d/문서 ID/edit 에서 중간 부분이 ID입니다.)

4. Apps Script 코드 작성하기

구글 시트 → 확장 프로그램 → Apps Script 열기 후, 아래 코드를 붙여 넣습니다.


function generateWeeklyReport() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  const data = sheet.getDataRange().getValues();

  const templateId = "TEMPLATE_DOC_ID"; // 템플릿 문서 ID
  const folderId = "DESTINATION_FOLDER_ID"; // 저장할 폴더 ID

  for (let i = 1; i < data.length; i++) {
    const name = data[i][0];
    const dept = data[i][1];
    const week = data[i][2];
    const summary = data[i][3];
    const note = data[i][4];

    const template = DriveApp.getFileById(templateId);
    const copy = template.makeCopy(`${name}_주간보고서_${week}`, DriveApp.getFolderById(folderId));
    const doc = DocumentApp.openById(copy.getId());
    const body = doc.getBody();

    body.replaceText("{{이름}}", name);
    body.replaceText("{{부서}}", dept);
    body.replaceText("{{주차}}", week);
    body.replaceText("{{업무요약}}", summary);
    body.replaceText("{{특이사항}}", note);

    doc.saveAndClose();
  }
}
  

변경할 항목: TEMPLATE_DOC_ID, DESTINATION_FOLDER_ID 각 항목에 자신이 만든 템플릿 문서 ID와 저장 폴더 ID를 입력하세요.

5. 실행 자동화 설정: 트리거로 매주 실행

보고서 자동 생성은 매주 지정된 시간에 실행되도록 설정할 수 있습니다.

설정 방법:

  1. Apps Script 상단 → 시계 아이콘 클릭 (‘트리거’)
  2. ‘새 트리거 추가’ 클릭
  3. 함수 선택: generateWeeklyReport
  4. 이벤트 유형: 시간 기반 → 주간 → 매주 월요일 오전 9시 등

이제 매주 지정된 시간에 자동으로 보고서가 생성되고 저장됩니다. 필요시 이메일 발송 코드도 추가하여 담당자에게 자동 전달할 수 있습니다.

6. 이메일 자동 발송까지 연동하기 (선택)

자동 생성된 보고서를 해당 담당자에게 자동 이메일로 전송할 수도 있습니다.

추가 코드 예:


MailApp.sendEmail({
  to: "example@email.com",
  subject: `${name} 주간 보고서 (${week})`,
  body: "자동 생성된 보고서를 첨부합니다.",
  attachments: [DriveApp.getFileById(copy.getId()).getAs(MimeType.PDF)]
});
  

실무에서는 PDF로 변환해 보내는 것이 수정 방지에 효과적입니다. 공유 권한 설정도 ‘보기 전용’으로 자동화하면 보안성을 높일 수 있습니다.

7. 확장 활용: 월간 보고서 / 프로젝트 보고서 등

  • 📅 월간 보고서 → 주차 → 월 기준으로 시트 조정
  • 📁 프로젝트별 보고서 → 폴더 분리 및 템플릿 다변화
  • 📊 KPI 자동 계산 → 시트 함수와 연동 가능

이 방식은 회사 규모와 상관없이 적용 가능하며, 반복 문서 작성과 공유 시간을 주 단위로 최소 2~3시간 절약할 수 있습니다.

마무리: 자동화는 일하는 방식을 바꾼다

반복되는 문서 작업은 피로를 낳고, 실수와 누락을 유발합니다. 구글 시트와 드라이브, 그리고 Apps Script를 연동하면, **업무 프로세스의 ‘자동 보고 체계’**를 만들 수 있습니다.

<p