[python] ReportLab 표 셀 스타일링

ReportLab은 Python에서 PDF 문서를 생성하는 데 사용되는 강력한 라이브러리입니다. ReportLab을 사용하여 표를 생성하고 스타일링하는 방법을 알아보겠습니다.

표 생성하기

먼저, ReportLab을 설치하고 다음과 같이 표를 생성합니다.

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

# PDF 문서 생성
pdf = SimpleDocTemplate("example.pdf", pagesize=letter)

# 표 데이터
data = [["이름", "나이", "성별"],
        ["John", "25", "남성"],
        ["Emma", "28", "여성"],
        ["Michael", "31", "남성"]]

# 표 생성
table = Table(data)

# 표 스타일 지정
table.setStyle([
    ('BACKGROUND', (0, 0), (-1, 0), 'gray'),
    ('TEXTCOLOR', (0, 0), (-1, 0), 'white'),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
    ('FONTSIZE', (0, 0), (-1, 0), 12),
    ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
    ('BACKGROUND', (0, 1), (-1, -1), 'white'),
    ('GRID', (0, 0), (-1, -1), 1, 'gray'),
])

# 표를 문서에 추가
pdf.build([table])

위의 코드에서는 Table 클래스를 사용하여 표 데이터를 생성하고, setStyle 메서드를 사용하여 표의 스타일을 지정합니다. 여기서는 배경 색상, 텍스트 색상, 정렬, 폰트, 그리드 등을 설정했습니다. 마지막으로, build 메서드를 사용하여 PDF를 생성합니다.

표 셀 스타일링하기

ReportLab을 사용하여 표 셀의 스타일을 개별적으로 설정할 수도 있습니다. 예를 들어, 특정 셀의 배경 색상을 변경하거나 텍스트를 굵게 표시할 수 있습니다.

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

# PDF 문서 생성
pdf = SimpleDocTemplate("example.pdf", pagesize=letter)

# 표 데이터
data = [["이름", "나이", "성별"],
        ["John", "25", "남성"],
        ["Emma", "28", "여성"],
        ["Michael", "31", "남성"]]

# 표 생성
table = Table(data)

# 셀 스타일 지정
style = TableStyle([
    ('BACKGROUND', (0, 0), (-1, 0), 'gray'),
    ('TEXTCOLOR', (0, 0), (-1, 0), 'white'),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
    ('FONTSIZE', (0, 0), (-1, 0), 12),
    ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
    ('BACKGROUND', (0, 1), (-1, -1), 'white'),
    ('GRID', (0, 0), (-1, -1), 1, 'gray'),
    ('BACKGROUND', (1, 1), (1, -1), 'lightgray'),
    ('TEXTCOLOR', (1, 1), (1, -1), 'black'),
    ('FONTNAME', (1, 1), (1, -1), 'Helvetica-Bold'),
    ('FONTNAME', (1, 1), (1, -1), 10, 'italic'),
])

# 특정 셀 스타일 지정
style.add('BACKGROUND', (2, 1), (2, 1), 'red')
style.add('TEXTCOLOR', (2, 1), (2, 1), 'white')

# 표에 스타일 적용
table.setStyle(style)

# 표를 문서에 추가
pdf.build([table])

위의 코드에서는 TableStyle 클래스를 사용하여 특정 셀 또는 셀 범위에 스타일을 지정할 수 있습니다. 예를 들어, (2, 1) 위치의 셀의 배경 색상을 빨간색으로 설정하고 텍스트 색상을 흰색으로 지정했습니다.

ReportLab을 사용하여 표를 생성하고 셀을 스타일링하는 방법에 대해 알아보았습니다. 이러한 기능을 사용하여 보고서나 문서에 원하는 형식의 표를 생성할 수 있습니다.

참고 자료