python將word表格轉寫入excel

Notes

想將一份 word 文件中的幾個表格轉寫入 excel 文件中,後續用 excel 處理。
用到 python-docxpandas 分別處理 word 和 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

  1. python-docx
  2. python讀取word文檔表格裏的數據
  3. Pandas與EXCEL之數據讀取/保存/文件分割/文件合併
  4. Python Pandas讀取修改excel操作攻略
  5. python3 pandas讀寫excel
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章