[python] ReportLab 테이블 필터링
ReportLab은 파이썬에서 PDF 문서를 생성하기 위한 강력한 라이브러리입니다. ReportLab을 사용하면 다양한 형식의 테이블을 생성하고 조작할 수 있습니다. 이번에는 ReportLab을 사용하여 테이블을 필터링하는 방법에 대해 알아보겠습니다.
필터링된 테이블 생성하기
ReportLab을 사용하여 테이블을 생성하고 필터링하는 방법은 다음과 같습니다.
- ReportLab 패키지를 설치합니다. pip install reportlab
-
필요한 모듈을 임포트합니다.
from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, Table, TableStyle from reportlab.lib import colors
-
필터링할 데이터를 준비합니다. 예를 들어, 다음과 같은 2차원 배열 형태의 데이터가 있다고 가정합니다.
data = [ ["Name", "Age", "Gender"], ["John", 25, "Male"], ["Emma", 30, "Female"], ["Tom", 35, "Male"], ["Lucy", 28, "Female"] ]
-
SimpleDocTemplate 객체를 생성하여 PDF 문서를 만듭니다.
document = SimpleDocTemplate("filtered_table.pdf", pagesize=letter)
-
필터링 조건을 설정합니다. 예를 들어, 나이가 30 이상인 데이터만 필터링하려면 다음과 같이 설정합니다.
filtered_data = [row for row in data[1:] if row[1] >= 30]
-
필터링된 데이터로 테이블을 생성합니다.
table = Table(filtered_data)
-
테이블 스타일을 설정합니다.
style = TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 14), ('BOTTOMPADDING', (0, 0), (-1, 0), 12), ('BACKGROUND', (0, 1), (-1, -1), colors.beige), ('GRID', (0, 0), (-1, -1), 1, colors.black) ]) table.setStyle(style)
-
테이블을 문서에 추가하고 저장합니다.
elements = [table] document.build(elements)
위의 과정을 따라하면 나이가 30 이상인 데이터로 필터링된 테이블이 저장된 filtered_table.pdf
파일을 얻을 수 있습니다.
마무리
이번 글에서는 ReportLab을 사용하여 테이블을 필터링하는 방법에 대해 알아보았습니다. ReportLab은 다양한 기능을 제공하므로 테이블 작성에 유용하게 활용할 수 있습니다. 추가적인 정보는 ReportLab 공식 문서를 참고하시기 바랍니다.
참고 자료: