# Send Xlsx Pro to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "xlsx-pro",
    "name": "Xlsx Pro",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/ricobaboule/xlsx-pro",
    "canonicalUrl": "https://clawhub.ai/ricobaboule/xlsx-pro",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/xlsx-pro",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=xlsx-pro",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/office/__init__.py",
      "scripts/office/soffice.py",
      "scripts/recalc.py"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "xlsx-pro",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T17:55:41.048Z",
      "expiresAt": "2026-05-08T17:55:41.048Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=xlsx-pro",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=xlsx-pro",
        "contentDisposition": "attachment; filename=\"xlsx-pro-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "xlsx-pro"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/xlsx-pro"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/xlsx-pro",
    "downloadUrl": "https://openagent3.xyz/downloads/xlsx-pro",
    "agentUrl": "https://openagent3.xyz/skills/xlsx-pro/agent",
    "manifestUrl": "https://openagent3.xyz/skills/xlsx-pro/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/xlsx-pro/agent.md"
  }
}
```
## Documentation

### TL;DR

Génère/édite des fichiers Excel avec des formules (pas des valeurs hardcodées).
Optionnel: recalcul via LibreOffice headless + détection d’erreurs Excel.
Livrable attendu: un fichier tableur propre (XLSX/XLSM/CSV/TSV).

### Dépendances Python

pip install openpyxl pandas xlrd xlwt

### LibreOffice (pour recalcul des formules)

# Ubuntu/Debian
sudo apt-get install libreoffice-calc libreoffice-common

### Police Professionnelle

Utiliser une police cohérente (Arial, Times New Roman) sauf instruction contraire

### Zéro Erreur de Formule

Tout fichier Excel DOIT être livré SANS erreurs (#REF!, #DIV/0!, #VALUE!, #N/A, #NAME?)

### Préservation des Templates

Respecter EXACTEMENT le format et style existants lors de modifications
Les conventions du template préexistant ont TOUJOURS priorité

### Code Couleur (Standards Industrie)

Texte bleu (RGB: 0,0,255) : Inputs hardcodés, valeurs modifiables
Texte noir (RGB: 0,0,0) : TOUTES les formules et calculs
Texte vert (RGB: 0,128,0) : Liens vers autres feuilles du même classeur
Texte rouge (RGB: 255,0,0) : Liens externes vers autres fichiers
Fond jaune (RGB: 255,255,0) : Hypothèses clés ou cellules à mettre à jour

### Formatage des Nombres

Années : Format texte ("2024" pas "2,024")
Devises : Format $#,##0 ; spécifier unités dans les en-têtes ("Revenue ($mm)")
Zéros : Afficher comme "-" (format: "$#,##0;($#,##0);-")
Pourcentages : Format 0.0% par défaut
Multiples : Format 0.0x (EV/EBITDA, P/E)
Négatifs : Parenthèses (123) pas moins -123

### CRITIQUE : Utiliser des Formules, PAS des Valeurs Hardcodées

TOUJOURS utiliser des formules Excel au lieu de calculer en Python et hardcoder.

### ❌ MAUVAIS - Hardcoding

# Mauvais: Calcul Python puis hardcode
total = df['Sales'].sum()
sheet['B10'] = total  # Hardcode 5000

# Mauvais: Taux de croissance calculé en Python
growth = (df.iloc[-1]['Revenue'] - df.iloc[0]['Revenue']) / df.iloc[0]['Revenue']
sheet['C5'] = growth  # Hardcode 0.15

### ✅ CORRECT - Formules Excel

# Bon: Laisser Excel calculer
sheet['B10'] = '=SUM(B2:B9)'

# Bon: Taux de croissance en formule Excel
sheet['C5'] = '=(C4-C2)/C2'

# Bon: Moyenne en fonction Excel
sheet['D20'] = '=AVERAGE(D2:D19)'

### Workflow Standard

Choisir l'outil : pandas pour données, openpyxl pour formules/formatage
Créer/Charger : Nouveau classeur ou fichier existant
Modifier : Données, formules, formatage
Sauvegarder : Écrire le fichier
Recalculer (OBLIGATOIRE si formules) : python scripts/recalc.py output.xlsx
Vérifier et corriger les erreurs détectées

### Lecture et Analyse avec pandas

import pandas as pd

# Lire Excel
df = pd.read_excel('file.xlsx')  # Première feuille par défaut
all_sheets = pd.read_excel('file.xlsx', sheet_name=None)  # Dict de toutes les feuilles

# Analyser
df.head()      # Aperçu
df.info()      # Info colonnes
df.describe()  # Statistiques

# Écrire
df.to_excel('output.xlsx', index=False)

### Création de Fichiers Excel

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment

wb = Workbook()
sheet = wb.active

# Données
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'
sheet.append(['Row', 'of', 'data'])

# Formule
sheet['B2'] = '=SUM(A1:A10)'

# Formatage
sheet['A1'].font = Font(bold=True, color='FF0000')
sheet['A1'].fill = PatternFill('solid', start_color='FFFF00')
sheet['A1'].alignment = Alignment(horizontal='center')

# Largeur colonne
sheet.column_dimensions['A'].width = 20

wb.save('output.xlsx')

### Édition de Fichiers Existants

from openpyxl import load_workbook

# Charger fichier existant
wb = load_workbook('existing.xlsx')
sheet = wb.active  # ou wb['NomFeuille']

# Parcourir les feuilles
for sheet_name in wb.sheetnames:
    sheet = wb[sheet_name]
    print(f"Feuille: {sheet_name}")

# Modifier
sheet['A1'] = 'Nouvelle Valeur'
sheet.insert_rows(2)  # Insérer ligne
sheet.delete_cols(3)  # Supprimer colonne

# Ajouter feuille
new_sheet = wb.create_sheet('NouvelleFeuille')
new_sheet['A1'] = 'Data'

wb.save('modified.xlsx')

### Recalcul des Formules

Les fichiers créés par openpyxl contiennent les formules comme chaînes mais pas les valeurs calculées. Utiliser le script recalc.py :

python scripts/recalc.py <fichier_excel> [timeout_secondes]

Le script :

Configure automatiquement la macro LibreOffice au premier lancement
Recalcule toutes les formules
Scanne TOUTES les cellules pour erreurs Excel
Retourne JSON avec détails et emplacements des erreurs

### Interprétation de la Sortie

{
  "status": "success",           // ou "errors_found"
  "total_errors": 0,             // Nombre total d'erreurs
  "total_formulas": 42,          // Nombre de formules
  "error_summary": {             // Présent si erreurs
    "#REF!": {
      "count": 2,
      "locations": ["Sheet1!B5", "Sheet1!C10"]
    }
  }
}

### Vérifications Essentielles

Tester 2-3 références : Vérifier qu'elles tirent les bonnes valeurs
 Mapping colonnes : Confirmer correspondance (colonne 64 = BL, pas BK)
 Offset lignes : Excel est 1-indexé (DataFrame row 5 = Excel row 6)

### Pièges Courants

Gestion NaN : Vérifier valeurs nulles avec pd.notna()
 Colonnes éloignées : Données FY souvent en colonnes 50+
 Correspondances multiples : Chercher toutes les occurrences
 Division par zéro : Vérifier dénominateurs (#DIV/0!)
 Références invalides : Vérifier que toutes pointent vers cellules existantes (#REF!)
 Références inter-feuilles : Format correct (Sheet1!A1)

### Sélection de Bibliothèque

pandas : Analyse de données, opérations en masse, export simple
openpyxl : Formatage complexe, formules, fonctionnalités Excel spécifiques

### Avec openpyxl

Indices de cellules en base 1 (row=1, column=1 = cellule A1)
data_only=True pour lire valeurs calculées
Attention : Sauvegarder après data_only=True remplace définitivement les formules par les valeurs
Pour gros fichiers : read_only=True ou write_only=True

### Avec pandas

Spécifier types de données : pd.read_excel('file.xlsx', dtype={'id': str})
Pour gros fichiers, colonnes spécifiques : usecols=['A', 'C', 'E']
Gestion des dates : parse_dates=['date_column']

### Style de Code

IMPORTANT : Code Python minimal et concis, sans commentaires superflus.

Pour les fichiers Excel :

Commenter les cellules avec formules complexes
Documenter les sources des données hardcodées
Inclure notes pour calculs clés
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ricobaboule
- Version: 1.0.1
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T17:55:41.048Z
- Expires at: 2026-05-08T17:55:41.048Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/xlsx-pro)
- [Send to Agent page](https://openagent3.xyz/skills/xlsx-pro/agent)
- [JSON manifest](https://openagent3.xyz/skills/xlsx-pro/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/xlsx-pro/agent.md)
- [Download page](https://openagent3.xyz/downloads/xlsx-pro)