Communitygithub.com

cli-anything-wps

WPS Office CLI — Génération automatisée de présentations PPT pilotée par JSON et contrôle en ligne de commande de WPS Writer, Calc et Impress.

Qu'est-ce que cli-anything-wps ?

L'outil CLI `cli-anything-wps` permet de contrôler WPS Office (Writer, Calc, Impress) via l'interface COM (Component Object Model) sous Windows. Son cas d'usage principal est la génération automatisée de présentations PowerPoint (PPTX) à partir de données JSON, intégrant des graphiques matplotlib et des tableaux structurés. Il prend en charge une palette de types d'éléments de diapositive (textes, images, tableaux, cartes, listes) avec des contraintes de positionnement strictes pour garantir un rendu professionnel. L'outil propose également des commandes pour créer, modifier et exporter des documents, ainsi que des préréglages de design (académique, consultant, business, tech) et un processus de validation qualité en cinq dimensions. Destiné aux développeurs et aux agents IA, il automatise les workflows de production de rapports, de présentations et de documents complexes tout en respectant les normes typographiques et de mise en page.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yb2460/harness-anything/tree/master/cli_anything/wps/skills

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait cli-anything-wps ?

Outil en ligne de commande pour contrôler WPS Office via l'interface d'automatisation COM. Prend en charge WPS Writer (traitement de texte), WPS Calc (tableur) et WPS Impress (présentation).

Prérequis

  • Système d'exploitation Windows
  • WPS Office (installé, version 12.0+)
  • Python 3.10+
  • pywin32 : pip install pywin32

Installation

pip install -e .
cli-anything-wps --help

Génération automatisée de présentations PPT pilotée par JSON ⭐ Flux de travail principal en production

C'est le mode le plus utilisé : rechercher des données → générer des graphiques matplotlib → écrire du JSON → générer en un clic via WPS COM.

Processus complet (6 étapes)

1. Extraire le fond de modèle : modèle.pptx → template_bg.png (960x540)
2. WebSearch pour les données : notes d'admission / classements disciplinaires / plans de recrutement / données de recherche
3. Générer des graphiques matplotlib : histogrammes / diagrammes circulaires / courbes / barres horizontales / graphiques à bulles
4. Écrire data.json : agencement de 12 à 15 éléments [] (titre ≤ 4 caractères + espacement ≥ 24 pt)
5. python build_xxx.py : construction page par page via WPS COM
6. Sortie : double format PPTX + PDF

Ordre des diapositives standard

S1 Page de couverture → S2 Table des matières → S3-S10 Pages de contenu (graphiques + tableaux + cartes) → S11 Carte récapitulative → S12 Remerciements

Acheminement des types d'éléments

typeUtilisation
textZone de texte
imageImage (y compris graphiques matplotlib)
tableTableau
cards_2x3Cartes colorées 2 lignes x 3 colonnes
cards_1x4_infoCartes de statistiques numériques à 4 colonnes
card_list_wideListe numérotée de la table des matières
tagline_barBarre de synthèse en bas de page

Contraintes clés ⚠️

  • Espacement titre-contenu : titre y=14 h=40 (se termine à y≈54), le premier élément de contenu doit commencer à y≥76-78 (espacement ≥24 pt)
  • Titre limité à 4 caractères maximum, centré, SimHei 40-44 pt, couleur de marque, sans ligne décorative
  • Guillemets chinois dans le JSON : utiliser les guillemets « » au lieu de "" pour les citations dans le texte
  • Tous les éléments dans les limites du canevas : 960×540, y+h≤518
  • WPS COM : Fill.ForeColor.RGB, SaveAs(path, 32) pour exporter en PDF
  • Nettoyage avant exécution : taskkill //F //IM wps.exe //T

Exemples de référence

16 projets dans le répertoire WPS/ :

ProjetPagesThème
Tsinghua Xiehe / Université de Lanzhou / Faculté de médecine de Tongji / HIT / Université de Chongqing / Université de Nanhua12 pagesAdmissions de chaque université
Université Sun Yat-sen / USTC / UCAS15 pagesAdmissions dans les grandes écoles
Université de Fudan12 pagesNouveaux cursus d'ingénierie + Faculté de médecine
Hôpital d'oncologie de SUSTech12 pagesProgramme conjoint master-doctorat
PKU / Tsinghua / SUSTech / HUST / Zhejiang University City College9-14 pagesPrésentations des établissements
# Exemple d'exécution complète
python -c "import zipfile; ..."  # Extraire le modèle
python gen_charts.py              # Générer les graphiques
python -c "import json; json.load(open('data.json','r',encoding='utf-8'))"  # Valider le JSON
taskkill //F //IM wps.exe //T
python build_xxx.py               # Construire PPTX+PDF

Structure des commandes CLI

wps
├── document          # Gestion des documents : new/open/save/info
├── writer            # Texte : add-paragraph/heading/list/table/image
├── calc              # Tableur : set-cell/get-cell/set-range/merge-cells
├── impress           # Présentation : add-slide/remove-slide/set-content/add-element
├── style             # Styles : create/modify/list/apply/remove
├── preset            # Préréglages de design : list/info/apply
├── export            # Export : render output.pptx -p pptx
└── session           # Session : status/undo/redo/history

Exemples d'utilisation

# Créer un document
cli-anything-wps document new --type writer --name "Rapport" -o report.json
cli-anything-wps --project report.json writer add-heading -t "Rapport annuel" -l 1
cli-anything-wps --project report.json export render report.docx -p docx

# Mode JSON (utilisé par les agents)
cli-anything-wps --json document new --type writer --name "test"

Préréglages de design

PréréglagePalette de couleursCas d'usage
academicBleu foncé #1A3C8BSoutenance académique / Demande de subvention
consultantBleu foncé #003366 + Cyan vifRapport de conseil
businessBleu professionnel #005294Réunion / Cours
techPresque noir #0F1423Technologie / IA / Rapport de données

Contrôle qualité (5 dimensions)

DimensionÉléments vérifiésSeuil
visualHiérarchie des polices / Contraste / Espaces vides70 points
pedagogyArc narratif / Connaissances préalables75 points
proofreadingOrthographe / Terminologie / Débordement80 points
parityCohérence PPTX/PDF85 points
substanceExactitude des données / Références90 points

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés