[python] ReportLab 테이블 필터링

ReportLab은 파이썬에서 PDF 문서를 생성하기 위한 강력한 라이브러리입니다. ReportLab을 사용하면 다양한 형식의 테이블을 생성하고 조작할 수 있습니다. 이번에는 ReportLab을 사용하여 테이블을 필터링하는 방법에 대해 알아보겠습니다.

필터링된 테이블 생성하기

ReportLab을 사용하여 테이블을 생성하고 필터링하는 방법은 다음과 같습니다.

  1. ReportLab 패키지를 설치합니다. pip install reportlab
  2. 필요한 모듈을 임포트합니다.

    from reportlab.lib.pagesizes import letter
    from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
    from reportlab.lib import colors
    
  3. 필터링할 데이터를 준비합니다. 예를 들어, 다음과 같은 2차원 배열 형태의 데이터가 있다고 가정합니다.

    data = [
        ["Name", "Age", "Gender"],
        ["John", 25, "Male"],
        ["Emma", 30, "Female"],
        ["Tom", 35, "Male"],
        ["Lucy", 28, "Female"]
    ]
    
  4. SimpleDocTemplate 객체를 생성하여 PDF 문서를 만듭니다.

    document = SimpleDocTemplate("filtered_table.pdf", pagesize=letter)
    
  5. 필터링 조건을 설정합니다. 예를 들어, 나이가 30 이상인 데이터만 필터링하려면 다음과 같이 설정합니다.

    filtered_data = [row for row in data[1:] if row[1] >= 30]
    
  6. 필터링된 데이터로 테이블을 생성합니다.

    table = Table(filtered_data)
    
  7. 테이블 스타일을 설정합니다.

    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)
    
  8. 테이블을 문서에 추가하고 저장합니다.

    elements = [table]
    document.build(elements)
    

위의 과정을 따라하면 나이가 30 이상인 데이터로 필터링된 테이블이 저장된 filtered_table.pdf 파일을 얻을 수 있습니다.

마무리

이번 글에서는 ReportLab을 사용하여 테이블을 필터링하는 방법에 대해 알아보았습니다. ReportLab은 다양한 기능을 제공하므로 테이블 작성에 유용하게 활용할 수 있습니다. 추가적인 정보는 ReportLab 공식 문서를 참고하시기 바랍니다.

참고 자료: