[python] ReportLab 데이터 필터링 방법

많은 데이터를 다루는 경우에는 필요한 데이터만을 추출하여 보고서를 작성하고자 할 때가 있을 것입니다. ReportLab은 파이썬에서 PDF 보고서를 생성하기 위한 강력한 라이브러리입니다. 이번 포스트에서는 ReportLab을 사용하여 데이터를 필터링하는 방법을 알아보겠습니다.

필터링된 데이터 가져오기

ReportLab에서 데이터를 필터링하려면, 필요한 데이터를 추출하는 것이 첫 번째 단계입니다. 이를 위해 다양한 데이터 소스를 사용할 수 있습니다. 가장 일반적인 방법은 SQL 쿼리를 실행하여 데이터베이스에서 원하는 데이터를 가져오는 것입니다.

import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# SQL 쿼리 실행
cursor.execute('SELECT * FROM mytable WHERE condition')

# 필터링된 데이터 가져오기
filtered_data = cursor.fetchall()

# 연결 종료
conn.close()

위의 코드에서 ‘condition’은 필터링을 위한 조건을 나타냅니다. 이를 원하는 조건으로 수정하여 필터링된 데이터를 가져올 수 있습니다. 데이터베이스를 사용하지 않는 경우, 다른 데이터 소스에 따라 데이터를 가져오는 방법이 달라질 수 있습니다.

필터링된 데이터로 보고서 작성하기

필터링된 데이터를 가져온 후에는 ReportLab을 사용하여 보고서를 작성할 수 있습니다. ReportLab은 다양한 기능을 제공하므로 필요한 대로 데이터를 활용할 수 있습니다. 아래는 ReportLab을 사용하여 필터링된 데이터를 테이블 형식의 보고서로 작성하는 예제입니다.

from reportlab.lib.pagesizes import A4
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle

# 보고서 작성을 위한 데이터 준비
data = [['이름', '나이', '성별'],
        ['John', '25', '남성'],
        ['Emma', '28', '여성'],
        ['Michael', '30', '남성']]

# 필터링된 데이터를 포함하는 테이블 생성
table = Table(data)

# 테이블 스타일 지정
table.setStyle(TableStyle([('BACKGROUND', (0, 0), (-1, 0), '#CCCCCC'),
                           ('TEXTCOLOR', (0, 0), (-1, 0), '#000000'),
                           ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
                           ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
                           ('FONTSIZE', (0, 0), (-1, 0), 12),
                           ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
                           ('BACKGROUND', (0, 1), (-1, -1), '#FFFFFF'),
                           ('GRID', (0, 0), (-1, -1), 1, '#CCCCCC')]))

# PDF 보고서 생성
doc = SimpleDocTemplate("filtered_report.pdf", pagesize=A4)
doc.build([table])

위의 예제에서는 ReportLab의 Table 클래스를 사용하여 필터링된 데이터를 테이블로 작성합니다. 필요에 따라 행과 열을 추가하거나 스타일을 조정할 수 있습니다.

결론

이번 포스트에서는 ReportLab을 사용하여 데이터를 필터링하여 보고서를 작성하는 방법을 알아보았습니다. 데이터를 필터링하는 방법과 필터링된 데이터를 ReportLab을 통해 사용하는 방법을 자유롭게 조합하여 다양한 보고서를 작성할 수 있습니다. ReportLab의 다양한 기능을 적용하여 필요한 보고서를 작성해보세요!

참고 자료