officeCLI

Par heshengtao · super-agent-party

Créez, analysez, relisez et modifiez des documents Office (.docx, .xlsx, .pptx) à l'aide de l'outil CLI officecli. À utiliser lorsque l'utilisateur souhaite créer, inspecter, vérifier la mise en forme, identifier des problèmes, ajouter des graphiques ou modifier des documents Office.

npx skills add https://github.com/heshengtao/super-agent-party --skill officeCLI

officecli

CLI convivial pour l'IA pour .docx, .xlsx, .pptx. Binaire unique, aucune dépendance, pas d'installation d'Office requise.

Installation et mise à jour

Même commande pour l'installation et la mise à niveau :

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex

Après l'installation, exécutez source ~/.zshrc (macOS) ou source ~/.bashrc (Linux) pour rendre la commande officecli disponible.

Vérification : officecli --version

officecli se met à jour automatiquement chaque jour en arrière-plan.


Stratégie

L1 (lecture) → L2 (édition DOM) → L3 (XML brut). Préférez toujours les couches supérieures. Ajoutez --json pour une sortie structurée.


Système d'aide (IMPORTANT)

En cas de doute sur les noms de propriétés, les formats de valeurs ou la syntaxe des commandes, EXÉCUTEZ TOUJOURS L'AIDE au lieu de deviner. Une requête d'aide est plus rapide que des boucles deviner-échouer-réessayer.

Navigation à trois niveaux — commencez par le niveau le plus profond que vous connaissez :

officecli pptx set              # Tous les éléments modifiables et leurs propriétés
officecli pptx set shape        # Propriétés de forme en détail
officecli pptx set shape.fill   # Format de propriété spécifique et exemples

Remplacez pptx par docx ou xlsx. Commandes : view, get, query, set, add, raw.


Performance : mode résident

Pour les workflows multi-étapes (3+ commandes sur le même fichier), utilisez open/close :

officecli open report.docx       # garder en mémoire — commandes suivantes rapides
officecli set report.docx ...    # pas de surcharge d'I/O
officecli close report.docx      # enregistrer et libérer

Démarrage rapide

PPT :

officecli create slides.pptx
officecli add slides.pptx / --type slide --prop title="Q4 Report" --prop background=1A1A2E
officecli add slides.pptx /slide[1] --type shape --prop text="Revenue grew 25%" --prop x=2cm --prop y=5cm --prop font=Arial --prop size=24 --prop color=FFFFFF
officecli set slides.pptx /slide[1] --prop transition=fade --prop advanceTime=3000

Word :

officecli create report.docx
officecli add report.docx /body --type paragraph --prop text="Executive Summary" --prop style=Heading1
officecli add report.docx /body --type paragraph --prop text="Revenue increased by 25% year-over-year."

Excel :

officecli create data.xlsx
officecli set data.xlsx /Sheet1/A1 --prop value="Name" --prop bold=true
officecli set data.xlsx /Sheet1/B1 --prop value="Score" --prop bold=true
officecli set data.xlsx /Sheet1/A2 --prop value="Alice"
officecli set data.xlsx /Sheet1/B2 --prop value=95

L1 : Créer, lire et inspecter

officecli create <file>               # Créer un fichier vierge .docx/.xlsx/.pptx (type selon l'extension)
officecli view <file> <mode>          # outline | stats | issues | text | annotated
officecli get <file> <path> --depth N # Obtenir un nœud et ses enfants [--json]
officecli query <file> <selector>     # Requête de type CSS
officecli validate <file>             # Valider selon le schéma OpenXML

modes de visualisation

Mode Description Drapeaux utiles
outline Structure du document
stats Statistiques (pages, mots, formes)
issues Problèmes de formatage/contenu/structure --type format\|content\|structure, --limit N
text Extraction de texte brut --start N --end N, --max-lines N
annotated Texte avec annotations de formatage

get

Tout chemin XML via localName d'élément. Utilisez --depth N pour développer les enfants. Ajoutez --json pour une sortie structurée.

officecli get report.docx '/body/p[3]' --depth 2 --json
officecli get slides.pptx '/slide[1]' --depth 1          # lister toutes les formes de la diapo 1
officecli get data.xlsx '/Sheet1/B2' --json

Exécutez officecli docx get / officecli xlsx get / officecli pptx get pour tous les chemins disponibles.

query

Sélecteurs de type CSS : [attr=value], [attr!=value], [attr~=text], [attr>=value], [attr<=value], :contains("text"), :empty, :has(formula), :no-alt.

officecli query report.docx 'paragraph[style=Normal] > run[font!=Arial]'
officecli query slides.pptx 'shape[fill=FF0000]'

validate

officecli validate report.docx    # Vérifier les erreurs de schéma
officecli validate slides.pptx    # Doit passer avant la livraison

Pour les documents volumineux, TOUJOURS utiliser --max-lines ou --start/--end pour limiter la sortie.


L2 : Opérations DOM

set — modifier les propriétés

officecli set <file> <path> --prop key=value [--prop ...]

