파이썬 코드로 표를 만드는 방법
간단한 표를 작성할 때는 워드 프로그램의 테이블(Table, 표)
기능을 활용하는 것이 편리합니다.
하지만 대규모의 데이터를 표로 삽입하거나 반복적인 표 작성을 자동화하려면 python-docx 라이브러리를 사용하는 것이 좋습니다.
이번 수업에서는 python-docx를 사용하여 워드 파일에 표를 추가하는 방법을 알아보겠습니다.
참고 : 표로 시각화되는 데이터는 이해의 편의를 위해 파이썬 리스트로 정의되었습니다. 하지만 실제로는
pandas
라이브러리로CSV
파일을 파일 경로 및 URL로 불러와 사용하는 것이 일반적입니다.
add_table()
문서에 표를 추가하는 메서드입니다.
document.add_table(rows, cols)
와 같이 사용하며
-
rows
: 행(가로열)의 수 -
cols
: 열(세로열)의 수
를 지정해야 합니다.
from docx import Document
doc = Document()
# 가로 3줄, 세로 2줄의 표 생성
table = doc.add_table(rows=3, cols=2)
table.cell(row, col)
특정 셀에 접근해 값을 설정하거나, 설정된 값을 가져옵니다.
table.cell(row, col)
와 같이 사용하며 row
는 행 번호(0부터 시작), col
은 열 번호(0부터 시작)를 지정합니다.
# 1번째 행, 1번째 열의 셀
cell = table.cell(0, 0)
cell.text
셀에 텍스트를 설정하거나, 설정된 텍스트를 가져옵니다.
# 1번째 행, 1번째 열의 셀
cell = table.cell(0, 0)
# 지정된 셀에 텍스트 추가
cell.text = "Hello"
table.style
표의 스타일을 설정합니다.
경계선을 포함한 표를 생성하려면 table.style = 'Table Grid'
와 같이 사용합니다.
doc = Document()
table = doc.add_table(rows=3, cols=2)
# 실선 테두리를 포함한 표 생성
table.style = 'Table Grid'
table.add_row()
표에 새로운 행(가로줄)을 추가하는 메서드입니다.
table.add_row()
와 같이 새로운 행을 추가할 수 있습니다.
row = table.add_row()
row.cells[0].text = "New Cell"
table.add_column()
표에 새로운 열(세로줄)을 추가하는 메서드입니다.
table.add_column(width)
와 같이 지정된 너비로 새로운 열을 추가할 수 있습니다.
열을 추가할 때는 반드시 너비(Width)를 지정해야 합니다.
from docx.shared import Inches
table.add_column(Inches(1))
cell.merge(other_cell)
셀을 병합하는 메서드입니다.
아래 코드는 첫 번째 행의 두 셀을 병합하는 예시입니다.
a = table.cell(0, 0)
b = table.cell(0, 1)
a.merge(b) # 첫 번째 행의 두 셀을 병합
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!