
Word 표는 데이터를 정리하는 데 유용하지만, 내용을 일반 텍스트로 편집해야 할 때는 불편할 수 있습니다. 더 이상 표 구조가 필요하지 않은 경우 Word의 내장 도구를 사용하여 표를 텍스트로 변환하거나 Python으로 프로세스를 자동화할 수 있습니다. 이 가이드에서는 두 가지 방법에 대한 자세한 단계를 설명합니다. 함께 살펴보겠습니다.
내장 도구를 사용하여 Word에서 표를 텍스트로 변환하기
Microsoft Word는 표를 텍스트로 변환하는 내장 도구를 제공합니다. 한두 개의 표만 변환해야 하는 경우 내장 도구가 가장 빠른 옵션입니다. 표 구조를 제거하고 셀 내용을 일반 텍스트로 변환합니다.
MS Word에서 표를 텍스트로 변경하는 방법:
- 1단계: 표 내부의 아무 곳이나 클릭하여 상단 리본 메뉴에 표 레이아웃 탭이 나타나게 합니다.
- 2단계: 상단 메뉴의 표 레이아웃 탭으로 이동하여 데이터 그룹에서 텍스트로 변환 버튼을 클릭합니다.

- 3단계: 열 값을 구분할 원하는 구분 기호(탭, 쉼표, 단락 기호 또는 사용자 지정 문자)를 선택합니다.

- 4단계: 확인을 클릭하면 표가 즉시 일반 텍스트 단락으로 변환됩니다.
텍스트로 변환 vs. 테두리 숨기기
표 테두리를 숨기면 표의 외관만 변경됩니다. 셀, 열 및 표 구조는 그대로 유지되므로 콘텐츠는 여전히 표 레이아웃에 의해 제한됩니다.
표를 텍스트로 변환하면 표 구조가 제거되고 셀 내용이 일반 단락으로 바뀝니다. 그런 다음 표 레이아웃 없이 콘텐츠를 편집하고 서식을 지정할 수 있습니다.
Python으로 Word 표를 텍스트로 변환하기
Word의 내장 도구는 개별 표를 변환하는 데 편리하지만, 많은 문서나 표를 처리해야 할 때는 실용성이 떨어집니다. Python 개발자의 경우 Free Spire.Doc for Python을 사용하면 Microsoft Word를 설치하지 않고도 표에서 텍스트로의 변환을 자동화할 수 있습니다.
표를 텍스트로 변환하기
스크립트는 각 셀의 텍스트를 읽고, 동일한 행의 셀을 탭 문자로 연결하고, 결과 단락을 표가 있던 위치에 삽입한 다음 원래 표를 제거합니다.
from spire.doc import *
from spire.doc.documents import *
# Initialize Document instance and load the target file
doc = Document()
doc.LoadFromFile("input.docx")
# Get the first section and target table
section = doc.Sections[0]
if section.Tables.Count > 0:
table = section.Tables[0]
# Extract text from cells line by line
text_lines = []
for j in range(table.Rows.Count):
row = table.Rows.get_Item(j)
row_cells_text = []
for k in range(row.Cells.Count):
cell = row.Cells.get_Item(k)
# Extract text from cell paragraphs
cell_text_pieces = []
for p in range(cell.Paragraphs.Count):
para_obj = cell.Paragraphs.get_Item(p)
if para_obj.Text:
cell_text_pieces.append(para_obj.Text.strip())
row_cells_text.append(" ".join(cell_text_pieces))
# Join cell text using Tab separators
text_lines.append("\t".join(row_cells_text))
# Locate the table inside its parent block
owner_block = table.OwnerTextBody
table_index = owner_block.ChildObjects.IndexOf(table)
# Insert new text paragraphs at the exact table position
for line in reversed(text_lines):
temp_para = section.AddParagraph()
temp_para.Text = line
section.Paragraphs.Remove(temp_para)
owner_block.ChildObjects.Insert(table_index, temp_para)
# Completely remove the table structure from the document structure
owner_block.ChildObjects.Remove(table)
# Save the updated document
doc.SaveToFile("1st table to text.docx", FileFormat.Docx2016)
doc.Close()

