본문 바로가기

마이크로 ERP

스프레드시트에서 자동 보고서 PDF 생성 및 이메일 자동 발송하는 방법

창업자나 프리랜서들은 거래명세서, 월간 보고서, 매출 요약 등을 PDF 파일로 만들어

클라이언트나 팀원에게 공유해야 할 때가 많습니다.
대부분은 시트를 복사해서 PDF로 저장하고, 이메일에 첨부하여 수동으로 전송합니다.
하지만 이 과정을 매번 반복하다 보면 시간도 오래 걸리고 실수도 발생합니다.
구글 스프레드시트에서는 앱스 스크립트(Apps Script)를 활용해
시트 데이터를 PDF로 자동 변환하고, 이메일로 자동 발송하는 기능을 구현할 수 있습니다.
이 글에서는 누구나 따라할 수 있도록 자동 보고서 시스템의 구성 방법을 단계별로 소개합니다.

 

스프레드시트에서 자동 보고서 PDF 생성 및 이메일 자동 발송하는 방법

 

자동화할 대상 정의

 

이 자동화는 다음과 같은 상황에 적합합니다.

  • 월말 매출 요약 보고서를 팀원에게 공유할 때
  • 견적서, 거래명세서를 고객에게 발송할 때
  • 일일 업무 리포트를 자동으로 백업용 이메일로 전송할 때

기본 구조는 다음과 같습니다.

[시트 선택] → [PDF 변환] → [이메일 자동 발송]

 

사전 준비 사항

  • 구글 스프레드시트로 작성된 보고서 시트
  • 수신자 이메일 주소 (고정값 또는 시트 내에서 가져오기 가능)
  • 보고서 시트는 최대한 인쇄 형태에 맞춰 구성하는 것이 좋습니다 (A4 비율 기준)

 

앱스 스크립트 예제 코드

다음은 특정 시트를 PDF로 저장한 뒤, 자동으로 이메일을 보내는 스크립트입니다.

function sendReportAsPDF() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName("보고서"); // 보고서 시트 이름
  var emailAddress = "your@email.com"; // 수신자 이메일

  // 문서 제목 설정
  var today = Utilities.formatDate(new Date(), "GMT+9", "yyyy-MM-dd");
  var pdfName = "월간 매출 보고서_" + today;

  // 시트 범위 설정
  var url = "https://docs.google.com/spreadsheets/d/" + spreadsheet.getId() + "/export?format=pdf" +
            "&exportFormat=pdf&gid=" + sheet.getSheetId() +
            "&range=" + sheet.getName() + "!A1:H30" + // 원하는 범위 지정
            "&size=A4&portrait=true&fitw=true&sheetnames=false&printtitle=false&pagenum=disable&gridlines=false";

  var options = {
    headers: {
      Authorization: "Bearer " + ScriptApp.getOAuthToken()
    }
  };

  var response = UrlFetchApp.fetch(url, options);
  var pdfBlob = response.getBlob().setName(pdfName + ".pdf");

  MailApp.sendEmail({
    to: emailAddress,
    subject: pdfName + " 발송",
    body: "첨부된 보고서를 확인해 주세요.",
    attachments: [pdfBlob]
  });
}​

 

트리거 설정으로 자동 발송

  • 상단 메뉴에서 **“확장 프로그램 → Apps Script”**로 들어간 후,
    위 코드를 붙여넣고 저장합니다.
  • 왼쪽의 **트리거 탭(시계 모양 아이콘)**을 클릭해
    “시간 기반 트리거”를 설정하면,
    매일 혹은 매월 특정 시간에 자동 발송할 수 있습니다.

예:

  • 매월 1일 오전 9시에 지난달 보고서 발송
  • 매주 금요일 오후 5시에 주간 업무 요약 발송

 

추가 확장 팁

이메일 주소를 시트에서 불러오는 방법

var emailAddress = sheet.getRange("K1").getValue();

보고서 시트의 특정 셀(K1 등)에 수신자 이메일을 넣어두고, 거기서 불러오면 매번 수동 수정 없이 발송할 수 있습니다.

PDF로 저장된 파일을 구글 드라이브에 백업

DriveApp.getFolderById("폴더ID").createFile(pdfBlob);

회사나 팀 드라이브에 자동으로 저장해두는 백업 시스템도 구축 가능합니다.

 

실제 적용 예시

  • A 쇼핑몰 셀러는 매주 월요일에 자동 매출 보고서를 3명에게 이메일로 발송
  • 프리랜서 디자이너는 고객별 견적서를 작성한 후 PDF 자동 저장 + 전송으로 반복 작업을 줄임
  • 1인 창업자는 일간 재고 현황을 PDF로 저장하여 드라이브에 자동 기록

결론

스프레드시트의 앱스 스크립트를 활용하면
ERP에서 제공하는 문서 출력 및 이메일 발송 기능을
무료로, 그리고 원하는 방식으로 자동화할 수 있습니다.
보고서 생성, 저장, 공유 과정이 자동화되면 반복 업무에 드는 시간을 줄이고,
업무 실수도 줄일 수 있습니다.

특히 팀원이나 외주와 함께 일하는 경우,
자동 발송되는 PDF 보고서는 신뢰도를 높이는 중요한 도구가 됩니다.
작지만 강력한 자동화 구조를 오늘부터 직접 만들어보시기 바랍니다.