Compétences libreoffice-writer
📄

libreoffice-writer

Risque faible ⚙️ Commandes externes📁 Accès au système de fichiers🔑 Variables d’environnement⚡ Contient des scripts

Automatiser les documents LibreOffice Writer

L'édition manuelle de documents prend du temps et est sujette aux erreurs. Cette skill automatise les opérations LibreOffice Writer via l'intégration UNO, permettant la création programmatique de documents, l'édition, la mise en forme et l'exportation.

Prend en charge: Claude Codex Code(CC)
🥉 74 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "libreoffice-writer". Créer un nouveau document avec un titre et exporter en PDF

Résultat attendu:

  • Document créé avec succès : /path/to/report.odt
  • Exporté en PDF : /path/to/report.pdf

Utilisation de "libreoffice-writer". Trouver et mettre en forme du texte dans un document existant

Résultat attendu:

  • Document ouvert : /path/to/draft.odt
  • Plage de texte formatée : gras, centré
  • Modifications enregistrées et document fermé

Utilisation de "libreoffice-writer". Appliquer un patch avec plusieurs opérations

Résultat attendu:

  • Patch analysé : 3 opérations
  • Opération 1 (replace_text) : succès
  • Opération 2 (format_text) : succès
  • Opération 3 (insert_table) : succès
  • Statut global : ok
  • Document persistant : true

Audit de sécurité

Risque faible
v2 • 3/19/2026

Static analysis flagged 175 patterns but evaluation confirms these are false positives. The skill legitimately uses subprocess to launch LibreOffice with hardcoded arguments, tempfile for secure temp directories, and importlib for module detection. All external command usage has no user input injection vectors. Risk is low due to filesystem and external command dependencies requiring LibreOffice installation.

14
Fichiers analysés
2,550
Lignes analysées
7
résultats
2
Total des audits
Problèmes à risque faible (3)
External Process Execution
subprocess.Popen launches LibreOffice soffice binary. All arguments are hardcoded strings with no user input injection. This is legitimate automation of installed software.
Temporary Directory Creation
Uses tempfile.mkdtemp() to create isolated profile directories for LibreOffice instances. Directories are cleaned up in finally blocks.
Environment Variable Access
Reads LIBREOFFICE_PROGRAM_PATH environment variable to locate UNO module. Value is used only for path resolution, not executed.

Facteurs de risque

⚙️ Commandes externes (1)
📁 Accès au système de fichiers (2)
🔑 Variables d’environnement (1)
⚡ Contient des scripts (2)

Score de qualité

64
Architecture
100
Maintenabilité
87
Contenu
24
Communauté
84
Sécurité
91
Conformité aux spécifications

Ce que vous pouvez construire

Génération automatisée de rapports

Générer des rapports standardisés en créant des documents, insérant du texte formaté et des tableaux, puis exportant vers PDF pour distribution.

Traitement de modèles de documents

Charger des modèles de documents, remplacer le texte des espaces réservés par du contenu dynamique, mettre à jour les tableaux avec de nouvelles données et exporter des versions personnalisées.

Opérations de documents par lots

Appliquer des modifications de formatage cohérentes sur plusieurs documents en utilisant des workflows de patch avec retour arrière atomique en cas d'échecs.

Essayez ces prompts

Créer et alimenter un document
Create a new LibreOffice Writer document at /path/to/report.odt. Insert a title "Monthly Report", add a section heading "Summary", then insert a paragraph describing this month's achievements. Export the final document to PDF.
Éditer avec un ciblage structuré
Open /path/to/draft.odt and find the sentence "Quarterly revenue grew significantly" that appears after "Financial Overview" and before "Next Steps". Make it bold and centered. Then insert a bulleted list after "Action Items" with three tasks: Review budget, Schedule meeting, Send updates.
Opérations sur tableaux avec données
Open the document at /path/to/data-report.odt. Insert a table with 4 rows and 3 columns named "Sales Data". Populate it with headers [Region, Q1, Q2] and data rows for North, South, East regions. Later update the Q2 values when new numbers arrive.
Flux de travail de patch atomique
Apply this patch to /path/to/manuscript.odt in atomic mode: First, replace all instances of "Draft" with "Final". Second, format the chapter titles bold with 14pt font. Third, insert a table of contents. If any operation fails, rollback all changes and report the error.

Bonnes pratiques

  • Toujours utiliser des chemins de fichiers absolus lors du travail avec les API Writer basées sur UNO
  • Ancrer les cibles de texte avec des phrases complètes ou des expressions au niveau du paragraphe, pas des mots isolés
  • Utiliser les limites before et after pour contraindre les recherches lorsque le texte peut apparaître plusieurs fois
  • Envelopper les opérations de session dans try/finally ou des gestionnaires de contexte pour garantir un nettoyage approprié
  • Tester les workflows de patch en mode best_effort avant de passer à atomique pour la production

Éviter

  • Utiliser des chemins relatifs - UNO nécessite des chemins de fichiers absolus pour toutes les opérations de document
  • Omettre le paramètre d'occurrence lorsque le même texte apparaît plusieurs fois dans un document
  • Appeler des méthodes de session après l'invocation de session.close()
  • Fournir du JSON malformé dans les éléments de patch ou les champs de données
  • S'attendre à ce que l'alignement de paragraphe s'applique uniquement au texte correspondancier plutôt qu'au paragraphe entier

Foire aux questions

Pourquoi cette skill nécessite-t-elle l'installation de LibreOffice ?
Cette skill utilise l'API UNO (Universal Network Objects) de LibreOffice pour interagir avec les documents Writer. UNO est l'interface d'automatisation native de LibreOffice, nécessitant une installation locale de LibreOffice avec les liaisons Python UNO.
Vers quels formats de fichiers puis-je exporter ?
La skill prend en charge l'exportation vers les formats PDF et DOCX prêts à l'emploi. Des formats supplémentaires peuvent être disponibles selon votre installation LibreOffice et la disponibilité des filtres.
Comment corriger 'ModuleNotFoundError: No module named uno' ?
Ajoutez le chemin Python de LibreOffice de votre système à PYTHONPATH. Sur Linux, c'est généralement /usr/lib/python3/dist-packages. Définissez PYTHONPATH pour inclure à la fois le répertoire des scripts de la skill et les modules Python de LibreOffice.
Quelle est la différence entre les modes de patch atomique et best-effort ?
Le mode atomique s'arrête à la première erreur, réinitialise la session et ne persiste rien. Le mode best_effort continue toutes les opérations et enregistre celles qui ont réussi, persistant les modifications réussies même si certaines opérations échouent.
Puis-je éditer des documents actuellement ouverts dans LibreOffice ?
Non. Les documents doivent être fermés avant l'édition via UNO. Tenter d'ouvrir un document déjà verrouillé par une autre instance de LibreOffice échouera ou provoquera des conflits.
Comment cibler un texte spécifique lorsque la même phrase apparaît plusieurs fois ?
Utilisez le champ occurrence pour spécifier quelle correspondance cibler (indexée à partir de 0), ou ajoutez des limites after et before pour réduire la fenêtre de recherche à une section spécifique du document.

Détails du développeur

Structure de fichiers