파이썬을 사용하여 워드 문서에 테이블 만들기

표는 일반적으로 Word 문서에서 그리드와 같은 구조로 정보를 구성하는 데 사용됩니다. 행과 열의 형태로 정보를 요약할 수 있습니다. 이 기사에서는 Python을 사용하여 프로그래밍 방식으로 Word 문서에서 표를 만드는 방법을 배웁니다. 또한 이 기사에서는 중첩 테이블을 생성하거나 Word 문서에서 기존 테이블을 복제하는 방법을 다룹니다.

Word 문서에서 테이블을 만드는 Python 라이브러리

Word 문서의 테이블 작업을 위해 Aspose.Words for Python을 사용합니다. 라이브러리는 Python 응용 프로그램 내에서 동적으로 Word 문서를 만들고 조작하도록 설계되었습니다. 다음 pip 명령을 사용하여 PyPI에서 라이브러리를 설치할 수 있습니다.

pip install aspose-words

Python에서 Word 문서에 테이블 만들기

다음은 Python을 사용하여 Word DOCX 문서에 테이블을 만드는 단계입니다.

  • Document 클래스의 객체를 생성합니다.
  • DocumentBuilder 클래스의 개체를 만듭니다.
  • DocumentBuilder.starttable() 메서드를 사용하여 테이블을 시작하고 개체에서 테이블의 참조를 가져옵니다.
  • DocumentBuilder.insertcell() 메서드를 사용하여 셀을 삽입합니다.
  • DocumentBuilder.cellformat 속성을 사용하여 셀의 서식을 설정합니다.
  • autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS) 메서드를 사용하여 자동 맞춤을 설정합니다.
  • 셀의 정렬을 설정합니다.
  • DocumentBuilder.write() 메서드를 사용하여 셀에 텍스트를 삽입합니다.
  • 필요에 따라 셀과 텍스트를 셀에 삽입하는 작업을 반복합니다.
  • 셀 삽입이 완료되면 행을 종료합니다.
  • 모든 행을 삽입하면 테이블을 종료합니다.
  • Document.save() 메서드를 사용하여 Word 문서를 저장합니다.

다음 코드 샘플은 Python을 사용하여 DOCX 문서에서 테이블을 만드는 방법을 보여줍니다.

import aspose.words as aw

# Create a new Word document.
doc = aw.Document()

# Create document builder.
builder = aw.DocumentBuilder(doc)

# Start the table.
table = builder.start_table()

# Insert cell.
builder.insert_cell()

# Table wide formatting must be applied after at least one row is present in the table.
table.left_indent = 20.0

# Set height and define the height rule for the header row.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

# Set alignment and font settings.
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.size = 16
builder.font.name = "Arial"
builder.font.bold = True

builder.cell_format.width = 100.0
builder.write("Header Row,\n Cell 1")

# We don't need to specify this cell's width because it's inherited from the previous cell.
builder.insert_cell()
builder.write("Header Row,\n Cell 2")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Header Row,\n Cell 3")
builder.end_row()

builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# Reset height and define a different height rule for table body.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()

# Reset font formatting.
builder.font.size = 12
builder.font.bold = False

builder.write("Row 1, Cell 1 Content")
builder.insert_cell()
builder.write("Row 1, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 1, Cell 3 Content")
builder.end_row()

builder.insert_cell()
builder.cell_format.width = 100.0
builder.write("Row 2, Cell 1 Content")

builder.insert_cell()
builder.write("Row 2, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 2, Cell 3 Content.")
builder.end_row()

# End table.
builder.end_table()

# Save the document.
doc.save("table_formatted.docx")

다음은 위의 코드 샘플을 사용하여 만든 테이블의 스크린샷입니다.

Table in a Word DOCX Document

Table in a Word DOCX Document

Python에서 Word 문서에 중첩 테이블 만들기

