[python] ReportLab 테이블 추가

ReportLab은 Python에서 PDF 문서를 생성하는 데 사용되는 강력한 도구입니다. 여기에서는 ReportLab을 사용하여 PDF 문서에 테이블을 추가하는 방법에 대해 알아보겠습니다.

1. ReportLab 설치

먼저 ReportLab을 설치해야 합니다. 다음 명령어를 사용하여 pip를 통해 설치할 수 있습니다.

pip install reportlab

2. 테이블 추가하기

테이블을 추가하기 위해서는 reportlab.platypus 모듈의 Table 클래스를 사용합니다. Table 클래스는 2차원 배열 형태의 데이터를 받아들여 테이블을 생성합니다.

아래는 간단한 예제입니다.

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table

data = [['이름', '나이', '성별'],
        ['John', 25, '남성'],
        ['Emily', 31, '여성'],
        ['Michael', 29, '남성']]

pdf = SimpleDocTemplate('example.pdf', pagesize=letter)
table = Table(data)

pdf.build([table])

위 코드는 data 리스트 안에 있는 데이터를 테이블로 변환하고, pdf라는 PDF 문서 객체에 해당 테이블을 추가합니다. 마지막으로 pdf.build() 메서드를 호출하여 PDF 파일을 생성합니다.

3. 테이블 스타일링하기

ReportLab을 사용하여 테이블을 스타일링하는 것도 가능합니다. TableStyle 클래스를 사용하여 테이블의 셀의 스타일을 변경할 수 있습니다.

아래는 스타일을 적용한 예제입니다.

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
from reportlab.lib import colors

data = [['이름', '나이', '성별'],
        ['John', 25, '남성'],
        ['Emily', 31, '여성'],
        ['Michael', 29, '남성']]

pdf = SimpleDocTemplate('example.pdf', pagesize=letter)
table = Table(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.HexColor('#f7e8e8')),  # 나머지 행 배경색
    ('GRID', (0, 0), (-1, -1), 1, colors.black)  # 테두리
])

table.setStyle(style)

pdf.build([table])

위 코드에서 TableStyle 클래스를 사용하여 테이블의 셀에 스타일을 적용하고 있습니다.

4. 결론

위의 예제를 참고하여 ReportLab을 사용하여 Python 프로그램에서 테이블을 추가할 수 있습니다. 테이블 스타일을 변경하여 원하는 대로 테이블을 꾸밀 수도 있습니다.