Skills DirectorySearch all skills ↗

AI agent skill · by @yb2460

Cli Anything Wps

WPS Office CLI — JSON数据驱动PPT自动生成 + 命令行操控WPS文字/表格/演示文稿

Archived 2026-10-23 · Source updated 2026-07-28 · License: MIT. Check the original repository for the latest version.

SKILL.md instructions

# cli-anything-wps

通过 COM 自动化接口操控 WPS Office 的命令行工具。支持 WPS 文字(Writer)、WPS 表格(Calc)和 WPS 演示(Impress)。

## 前置条件

- **Windows 操作系统**
- **WPS Office**(已安装,版本 12.0+)
- **Python 3.10+**
- **pywin32**:`pip install pywin32`

## 安装

```bash
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/](../WPS/) 目录下16个项目:

| 项目 | 页数 | 主题 |
|------|------|------|
| 清华协和/兰州大学/同济医学院/哈工大/重庆大学/南华大学 | 12页 | 各校招生 |
| 中山大学/中科大/国科大 | 15页 | 名校招生 |
| 复旦大学 | 12页 | 新工科+医学院 |
| 南科大肿瘤医院 | 12页 | 联合培养硕博 |
| 北大/清华/南科大/华中科大/浙大城市学院 | 9-14页 | 各校介绍 |

```bash
# 完整执行示例
python -c "import zipfile; ..."  # 提取模板
python gen_charts.py              # 生成图表
python -c "import json; json.load(open('data.json','r',encoding='utf-8'))"  # 验证JSON
taskkill //F //IM wps.exe //T
python build_xxx.py               # 构建PPTX+PDF
```

---

## 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
```

### 使用示例

```bash
# 创建文档
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

# JSON模式(Agent使用)
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分 |

Related skills