[python] ReportLab 표 필터링 방법

ReportLab은 파이썬에서 PDF 문서를 생성하기 위한 강력한 도구입니다. 여기서는 ReportLab을 사용하여 표 데이터를 필터링하는 방법에 대해 알아보겠습니다.

  1. 필터링할 데이터 준비하기

먼저, 필터링할 표 데이터를 준비해야 합니다. 예를 들어, 다음과 같은 표 데이터가 있다고 가정해보겠습니다.

data = [
    ['이름', '나이', '성별'],
    ['John', 25, '남성'],
    ['Anna', 30, '여성'],
    ['Sam', 28, '남성'],
    ['Emma', 35, '여성']
]
  1. 필터링 조건 설정하기

표 데이터를 필터링하기 위해 필요한 조건을 설정해야 합니다. 예를 들어, 나이가 30 이상인 데이터만 필터링하고 싶다면 다음과 같은 조건을 설정할 수 있습니다.

condition = lambda row: row[1] >= 30
  1. 필터링된 데이터 추출하기

이제 설정한 조건에 맞는 데이터를 추출해야 합니다. 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 문서를 생성합니다.

  1. 결과 확인하기

위 예제 코드를 실행하고 나면, filtered_table.pdf라는 이름의 PDF 파일이 생성될 것입니다. 이 파일을 열어보면 나이가 30 이상인 데이터만 포함된 표를 확인할 수 있습니다.

위에서는 나이를 기준으로 필터링한 예제를 사용하였지만, 실제로는 다양한 조건에 따라 표 데이터를 필터링할 수 있습니다. 필요한 조건에 맞게 lambda 함수를 작성하여 데이터를 필터링하면 됩니다.

이처럼 ReportLab을 사용하여 표 데이터를 필터링하는 방법에 대해 알아보았습니다. ReportLab을 활용하면 파이썬 프로그램에서 간편하게 PDF 문서를 생성하고 원하는 조건에 따라 표 데이터를 필터링할 수 있습니다.

참고 링크: