cli-anything-wps 是做什麼的?
透過 COM 自動化介面操控 WPS Office 的命令列工具。支援 WPS 文書(Writer)、WPS 試算表(Calc)與 WPS 簡報(Impress)。
前置條件
- Windows 作業系統
- WPS Office(已安裝,版本 12.0+)
- Python 3.10+
- pywin32:
pip install pywin32
安裝
pip install -e .
cli-anything-wps --help
JSON 資料驅動 PPT 自動生成 ⭐ 生產環境核心工作流程
這是最常用的模式:搜資料 → 生成 matplotlib 圖表 → 寫 JSON → WPS COM 一鍵生成。
完整流程(6步驟)
1. 提取模板背景: 模版.pptx → template_bg.png (960x540)
2. WebSearch 搜尋資料: 招生分數線/學科排名/招生計畫/科研資料
3. matplotlib 生成圖表: 長條圖/圓餅圖/折線圖/橫向長條/氣泡圖
4. 編寫 data.json: 12-15 頁 elements[] 編排(標題≤4字 + 間距≥24pt)
5. python build_xxx.py: WPS COM 逐頁建構
6. 輸出: PPTX + PDF 雙格式
標準頁序
S1 封面 → S2 目錄 → S3-S10 內容頁(圖+表+卡片) → S11 總結卡片 → S12 致謝
元素類型路由
| type | 用途 |
|---|
text | 文字方塊 |
image | 圖片(含 matplotlib 圖表) |
table | 表格 |
cards_2x3 | 2行x3列彩色卡片 |
cards_1x4_info | 4列數字統計卡 |
card_list_wide | 目錄編號清單 |
tagline_bar | 頁面底部總結條 |
關鍵約束 ⚠️
- 標題與內容間距:標題 y=14 h=40(結束於 y≈54),第一個內容元素必須起始於 y≥76-78(≥24pt gap)
- 標題最多4字,居中,SimHei 40-44pt,品牌色,無裝飾線
- JSON 中文引號:文字內引用用「」代替
""
- 所有元素不出畫布:960×540,y+h≤518
- WPS COM:
Fill.ForeColor.RGB,SaveAs(path, 32) 匯出 PDF
- 執行前清理:
taskkill //F //IM wps.exe //T
參考案例
WPS/ 目錄下16個專案:
| 專案 | 頁數 | 主題 |
|---|
| 清華協和/蘭州大學/同濟醫學院/哈工大/重慶大學/南華大學 | 12頁 | 各校招生 |
| 中山大學/中科大/國科大 | 15頁 | 名校招生 |
| 復旦大學 | 12頁 | 新工科+醫學院 |
| 南科大腫瘤醫院 | 12頁 | 聯合培養碩博 |
| 北大/清華/南科大/華中科大/浙大城市學院 | 9-14頁 | 各校介紹 |
python -c "import zipfile; ..."
python gen_charts.py
python -c "import json; json.load(open('data.json','r',encoding='utf-8'))"
taskkill //F //IM wps.exe //T
python build_xxx.py
CLI 命令結構
wps
├── document # 文件管理: new/open/save/info
├── writer # 文書: add-paragraph/heading/list/table/image
├── calc # 試算表: set-cell/get-cell/set-range/merge-cells
├── impress # 簡報: add-slide/remove-slide/set-content/add-element
├── style # 樣式: create/modify/list/apply/remove
├── preset # 設計預設: list/info/apply
├── export # 匯出: render output.pptx -p pptx
└── session # 工作階段: status/undo/redo/history
使用範例
cli-anything-wps document new --type writer --name "報告" -o report.json
cli-anything-wps --project report.json writer add-heading -t "年度報告" -l 1
cli-anything-wps --project report.json export render report.docx -p docx
cli-anything-wps --json document new --type writer --name "test"
設計預設
| 預設 | 配色 | 適用場景 |
|---|
| academic | 深藍#1A3C8B | 學術答辯/基金申請 |
| consultant | 深藍#003366+亮青 | 諮詢報告 |
| business | 商務藍#005294 | 會議彙報/教材 |
| tech | 近黑#0F1423 | 科技/AI/資料報告 |
品質審查(5維度)
| 維度 | 檢查項 | 門檻值 |
|---|
| visual | 字型層級/對比度/留白 | 70分 |
| pedagogy | 敘事弧/預備知識 | 75分 |
| proofreading | 拼寫/術語/溢出 | 80分 |
| parity | PPTX/PDF 一致性 | 85分 |
| substance | 資料準確性/引用 | 90分 |