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 --indexest basé sur 0 (convention tableau) :--index 0= première position- Après les modifications, vérifiez avec
validateet/ouview issues - En cas de doute, exécutez
officecli <format> <command> [element[.property]]au lieu de deviner