Word 文件生成與編輯

👤 我要萌萌噠 📦 v1.0.0 ⭐ 4.5 ⬇️ 519 下載
📄 辦公效率 免費

📖 技能介紹


name: docx-generator display_name: "Word 文件生成與編輯" description: "需要建立、讀取、編輯或處理 Word 文件(.docx / .dotx)時使用。觸發詞:'Word'、'word 文件'、'.docx'、'生成報告'、'製作合同/簡歷/方案/說明書'、'提取 word 內容'、'在文件裡查詢替換'、'給文件加頁首頁尾/目錄/表格'。也用於把任意內容排版成一份正式的 Word 檔案。不要用它處理 PDF、Excel 或無關程式設計任務。中文創作場景尤其適合:小說大綱稿、投稿文件、合同、簡歷、工作總結。" license: "MIT(改寫自 anthropics/skills docx,已去除私有輔助指令碼依賴,改為自包含 python-docx 方案)"


Word 文件(.docx)生成與編輯

.docx 本質是一個 ZIP 包,裡面是 XML。按任務選方案:

任務 方案
新建 文件 python-docx(推薦,自包含,見下方模板)或 npm docx
編輯 已有文件 解壓 → 改 word/document.xml → 重新壓縮;或用 python-docx 的 Document('existing.docx') 追加/修改
讀取 內容 python-docxdocument.paragraphs 遍歷,或對檔案跑 pandoc -t markdown file.docx

本技能根目錄下的 references/docx_template.py 是一個完整可執行的示例(標題/多級標題/表格/列表/頁尾頁碼),直接用 python references/docx_template.py <輸出路徑> 即可生成一份示範文件。

新建文件(python-docx)——踩坑要點

python-docx 已隨本技能所需環境預裝。模型熟悉 API,下面是高頻坑:

更多技能請訪問小蔥技能站7w4.net。

  • 頁面尺寸:預設 A4。要美式 Letter:from docx.shared import Inches 後用 document = Document() 設定 sections[0].page_width/height(Letter = 12240×15840 EMU,1 英寸=1440 EMU)。
  • 表格雙寬:表格設 table.autofit=True 或給每列 cell.width = Inches(...);列寬之和應等於表格寬。
  • 表格底紋:用 WD_CELL_VERTICAL_ALIGNMENTshading element,不要整體 SOLID(會渲染成黑塊)。簡單做法是用淺灰 XML:見模板。
  • 列表:不要用字面量 ,用 document.add_paragraph(text, style='List Bullet')'List Number'
  • 圖片from docx.embedded import Imageparagraph.add_run().add_picture(path, width=Inches(3)),需指定 width/height 之一。
  • 分頁from docx.enum.text import WD_BREAK; paragraph.add_break(WD_BREAK.PAGE)
  • 不要用 \n 拼多行:每段用獨立的 add_paragraph
  • 目錄(TOC):python-docx 不自動生成真實 TOC 域;用內建 Heading 1/2/3 樣式(在 Word 導航窗格里可見),並在文首放一句"右鍵→更新域→更新整個目錄"的提示,或插入 TOC 域 XML(進階,見模板註釋)。
  • 不要用表格當分隔線:用段落 bottom border 畫橫線。

編輯已有文件

舊版 .doc 先轉換:soffice --headless --convert-to docx file.doc(需 LibreOffice)。

from docx import Document
doc = Document('existing.docx')
# 遍歷段落
for p in doc.paragraphs:
    if '舊詞' in p.text:
        for run in p.runs:
            run.text = run.text.replace('舊詞', '新詞')
# 追加內容
doc.add_heading('新增章節', level=1)
doc.add_paragraph('新段落')
doc.save('out.docx')

Word 會把同一句話拆成很多 <w:r> run(修訂標記、拼寫檢查),所以"看起來連在一起的短語"在 XML 裡可能不是連續字串——查詢替換建議用 run.text 逐個替換,而不是整段正則。

驗證輸出

生成 .docx 後,轉成 PDF 看一眼排版:

soffice --headless --convert-to pdf output.docx
pdftoppm -jpeg -r 100 output.pdf page
# 然後 Read 生成的 page-*.jpg 檢查

依賴

python-docx(已預裝於本技能環境)· 可選:pandoc · 可選:soffice(LibreOffice,用於轉 PDF 驗證 / 轉 doc)。

中文創作場景示例

  • 投稿文件:用 Heading 1 當"卷名"、Heading 2 當"章名",Word 裡一鍵生成目錄。
  • 小說大綱稿:表格列"章節 / 核心衝突 / 鉤子 / 字數",table.style='Light Grid Accent 1'
  • 合同/簡歷:分節 + 頁尾頁碼(section.footer.add_paragraph().add_field('PAGE'))。
  • 以上全部在 references/docx_template.py 有可直接跑的樣板。

🤖 AI 評測

質量中等偏上,文件說明詳細且實用,踩坑要點很有價值,提供的程式碼示例基本可用。但檔案較少,只有參考模板,缺少完整測試和更多示例,實際使用時可能需要自己除錯。總體來說能較好地指導 Word 文件生成任務,但細節上還有完善空間。

📊 多維度評分

適應性4.5
規範性4.5
有效性4.7
可靠性3.9
可信度5

📁 包含檔案 (2 個)

📄 SKILL.md 4.3 KB
📄 references/docx_template.py 4 KB