매일 이메일 보고서개발·커스터마이징

Excel 파일로 짧은 보고서를 만들어 고객님의 메일 계정으로 보내는 Python 스크립트

보통 15분 안에 완료수정 포함품질 검수
패키지
안전 결제자세히
  • 패키지 범위 내 수정은 무료입니다.
  • 납품 후 3일 이내에 응답하지 않으면 작업이 자동으로 승인됩니다.

결제 시 금액이 예치되며, 작업을 승인해야만 지급됩니다.

Excel 파일로 짧은 보고서를 만들어 고객님의 메일 계정으로 보내는 Python 스크립트

결과물 예시

스탠다드 패키지 예시

매장 9곳의 월별 매출 파일을 Excel 보고서 하나로 합치기

실행 방법

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  폴더: sales/2026-10, 파일 9개 발견
2026-11-02 09:14:03 INFO  shop-01.csv: 1,284행
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967행
2026-11-02 09:14:04 WARN  shop-07.csv: 가격 없는 3행 건너뜀 (88, 412, 913번 줄)
2026-11-02 09:14:05 INFO  완료: 10,412행 -> report-2026-10.xlsx ("매출", "합계" 시트)

코드가 아닌 설정으로

매장별 열 이름은 settings.ini에 있어서, 매장이 새로 생기거나 열 이름이 바뀌면 그곳에 한 줄만 고치면 됩니다.

[columns]
date = 날짜, 판매일, 일자
product = 상품, 품목, 상품명
quantity = 수량, 개수, 판매 수량
price = 가격, 단가

