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