Categories: 'IT 제품리뷰'

[파이썬] 보고서 생성 및 전송 자동화

파이썬을 통해 보고서를 생성하고 자동으로 전송하는 프로그램을 만들어 보도록 합니다.

 

[파이썬] 보고서 생성 및 전송 자동화

 

[파이썬] 보고서 생성 및 전송 자동화


 

소개

보고서 작성 및 전송은 많은 기업과 조직에서 필요한 일입니다. 이러한 작업들을 자동화하여 생산성과 효율성을 향상시킬 수 있습니다. Python은 이러한 작업에 이상적인 프로그래밍 언어입니다. 이 글에서는 Python을 사용하여 보고서를 생성하고 전송하는 방법에 대해 알아보겠습니다.

보고서 생성

Python을 사용하면 다양한 방법으로 보고서를 생성할 수 있습니다. 가장 일반적인 방법은 openpyxl, pandas, matplotlib 등의 라이브러리를 사용하여 Excel, CSV, PDF, 그래프와 같은 형식으로 보고서를 생성하는 것입니다.

Excel 보고서 생성

openpyxl 라이브러리를 사용하면 Excel 파일을 생성하고 편집할 수 있습니다. 예를 들어, 아래와 같은 코드로 보고서 템플릿을 만들고 데이터를 채울 수 있습니다.

import openpyxl

# 보고서 템플릿 열기
wb = openpyxl.load_workbook('report_template.xlsx')
ws = wb['Sheet1']

# 데이터 채우기
ws['A1'] = '이름'
ws['B1'] = '나이'

ws['A2'] = 'John'
ws['B2'] = 25

# 보고서 저장
wb.save('report.xlsx')

CSV 보고서 생성

csv 모듈을 이용하면 간단하게 CSV 보고서를 생성할 수 있습니다. 아래는 예시 코드입니다.

import csv

data = [
    ['이름', '나이'],
    ['John', 25],
    ['Amy', 32],
    ['Mike', 45]
]

with open('report.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

PDF 보고서 생성

reportlab 라이브러리를 사용하면 Python으로 PDF 보고서를 생성할 수 있습니다. 아래는 예시 코드입니다.

from reportlab.pdfgen import canvas

# PDF 생성
c = canvas.Canvas('report.pdf')

# 텍스트 추가
c.drawString(100, 750, '보고서 생성 및 전송 자동화')
c.drawString(100, 700, '보고서 생성 예시입니다.')

# PDF 저장
c.save()

보고서 전송

보고서를 생성했다면 이제 해당 보고서를 원하는 대상에게 전송해야 합니다. Python에서는 smtplib 라이브러리를 사용하여 이메일을 보낼 수 있습니다. 예를 들어, Gmail을 사용하여 이메일을 전송하는 코드는 다음과 같습니다.

import smtplib
from email.mime.text import MIMEText

# 이메일 설정
smtp_server = 'smtp.gmail.com'
smtp_port = 587
sender_email = 'your_email@gmail.com'
sender_password = 'your_password'
recipient_email = 'recipient_email@gmail.com'

# 이메일 내용 작성
message = MIMEText('보고서를 보내드립니다.')
message['Subject'] = '보고서 전송'
message['From'] = sender_email
message['To'] = recipient_email

# 이메일 전송
with smtplib.SMTP(smtp_server, smtp_port) as smtp:
    smtp.starttls()
    smtp.login(sender_email, sender_password)
    smtp.send_message(message)

자동화

매번 코드를 실행하여 보고서를 생성하고 전송하는 것은 번거로울 수 있습니다. 이를 자동화하기 위해 Python의 schedule 라이브러리와 함께 사용할 수 있습니다. 해당 라이브러리를 사용하여 일정 시간에 보고서 생성 및 전송 작업을 실행할 수 있습니다.

예를 들어, 매일 오전 9시에 보고서를 생성하고 전송하는 코드는 다음과 같습니다.

import schedule
import time

def generate_report():
    # 보고서 생성 및 전송 코드 작성

# 매일 9시에 generate_report 함수 실행
schedule.every().day.at("09:00").do(generate_report)

while True:
    schedule.run_pending()
    time.sleep(1)

결론

Python을 사용하면 보고서 생성 및 전송 작업을 쉽게 자동화할 수 있습니다. Excel, CSV, PDF 형식의 보고서를 생성하고 smtplib를 이용하여 이메일로 전송할 수 있다는 것을 알아보았습니다. 또한, schedule 라이브러리를 통해 작업을 자동으로 실행할 수 있다는 것도 알게 되었습니다. 이러한 방법을 사용하여 보다 효율적으로 보고서 작성과 전송을 처리할 수 있습니다.

urjent

Share
Published by
urjent

Recent Posts

보완수사권 토론 취소, 이건태 하루 만에 철회하고 한동훈은 도망이라 비판

더불어민주당 이건태 의원이 한동훈 무소속 의원과 예정했던 검찰 보완수사권 폐지 공개토론을 수락한 지 하루 만인…

18시간 ago

홈플러스 2000억 자금 조달…메리츠·MBK 합의로 회생 가능성 열려

홈플러스는 2000억 원 규모의 긴급 운영자금 조달을 위해 메리츠금융그룹과 MBK파트너스 간에 잠정 합의를 도출했습니다. 서울회생법원은…

4일 ago

조회수에 눈 멀어 30층에서 떨어진 중국 남성, 사망 사고 경위 밝혀져

2026년 7월 14일 중국 쓰촨성 청두시에서 23세 남성 A씨가 30층 아파트 옥상에서 낙하산을 타고 뛰어내려…

4일 ago

신지 KT 시구 거절 논란, 8월 2일 홈경기 축하공연까지 전면 취소

신지가 프로야구 KT 위즈의 시구 제안을 거절한 뒤 소속사가 공식 사과하며 예정된 코요태의 축하공연까지 취소하기로…

4일 ago

초과이익 토론회, 7월 14일 정부·국회 차원에서 공동 개최

2026년 7월 14일, 정부와 국회 차원에서 초과이익 토론회가 다수 열린다. 국토교통부, 금융위원회, 재정경제부가 각각 부동산과…

5일 ago

국제유가 10% 폭등…호르무즈 해협 봉쇄 재개로 WTI 9.4%, 브렌트유 9.6% 급등

2026년 7월 13일(현지시간) 국제유가가 단 하루 만에 약 10% 폭등했습니다. 도널드 트럼프 미국 대통령이 호르무즈…

5일 ago