python wordテーブルをexcelに転送


Notes
ワードファイルのいくつかのテーブルをexcelファイルに転送し、その後excelで処理したいです.python-docxおよびpandaswordとexcelをそれぞれ処理する.python-docxのインストール:pip install python-docxファイルは受け付けません.docファイルは、先に.docxに転送します.以下、test.docxから読み込み、test.xlsxまで書きます.
code
from docx import Document
import pandas as pd

word = 'test.docx'
excel = 'test.xlsx'

doc = Document(word)  # word   
xls = pd.ExcelWriter(excel)  #      excel

tables = doc.tables  # word     tables
# print(tables)
# tb = tables[0]  #     table
# print(dir(tb))
# print(len(tb.rows), len(tb.columns))  #   、  
for i, tb in enumerate(tables):
    mat = []  #   list   list           
    for r in range(1, len(tb.rows)):
        row = []
        for c in range(1, len(tb.columns)):
            cell = tb.cell(r, c)
            txt = cell.text if cell.text != '' else ' '  #         
            row.append(txt)
        mat.append(row)

	#   mat    DataFrame
    df = pd.DataFrame(mat)
    # print(df)
    # DataFrame    excel      sheet
    #        index      header(    ,      )
    df.to_excel(xls, sheet_name=f'{i}', index=False, header=False)

xls.save()  #   
xls.close()  #   

References
  • python-docx
  • python wordドキュメント表のデータを読み込む
  • PandasとEXCELのデータ読み込み/保存/ファイル分割/ファイルマージ
  • Python Pandas読み込み修正エクセル操作攻略
  • python 3 pandas読み書きexcel