Aspose.Words for Python을 사용하면 중첩 테이블을 원활하게 생성할 수도 있습니다. 즉, 테이블의 셀 내에 새 테이블을 생성할 수 있습니다. 다음은 Word DOCX 파일에 중첩 테이블을 만드는 단계입니다.

  • Document 클래스의 객체를 생성합니다.
  • DocumentBuilder 클래스의 개체를 만듭니다.
  • DocumentBuilder.starttable() 메서드를 사용하여 테이블을 시작하고 개체에서 테이블의 참조를 가져옵니다.
  • DocumentBuilder.insertcell() 메서드를 사용하여 셀을 삽입하고 개체에서 셀의 참조를 가져옵니다.
  • DocumentBuilder.write() 메서드를 사용하여 셀에 텍스트를 삽입합니다.
  • 필요에 따라 셀과 텍스트를 셀에 삽입하는 작업을 반복합니다.
  • 모든 행을 삽입하면 테이블을 종료합니다.
  • DocumentBuilder.moveto(Cell.firstparagraph) 메서드를 사용하여 원하는 셀 내부로 컨트롤을 이동합니다.
  • 셀을 삽입하여 다른 테이블을 만들고 완료되면 테이블을 종료합니다.
  • Document.save() 메서드를 사용하여 Word 문서를 저장합니다.

다음 코드 샘플은 Python을 사용하여 DOCX 문서에 중첩 테이블을 만드는 방법을 보여줍니다.

import aspose.words as aw

# Create a new Word document.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# Insert cell.
cell = builder.insert_cell()
builder.writeln("Outer Table Cell 1")

builder.insert_cell()
builder.writeln("Outer Table Cell 2")

# This call is important to create a nested table within the first table. 
# Without this call, the cells inserted below will be appended to the outer table.
builder.end_table()

# Move to the first cell of the outer table.
builder.move_to(cell.first_paragraph)

# Build the inner table.
builder.insert_cell()
builder.writeln("Inner Table Cell 1")
builder.insert_cell()
builder.writeln("Inner Table Cell 2")
builder.end_table()

# Save the document.
doc.save("table_nested.docx")

다음은 위 코드 샘플의 출력입니다.

Nested Table in a Word Document

Nested Table in a Word Document

Python에서 Word 문서의 기존 테이블 복제

Word 문서에서 기존 표를 복제할 수도 있습니다. 다음은 이 작업을 수행하는 단계입니다.

  • Document 클래스를 사용하여 문서를 로드합니다.
  • Document.getchild(NodeType.TABLE, int, boolean).astable() 메서드를 사용하여 객체의 테이블 참조를 가져옵니다.
  • 테이블의 개체를 사용하여 clone(True).astable() 메서드를 호출하고 다른 개체에서 복제된 테이블의 참조를 가져옵니다.
  • Table.parentnode.insertafter() 메서드를 사용하여 복제된 테이블을 삽입합니다.
  • Table.parentnode.insertafter(Paragraph(Document), Table) 메서드를 사용하여 테이블 사이에 빈 단락을 삽입합니다.
  • Document.save() 메서드를 사용하여 Word 문서를 저장합니다.

다음 코드 샘플은 Python을 사용하여 Word DOCX 문서의 테이블을 복제하는 방법을 보여줍니다.

import aspose.words as aw

# Load the Word document.
doc = aw.Document("table_formatted.docx")

# Get reference of the desired table.
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Clone the table and insert it into the document after the original table.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# Insert an empty paragraph between the two tables,
# or else they will be combined into one upon saving.
table.parent_node.insert_after(aw.Paragraph(doc), table)

# Save the document.
doc.save("table_clone.docx")

다음 스크린샷은 Word 문서의 복제된 테이블을 보여줍니다.

Cloned Table in a Word Document

Cloned Table in a Word Document

무료 API 라이선스 받기

평가 제한 없이 Aspose.Words for Python을 사용할 수 있는 임시 라이선스를 얻을 수 있습니다.

결론

이 기사에서는 Python을 사용하여 Word 문서에서 표를 만드는 방법을 배웠습니다. 또한 중첩 테이블을 생성하거나 Word 문서의 기존 테이블을 동적으로 복제하는 방법을 살펴보았습니다. 또한 Aspose.Words for Python의 문서를 방문하여 다른 기능을 탐색할 수 있습니다. 질문이 있는 경우 포럼을 통해 언제든지 알려주십시오.

또한보십시오

정보: PowerPoint 프레젠테이션에서 Word 문서를 가져와야 하는 경우 Aspose Presentation to Word Document 변환기를 사용할 수 있습니다.