ReportLab은 파이썬에서 PDF 문서를 생성하기 위한 강력한 도구입니다. 여기서는 ReportLab을 사용하여 표 데이터를 필터링하는 방법에 대해 알아보겠습니다.
- 필터링할 데이터 준비하기
먼저, 필터링할 표 데이터를 준비해야 합니다. 예를 들어, 다음과 같은 표 데이터가 있다고 가정해보겠습니다.
data = [
['이름', '나이', '성별'],
['John', 25, '남성'],
['Anna', 30, '여성'],
['Sam', 28, '남성'],
['Emma', 35, '여성']
]
- 필터링 조건 설정하기
표 데이터를 필터링하기 위해 필요한 조건을 설정해야 합니다. 예를 들어, 나이가 30 이상인 데이터만 필터링하고 싶다면 다음과 같은 조건을 설정할 수 있습니다.
condition = lambda row: row[1] >= 30
- 필터링된 데이터 추출하기
이제 설정한 조건에 맞는 데이터를 추출해야 합니다. ReportLab의 표 객체인 Table
을 사용하여 데이터를 추출할 수 있습니다. 다음은 필터링된 데이터를 추출하는 코드 예제입니다.
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table
filtered_data = [row for row in data if condition(row)] # 데이터 필터링
doc = SimpleDocTemplate("filtered_table.pdf", pagesize=letter)
table = Table(filtered_data)
doc.build([table])
위 코드에서 filtered_data
는 설정한 조건에 맞는 데이터만 저장하는 리스트입니다. 그리고 Table
객체를 생성할 때 filtered_data
를 인자로 전달하여 필터링된 데이터를 표로 변환합니다. 마지막으로 doc.build
함수를 호출하여 PDF 문서를 생성합니다.
- 결과 확인하기
위 예제 코드를 실행하고 나면, filtered_table.pdf
라는 이름의 PDF 파일이 생성될 것입니다. 이 파일을 열어보면 나이가 30 이상인 데이터만 포함된 표를 확인할 수 있습니다.
위에서는 나이를 기준으로 필터링한 예제를 사용하였지만, 실제로는 다양한 조건에 따라 표 데이터를 필터링할 수 있습니다. 필요한 조건에 맞게 lambda 함수를 작성하여 데이터를 필터링하면 됩니다.
이처럼 ReportLab을 사용하여 표 데이터를 필터링하는 방법에 대해 알아보았습니다. ReportLab을 활용하면 파이썬 프로그램에서 간편하게 PDF 문서를 생성하고 원하는 조건에 따라 표 데이터를 필터링할 수 있습니다.
참고 링크: