중간 중간 함수 내용이 궁금하면

https://github.com/python-openxml/python-docx

여기로 들어가면 된다.



표 만들기(add_table())

표를 만들기 위해 우선 add_table함수를 통해 행렬의 갯수를 입력한다.

표 스타일은 기본인 'Table Grid'로 뒀다.

이후 셀에 가운데 정렬로 알파벳을 순서대로 입력한 예제이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
from docx import Document
 
document = Document()
 
table = document.add_table(rows = 1, cols = 4)
table.style = document.styles['Table Grid']
 
hdr_cells = table.rows[0].cells
hdr_cells[0].paragraphs[0].add_run('A').bold = True
hdr_cells[0].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER  #가운데 정렬
hdr_cells[1].paragraphs[0].add_run('B').bold = True
hdr_cells[1].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
hdr_cells[2].paragraphs[0].add_run('C').bold = True
hdr_cells[2].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
cs




셀 크기 조절하기(cells[0].width)

만든 표의 셀 크기도 조절 가능하다.


1
hdr_cells[0].width = Cm(2.9)
hdr_cells[0].height = Cm(2.9)
cs





셀 추가하기(table.add_row())

표를 만든 후 추가적으로 셀을 삽입 할 때 사용

셀을 추가한 후에는 테이블 사용과 동일하다.


1
2
3
4
5
6
7
row_cells = table.add_row().cells
row_cells[0].paragraphs[0].add_run('A').bold = True
row_cells[0].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
row_cells[1].paragraphs[0].add_run('B').bold = True 
row_cells[1].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
row_cells[2].paragraphs[0].add_run('C').bold = True 
row_cells[2].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
cs





셀 배경색 넣기

셀에 배경색을 넣는 함수는 따로 없기 때문에 직접 xml을 건드려 바꿔준다.

w:fill="BFBFBF" 에서 원하는 색상을 RGB값 16진수로 입력하면 된다.

table.rows[0].cells[0] 자리에 원하는 셀을 입력하면 된다. 


1
2
3
4
from docx.oxml import parse_xml

shading_elm = parse_xml(r'<w:shd {} w:fill="BFBFBF"/>'.format(nsdecls('w'))) #음영
table.rows[0].cells[0]._tc.get_or_add_tcPr().append(shading_elm)
cs





셀 병합(merge())

표 제작의 마지막으로 병합을 해보자 

병합은 두 셀 값을 받아 사각형 모양으로 병합이 된다.


1
2
3
t_sum_a = table.cell(10)
t_sum_b = table.cell(20)
t_sum_a.merge(t_sum_b)
cs



다음 글에선 스타일 변경 및 생성에 대해 포스팅 하겠다.



+ Recent posts