본문으로 건너뛰기
실습하기

파이썬 코드로 표를 만드는 방법

간단한 표를 작성할 때는 워드 프로그램의 테이블(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 강의를 등록해 주세요!