0. Intro
라이브러리 불러오기, 단락 작성, 파일 저장 예제
from docx import Document
doc = Document()
doc.add_paragraph("Hello, world!")
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
1. 단락 작성
1-1. 정렬 (왼쪽/가운데/오른쪽/양쪽 맞춤)
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 단락 정렬을 위한 요소 불러오기
doc = Document()
paragraph = doc.add_paragraph("Hello, world!")
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT # 왼쪽 맞춤
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 가운데 맞춤
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT # 오른쪽 맞춤
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY # 양쪽 맞춤
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
1-2. 굵게, 기울임꼴, 밑줄 (bold, italic, underline)
from docx import Document
doc = Document()
paragraph = doc.add_paragraph("Hello, world!")
run = paragraph.runs[0]
run.bold = True
run.italic = True
run.underline = True
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
1-3. 폰트
from docx import Document
from docx.shared import Pt, RGBColor # 포인트 단위, 색상 요소 불러오기
doc = Document()
paragraph = doc.add_paragraph("Hello, world!")
run = paragraph.runs[0]
run.font.name = 'Arial' # 글꼴
run.font.size = Pt(15) # 글꼴 크기
run.font.color.rgb = RGBColor(255, 0, 0) # 글씨 색 설정 (예시: 빨강)
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
1-4. 단락 여백
from docx import Document
from docx.shared import Pt # 포인트 단위 요소 불러오기
doc = Document()
paragraph = doc.add_paragraph("Hello, world!")
paragraph.paragraph_format.space_before = Pt(10) # 단락 앞 여백
paragraph.paragraph_format.space_after = Pt(25) # 단락 뒤 여백
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
2. 표 작성
2-1. 표 생성
2-1-1. 표 삽입
from docx import Document
doc = Document()
table = doc.add_table(rows=3, cols=2)
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
2-1-2. 표 아래에 줄 추가
from docx import Document
doc = Document()
table = doc.add_table(rows=2, cols=2) # 2x2 표
table.add_row().cells # 표 아래에 줄 추가하여 3x2 표로 변경
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
2-2. 표 스타일
from docx import Document
doc = Document()
table = doc.add_table(rows=3, cols=2)
table.style = 'Table Grid' # 실선 테두리 스타일
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
table style 목록:
Normal Table
Table Grid
Light Shading
Light Shading Accent 1
Light Shading Accent 2
Light Shading Accent 3
Light Shading Accent 4
Light Shading Accent 5
Light Shading Accent 6
Light List
Light List Accent 1
Light List Accent 2
Light List Accent 3
Light List Accent 4
Light List Accent 5
Light List Accent 6
Light Grid
Light Grid Accent 1
Light Grid Accent 2
Light Grid Accent 3
Light Grid Accent 4
Light Grid Accent 5
Light Grid Accent 6
Medium Shading 1
Medium Shading 1 Accent 1
Medium Shading 1 Accent 2
Medium Shading 1 Accent 3
Medium Shading 1 Accent 4
Medium Shading 1 Accent 5
Medium Shading 1 Accent 6
Medium Shading 2
Medium Shading 2 Accent 1
Medium Shading 2 Accent 2
Medium Shading 2 Accent 3
Medium Shading 2 Accent 4
Medium Shading 2 Accent 5
Medium Shading 2 Accent 6
Medium List 1
Medium List 1 Accent 1
Medium List 1 Accent 2
Medium List 1 Accent 3
Medium List 1 Accent 4
Medium List 1 Accent 5
Medium List 1 Accent 6
Medium List 2
Medium List 2 Accent 1
Medium List 2 Accent 2
Medium List 2 Accent 3
Medium List 2 Accent 4
Medium List 2 Accent 5
Medium List 2 Accent 6
Medium Grid 1
Medium Grid 1 Accent 1
Medium Grid 1 Accent 2
Medium Grid 1 Accent 3
Medium Grid 1 Accent 4
Medium Grid 1 Accent 5
Medium Grid 1 Accent 6
Medium Grid 2
Medium Grid 2 Accent 1
Medium Grid 2 Accent 2
Medium Grid 2 Accent 3
Medium Grid 2 Accent 4
Medium Grid 2 Accent 5
Medium Grid 2 Accent 6
Medium Grid 3
Medium Grid 3 Accent 1
Medium Grid 3 Accent 2
Medium Grid 3 Accent 3
Medium Grid 3 Accent 4
Medium Grid 3 Accent 5
Medium Grid 3 Accent 6
Dark List
Dark List Accent 1
Dark List Accent 2
Dark List Accent 3
Dark List Accent 4
Dark List Accent 5
Dark List Accent 6
Colorful Shading
Colorful Shading Accent 1
Colorful Shading Accent 2
Colorful Shading Accent 3
Colorful Shading Accent 4
Colorful Shading Accent 5
Colorful Shading Accent 6
Colorful List
Colorful List Accent 3
Colorful List Accent 4
Colorful List Accent 5
Colorful List Accent 6
Colorful Grid
Colorful Grid Accent 1
Colorful Grid Accent 2
Colorful Grid Accent 3
Colorful Grid Accent 4
Colorful Grid Accent 5
Colorful Grid Accent 6
2-3. 표 내용 입력
2-3-1. 하나씩 입력
from docx import Document
doc = Document()
table = doc.add_table(rows=3, cols=2)
table.style = 'Table Grid' # 실선 테두리 스타일
table.cell(0, 0).text = '이름'
table.cell(0, 1).text = '나이'
table.cell(1, 0).text = 'John'
table.cell(1, 1).text = '30'
table.cell(2, 0).text = 'Jane'
table.cell(2, 1).text = '28'
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
2-3-2. 한 번에 입력
from docx import Document
doc = Document()
table = doc.add_table(rows=3, cols=3)
table.style = 'Table Grid'
# 입력하고자 하는 값을 리스트에 작성
cell_values = [
['A', 'B', 'C'],
['1', '2', '3'],
['a', 'b', 'c']
]
for i, row in enumerate(table.rows):
for j, cell in enumerate(row.cells):
cell.text = cell_values[i][j]
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
2-4. 셀 서식
2-4-1. 세로 정렬, 단락 서식(글꼴, 단락 정렬, 여백)
from docx import Document
from docx.shared import Pt, RGBColor # 포인트 단위, 색상 요소 불러오기
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 단락 정렬을 위한 요소 불러오기
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT # 셀 세로 정렬을 위한 요소 불러오기
doc = Document()
table = doc.add_table(rows=3, cols=3)
table.style = 'Table Grid'
cell_values = [
['A', 'B', 'C'],
['1', '2', '3'],
['a', 'b', 'c']
]
for i, row in enumerate(table.rows):
for j, cell in enumerate(row.cells):
cell.text = cell_values[i][j]
cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER # 셀 세로 정렬 (TOP, CENTER, BOTTOM 중 선택)
paragraph = cell.paragraphs[0]
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 단락 정렬 (LEFT, CENTER, RIGHT, JUSTIFY 중 선택)
paragraph.paragraph_format.space_before = Pt(10) # 단락 앞 여백
paragraph.paragraph_format.space_after = Pt(10) # 단락 뒤 여백
run = paragraph.runs[0] if paragraph.runs else paragraph.add_run()
run.font.name = 'Arial' # 글꼴
run.font.size = Pt(15) # 글꼴 크기
run.font.color.rgb = RGBColor(255, 0, 0) # 글씨 색 설정 (예시: 빨강)
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
2-4-2. 셀 배경 채우기
from docx import Document
from docx.oxml import parse_xml
from docx.oxml.ns import nsdecls
doc = Document()
table = doc.add_table(rows=3, cols=3)
table.style = 'Table Grid'
cell_values = [
['A', 'B', 'C'],
['1', '2', '3'],
['a', 'b', 'c']
]
for i, row in enumerate(table.rows):
for j, cell in enumerate(row.cells):
cell.text = cell_values[i][j]
cell_to_color = table.cell(2, 1) # 배경 적용을 원하는 셀 선택
shading_elm = parse_xml(r'<w:shd {} w:fill="FFFF00"/>'.format(nsdecls('w'))) # 예시: 노란색(FFFF00) 배경 적용
cell_to_color._element.get_or_add_tcPr().append(shading_elm)
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
3. 제목 작성 (스타일)
3-1. 제목 삽입
from docx import Document
doc = Document()
doc.add_heading("Hello, world!", level=1) # 원하는 제목 수준을 설정, 숫자가 작을수록 상위
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
3-2. 제목 서식 설정
from docx import Document
from docx.shared import Pt, RGBColor # 포인트 단위, 색상 요소 불러오기
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 단락 정렬을 위한 요소 불러오기
doc = Document()
style_head = doc.styles['Heading 1'] # 제목 1의 스타일을 설정
font_head = style_head.font
font_head.name = 'Arial' # 글꼴
font_head.size = Pt(13) # 글꼴 크기
font_head.bold = True # 굵게
font_head.color.rgb = RGBColor(0, 0, 0) # 글씨 색 (예시: 검정)
style_head.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT # 단락 정렬 (LEFT, CENTER, RIGHT, JUSTIFY 중 선택)
style_head.paragraph_format.space_before = Pt(0) # 단락 앞 간격을 0pt로 설정
style_head.paragraph_format.space_after = Pt(10) # 단락 뒤 간격을 10pt로 설정
doc.add_heading("Hello, world!", level=1)
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
4. 그림/사진
4-1. 그림/사진 삽입
from docx import Document
from docx.shared import Cm # cm 단위 요소 불러오기
doc = Document()
# 그림 삽입 및 크기 설정 (단위: cm)
picture = doc.add_picture('path_to_image.jpg', width=Cm(4), height=Cm(3)) # 그림이 저장된 경로와 파일명 입력
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
4-2. 그림/사진을 표의 셀 안에 삽입
from docx import Document
from docx.shared import Cm # cm 단위 요소 불러오기
doc = Document()
table = doc.add_table(rows=2, cols=2) # 표 삽입
cell = table.cell(0, 1) # 첫 번째 행, 두 번째 열 선택
cell.text = "Here is an image:" # 셀 안에 텍스트 작성
cell.add_paragraph().add_run().add_picture('path_to_image.jpg') # 그림이 저장된 경로와 파일명 입력
doc.save(r"C:\your_path\your_doc_name.docx") # 파일이 저장될 경로와 이름 입력
'파이썬 > 업무자동화' 카테고리의 다른 글
[업무자동화] Python으로 Excel 작성하기 (openpyxl) (0) | 2024.04.18 |
---|---|
[업무자동화] Python으로 파일 이름 한 번에 바꾸기 (일괄 변경) (1) | 2023.12.06 |
댓글