Tout attribut XML est modifiable via le chemin d'élément (trouvé via get --depth N) — même les attributs actuellement absents.

Exécutez officecli <format> set pour tous les éléments modifiables. Exécutez officecli <format> set <element> pour les détails.

Formats de valeur :

Type Format Exemples
Couleurs Hex, nommée, RGB, thème FF0000, red, rgb(255,0,0), accent1..accent6
Espacement Qualifié par unité 12pt, 0.5cm, 1.5x, 150%
Dimensions EMU ou suffixé 914400, 2.54cm, 1in, 72pt, 96px

add — ajouter des éléments ou cloner

officecli add <file> <parent> --type <type> [--index N] [--prop ...]
officecli add <file> <parent> --from <path> [--index N]    # cloner l'élément existant

Types d'éléments (avec alias) :

Format Types
pptx slide, shape (textbox), picture (image/img), chart, table, row (tr), connector (connection/line), group, video (audio/media), equation (formula/math), notes, paragraph (para), run, zoom (slidezoom)
docx paragraph (para), run, table, row (tr), cell (td), image (picture/img), header, footer, section, bookmark, comment, footnote, endnote
xlsx sheet, row, cell, chart, image (picture), comment, hyperlink

Cloner : officecli add <file> / --from /slide[1] — copie avec toutes les relations entre parts.

Exécutez officecli <format> add pour tous les types ajoutables et leurs propriétés.

move, swap, remove

officecli move <file> <path> [--to <parent>] [--index N]
officecli swap <file> <path1> <path2>
officecli remove <file> '/body/p[4]'

batch — plusieurs opérations en un seul cycle de sauvegarde

echo '[
  {"command":"set","path":"/Sheet1/A1","props":{"value":"Name","bold":"true"}},
  {"command":"set","path":"/Sheet1/B1","props":{"value":"Score","bold":"true"}}
]' | officecli batch data.xlsx --json

Batch supporte : add, set, get, query, remove, move, view, raw, raw-set, validate.

Champs batch : command, path, parent, type, from, to, index, props (dict), selector, mode, depth, part, xpath, action, xml.


L3 : XML brut

Utilisez quand L2 ne peut pas exprimer ce que vous avez besoin. Aucune déclaration xmlns requise — les préfixes sont auto-enregistrés.

officecli raw <file> <part>                          # afficher le XML brut
officecli raw-set <file> <part> --xpath "..." --action replace --xml '<w:p>...</w:p>'
officecli add-part <file> <parent>                   # créer une nouvelle part de document (retourne rId)

actions raw-set : append, prepend, insertbefore, insertafter, replace, remove, setattr.

Exécutez officecli <format> raw pour les parts disponibles par format.


Pièges courants

Piège Approche correcte
--name "foo" ❌ Utilisez --prop name="foo" — tous les attributs passent par --prop
x=-3cm ❌ Les coordonnées négatives ne sont pas supportées. Utilisez x=0cm ou x=36cm
/shape[myname] ❌ L'indexation par nom n'est pas supportée. Utilisez l'index numérique : /shape[3]
Deviner les noms de propriétés ❌ Exécutez officecli <format> set <element> pour voir les noms exacts
Modifier un fichier ouvert ❌ Fermez d'abord le fichier dans PowerPoint/WPS
\n dans les chaînes shell ❌ Utilisez \\n pour les sauts de ligne dans --prop text="..."

Compétences spécialisées

Cette compétence couvre les bases de la CLI officecli. Pour les scénarios complexes, chargez la compétence dédiée pour de meilleurs résultats :

Scénario Compétence Version min. Quand l'utiliser
Documents Word officecli-docx v1.0.23 Créer, lire, éditer .docx — rapports, lettres, mémos, propositions
Articles académiques officecli-academic-paper v1.0.24 Articles de recherche, livres blancs avec TOC, équations, notes de bas de page, bibliographie
Présentations officecli-pptx v1.0.23 Créer, lire, éditer .pptx — présentations générales
Pitch decks officecli-pitch-deck v1.0.24 Decks d'investisseurs, lancements de produits, decks de vente avec graphiques et encadrés statistiques
Morph PPT morph-ppt v1.0.24 Présentations cinématographiques animées avec Morph
Excel officecli-xlsx v1.0.23 Créer, lire, éditer .xlsx — modèles financiers, trackers, formules
Tableaux de bord de données officecli-data-dashboard v1.0.24 Données CSV/tabulaires → tableaux de bord Excel avec cartes KPI, graphiques, sparklines

Comment charger : Demandez à votre outil IA d'activer la compétence par nom, ou chargez le fichier de compétence depuis skills/<skill-name>/SKILL.md.


Remarques

  • Les chemins sont basés sur 1 (convention XPath) : '/body/p[3]' = troisième paragraphe
  • --index est basé sur 0 (convention tableau) : --index 0 = première position
  • Après les modifications, vérifiez avec validate et/ou view issues
  • En cas de doute, exécutez officecli <format> <command> [element[.property]] au lieu de deviner

Skills similaires