👌
python-docxでテーブルも含めてテキストを取得する
import docx
def read_all_text():
# Word文書を読み込む
doc = docx.Document(word_file_path)
# 文書からテキストを抽出
full_text = []
content = doc.iter_inner_content()
# 文書からテキストを抽出
for element in content:
# テーブル内のテキストの場合
if isinstance(element, docx.table.Table):
# 結合セルがある場合に同じデータを複数回取るので避けるようにしている
# (縦に結合されている場合は考慮していない)
last_cell_text = ""
for row in element.rows:
for cell in row.cells:
cell_text = ""
for paragraph in cell.paragraphs:
cell_text += paragraph.text
if last_cell_text != cell_text:
full_text.append(cell_text)
last_cell_text = cell_text
# テーブル外のテキストの場合
elif isinstance(element, docx.text.paragraph.Paragraph):
full_text.append(element.text)
# テキストを結合して全体のテキストを作成
return "\n".join(full_text)
Discussion