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. Web検索でデータ収集: 入学スコアライン/学科ランキング/募集計画/研究データ
3. matplotlib でグラフ生成: 棒グラフ/円グラフ/折れ線グラフ/横棒/バブルチャート
4. data.json の記述: 12-15 ページの elements[] 配列(タイトル最大4文字+スペース≥24pt)
5. python build_xxx.py: WPS COM でページごとに構築
6. 出力: PPTX + PDF の2形式
標準ページ順序
S1 表紙 → S2 目次 → S3-S10 コンテンツページ(図+表+カード) → S11 サマリーカード → S12 謝辞
要素タイプルーティング
| type | 用途 |
|---|
text | テキストボックス |
image | 画像(matplotlib グラフ含む) |
table | テーブル |
cards_2x3 | 2行×3列のカラフルカード |
cards_1x4_info | 4列の数字統計カード |
card_list_wide | 目次番号リスト |
tagline_bar | ページ下部サマリーバー |
重要な制約 ⚠️
- タイトルとコンテンツの間隔: タイトル y=14, h=40(終了 y≈54)、最初のコンテンツ要素は y≥76-78 から開始(24pt 以上のギャップ)
- タイトルは最大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 # Writer: add-paragraph/heading/list/table/image
├── calc # Calc: set-cell/get-cell/set-range/merge-cells
├── impress # 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 点 |