1. 程式人生 > >利用python-docx更新word中的表格內容

利用python-docx更新word中的表格內容

收到實驗組小妹妹一個需求, 希望把一個巨大word文件中所有表格裡的所有一位小數隨機新增一位數變成兩位小數, 從學術角度我開始是拒絕的, 但是, 妹子需求哪有不滿足的道理, so...

記錄下我解決這個問題的流程:

  1. 聽取妹子需求, 然後大概評估這個活應該可以用Python來做
  2. 需求準確歸納: 給所有文件中表格內一位小數後加一位隨機數使之變成兩位小數
  3. 商量一個deadline: 因為沒做過, 不能打包票, 所以暫定第二天上班給結果
  4. 拿到原始資料開始找輪子擼
  5. Google 找到 python-docx 這個 package 可以做這件事
  6. 問題分解
  7. 解析 docx
  8. 遍歷所有表格

    • 正則匹配一位小數
    • 生成隨機小數補位
    • 儲存
  9. 交給妹子, 收穫膝蓋

放碼

找到靠譜輪子就是爽, 幾行程式碼解決戰鬥, 十分鐘完成任務

import random
import re

from docx import Document

# 原始檔 test.docx
doc = Document("test.docx")

# 正則匹配所有一位小數
p = re.compile("^[0-9]+\.[0-9]{1}$")

# 遍歷所有表格
for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            if
re.search(p, cell.text): # 匹配小數並在後面補齊一位小數 cell.text += str(random.randint(0, 9)) doc.save("test_update.docx")