코드 일부

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """매장 파일 하나를 읽고 열 이름을 보고서 기준으로 바꿉니다."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: '{name}'에 해당하는 열이 없습니다 (찾은 이름: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

파일: merge_sales.py(310줄), settings.ini, requirements.txt, 그리고 Python 설치, 스크립트 실행, 로그 메시지별 의미를 설명한 README가 들어 있는 ZIP 압축 파일. 고객이 자신의 컴퓨터에서 직접 실행합니다.

고객: 문구점 9곳을 운영하는 작은 체인. 매장마다 한 달 매출을 CSV나 Excel 파일로 보내는데, 열 이름이 조금씩 다릅니다. 과제: 폴더 안의 모든 파일을 읽고 열을 하나의 형식으로 맞춘 뒤, 전체 매출과 매장별 합계 시트가 담긴 Excel 보고서 하나로 저장하는 스크립트.

고객과 모든 정보는 가상입니다.

서비스 소개

사무실에서 누군가 매일 아침 같은 Excel 파일을 열어 합계를 복사하고 이메일에 적고 있다면, 이 Python 스크립트가 그 부분을 맡을 수 있습니다. 어제 매출 내보내기 파일이나 공유 폴더의 재고 시트처럼 지정하신 파일을 읽고, 요청하신 것(매장·상품별 합계, 개수, 평균, 한도를 넘은 행)을 계산해, 깔끔한 표가 담긴 짧은 이메일을 고객님의 메일 계정으로 지정한 사람들에게 보내며, 스탠다드부터는 파일도 첨부합니다. 메일 계정의 발송용 비밀번호는 고객님이 직접 설정에 넣으시며 코드에는 절대 들어가지 않습니다. 받는 사람은 고객님의 동료나 고객이며, 메일 서비스의 발송 한도에 한참 못 미칩니다. 파일 속 수치를 보고할 뿐 검증하거나 해석하지는 않습니다.

포함 사항

  • 받으시는 결과물Python 스크립트, 단계별 안내가 담긴 README, 스탠다드부터는 파일, 받는 사람, 메일 설정이 담긴 설정 파일이 들어 있는 ZIP 압축 파일. 코드는 주문 페이지에서도 볼 수 있습니다.
  • 고객님의 수치고르신 합계, 개수, 평균
  • 읽기 쉬운 이메일휴대폰에서도 열리는 짧은 표
  • 고객님의 메일 계정에서고객님의 메일 계정, 비밀번호는 코드 밖에
  • 파일 첨부스탠다드부터, Excel 파일 또는 그 요약
  • 읽기 쉬운 코드주석이 있어 나중에 수치 추가가 쉬움

진행 방식

  1. 1
    작업샘플 파일과 원하는 이메일 예시를 보내 주세요
  2. 2
    코드스크립트와 실행 안내서를 작성합니다
  3. 3
    시험 실행받는 사람 목록에 내 주소만 넣고 실행해 보세요
  4. 4
    수정패키지 범위 안에서 수정을 요청하고 오류 메시지가 있으면 보내 주세요

준비해 주실 내용

보고서의 바탕이 되는 Excel 파일 하나(몇 행으로 줄이거나 수치를 바꾼 것), 파일이 생기는 곳(폴더, 공유 드라이브)과 이름 규칙, 이메일에 담을 내용(손으로 쓰듯 적어 주세요), 받는 사람과 발송할 메일 계정(메일 서비스 이름만 알려 주시면 되고 비밀번호는 직접 넣으십니다). 발송 시각과 실행할 컴퓨터: Windows, macOS 또는 Linux.

다음 내용을 여쭤봅니다:

  • 보고서는 어떤 파일로 만드나요?
  • 이메일에 무엇을 담을까요?
  • 누가, 언제 받나요?
  • 어디에서 실행하나요?

패키지 비교

패키지베이직보고서 1종₩23,100스탠다드설정 파일로 보고서 만들기₩47,600프리미엄보고서 도구₩96,700
작업 기간1일2일3일
수정 횟수123
코드최대 150줄최대 400줄최대 1,000줄
코드 파일 수1최대 3개최대 8개
설정 파일없음있음있음
알기 쉬운 오류 메시지와 로그없음있음있음
실행 옵션과 예약 실행 안내없음없음있음
설치 및 실행 안내서(README)있음있음있음
언어PythonPythonPython
주문하기 베이직주문하기 스탠다드주문하기 프리미엄

안전 결제

주문할 때 결제하지만, 대금은 승인된 작업에 대해서만 지급됩니다.

  • 고정 가격결제 후에는 패키지 가격이 변경되지 않습니다.
  • 금액 예치결제 시 금액은 예치만 됩니다. 작업을 승인하면 서비스에 지급됩니다.
  • 납품 전 검수모든 결과물은 전달되기 전에 품질 검수를 거치며, 승인하기 전에 주문 페이지에서 확인할 수 있습니다.
  • 무료 수정패키지에서 허용하는 횟수만큼 요청 사항 범위 내에서 수정을 요청할 수 있습니다.
  • 3일 후 자동 승인납품 후 3일 이내에 작업을 승인하거나 수정을 요청하지 않으면 자동으로 승인됩니다. 납품 후 주문 채팅에 메시지를 남기면 주문은 대기 상태가 됩니다. 저희가 답변한 뒤 3일을 다시 시작할 수 있으며, 이 경우 채팅으로 알려 드립니다.
  • 재작업 또는 전액 환불결과물이 요청 사항과 맞지 않고 수정으로도 해결되지 않았거나, 작업이 작업 기간의 두 배를 넘겨 지연되면 주문 채팅에 알려 주세요. 작업을 다시 하거나 결제 금액을 전액 환불해 드립니다.
이용 방법 →

질문과 답변

매일 알아서 보고서를 보내나요?

실행할 때마다 보고서를 보냅니다. 프리미엄에는 작업 스케줄러, cron, launchd로 매일 아침 실행하는 방법이 포함되며, 베이직이나 스탠다드에서는 직접 실행하거나 직접 설정하시면 됩니다. 그 시각에 컴퓨터가 켜져 있어야 합니다.

어떤 메일 계정에서 작동하나요?

흔히 쓰는 업무용·개인용 메일을 포함해 SMTP 발송을 허용하는 대부분의 서비스에서 작동합니다. 일부는 이를 위해 앱 비밀번호를 만들어야 하며, 위치는 README에 나와 있습니다.

파일이 Excel이 아니라 Google 스프레드시트에 있어요. 되나요?

그럴 때는 스프레드시트 안에서 도는 Google Apps Script가 더 알맞으며 Gmail로 발송합니다. 요청 사항에 적어 주시면 Apps Script로 작성해 드립니다.

보고서를 고객에게 보낼 수 있나요?

네, 매일 재고 목록을 요청한 고객처럼 받기를 기다리는 사람이라면 가능합니다. 대량 발송이나 직접 모으지 않은 목록용이 아닙니다.

답을 찾지 못하셨나요?

패키지