참고: 동일한 셀 내의 여러 단락은 공백으로 구분된 단일 행으로 결합됩니다.
모든 표 일괄 처리하기
문서의 모든 표를 텍스트로 변환하려면 이전 예제의 변환 로직을 재사용하여 모든 섹션의 모든 표에 적용합니다. 변환 후 각 표가 제거되므로 표는 역순으로 처리해야 합니다. 그렇지 않으면 표를 삭제할 때 남은 표의 인덱스가 이동하여 표가 누락되거나 인덱스 오류가 발생할 수 있습니다.
from spire.doc import *
from spire.doc.documents import *
# Create a Document object and load a Word file
doc = Document()
doc.LoadFromFile("input.docx")
# Iterate through every section in the document
for s_idx in range(doc.Sections.Count):
section = doc.Sections[s_idx]
# Iterate backwards through tables to avoid index shifting issues
table_count = section.Tables.Count
for t_idx in range(table_count - 1, -1, -1):
table = section.Tables.get_Item(t_idx)
# Collect text from all rows and cells
text_lines = []
for j in range(table.Rows.Count):
row = table.Rows.get_Item(j)
row_cells_text = []
for k in range(row.Cells.Count):
cell = row.Cells.get_Item(k)
cell_text_pieces = []
for p in range(cell.Paragraphs.Count):
para_obj = cell.Paragraphs.get_Item(p)
if para_obj.Text:
cell_text_pieces.append(para_obj.Text.strip())
row_cells_text.append(" ".join(cell_text_pieces))
text_lines.append("\t".join(row_cells_text))
# Replace the table node with plain paragraphs in-place
owner_block = table.OwnerTextBody
table_index = owner_block.ChildObjects.IndexOf(table)
for line in reversed(text_lines):
temp_para = section.AddParagraph()
temp_para.Text = line
section.Paragraphs.Remove(temp_para)
owner_block.ChildObjects.Insert(table_index, temp_para)
# Safely remove the current table
owner_block.ChildObjects.Remove(table)
# Save the final file
doc.SaveToFile("all tables to text.docx", FileFormat.Docx2016)
doc.Close()

팁: 표 데이터를 외부 TXT 파일로 내보내기
많은 데이터 파이프라인 워크플로에서 목표는 원본 레이아웃 파일을 수정하는 것보다 정보를 얻는 것입니다. 데이터베이스 수집, 로깅 또는 일반 텍스트 보관을 위한 표 형식의 텍스트만 필요한 경우에는 훨씬 더 간단합니다. Free Spire.Doc을 사용하면 원본 셀 내용을 신속하게 추출하여 외부 텍스트 파일에 직접 입력할 수 있습니다.
코드 예제
from spire.doc import *
from spire.doc.common import *
# Create a Document instance
doc = Document()
# Load a Word document
doc.LoadFromFile("input.docx")
# Get the first table
table = doc.Sections[0].Tables[0]
# Extract table text
tableData = ''
for j in range(table.Rows.Count):
row = table.Rows.get_Item(j)
for k in range(row.Cells.Count):
cell = row.Cells.get_Item(k)
for p in range(cell.Paragraphs.Count):
tableData += cell.Paragraphs.get_Item(p).Text + ' '
if k < row.Cells.Count - 1:
tableData += '\t'
tableData += '\n'
# Save the extracted text to a TXT file
with open("/table_text.txt", "w", encoding="utf-8") as f:
f.write(tableData)
doc.Close()

팁: 구조화된 표 형식 데이터의 경우, 스프레드시트, 데이터베이스 및 기타 데이터 처리 워크플로에서 사용할 수 있도록 Word 표를 CSV로 변환할 수도 있습니다.
자주 묻는 질문
Q1: 변환된 텍스트가 정렬되지 않은 것처럼 보이면 어떻게 해야 하나요?
탭(\t)을 사용하면 구조적 간격이 가장 잘 유지됩니다. Word에서 열 정렬이 여전히 고르지 않게 보이면 변환된 단락을 선택하고 가로 자에서 탭 정지 위치를 조정하세요.
Q2: Word에서 텍스트를 다시 표로 변환하려면 어떻게 해야 하나요?
프로세스를 되돌리려면 텍스트를 강조 표시하고 삽입 > 표로 이동한 다음 텍스트를 표로 변환을 클릭합니다. 일치하는 구분 기호(예: 탭 또는 쉼표)를 선택하여 표를 다시 만듭니다.
Q3: Word에서 표를 텍스트로 변환하는 단축키는 무엇인가요?
Microsoft Word는 텍스트로 변환에 대한 전용 키보드 단축키를 제공하지 않습니다. 리본 메뉴를 통해 명령에 액세스하거나 Word의 키보드 설정을 통해 단축키를 사용자 지정할 수 있습니다.
요약
이 문서에서는 Word 문서의 표를 텍스트로 변환하는 두 가지 방법을 소개했습니다. Word의 내장 도구는 개별 표나 적은 수의 문서에 적합하며, Free Spire.Doc for Python은 여러 표의 자동 처리 작업에 더 적합합니다. 표 내용을 TXT 파일로 추출하여 일반 텍스트 저장 또는 추가 처리에 활용할 수도 있습니다.