Aller au contenu principal

Export Excel

Le problème​

Les opérateurs veulent un XLSX de la vue filtrée courante (ou d'un agrégat fixe) — pour analyse hors ligne, pour conformité, pour transmission à quelqu'un qui n'a pas accès au système.

Le modèle​

Le framework offre trois niveaux d'export Excel, par ordre croissant d'effort :

NiveauCe que vous faitesCe qui est produit
1. GratuitRien.Chaque écran a un bouton ⬇ Exporter qui télécharge la vue filtrée courante en <screen>.xlsx.
2. PersonnaliséChoisir les colonnes qui apparaissent dans l'export.Même bouton, mais avec les colonnes que vous voulez — y compris les colonnes masquées par défaut dans la grille.
3. Planifié / modèleAjouter un job Nomaflow + une étape HTTP qui appelle l'endpoint d'export et envoie le résultat par email.Un email nocturne avec le XLSX en pièce jointe.

Niveau 1 — l'export par défaut​

Il est déjà là. Ouvrez n'importe quel écran, cliquez sur ⬇ Exporter dans la barre d'outils, le XLSX se télécharge.

L'export respecte :

  • Chaque filtre actif (le fichier a les mêmes lignes que la grille à l'écran).
  • L'ordre de tri courant.
  • Les colonnes visibles et les colonnes masquées mais disponibles dans le catalogue avec la bascule Inclure dans l'export activée.
  • La locale de l'utilisateur (formats de date, séparateurs de nombres, langue des libellés).

Rien à configurer sauf si le niveau 2 s'applique.

Niveau 2 — personnaliser la liste de colonnes​

Par défaut, l'export contient chaque colonne visible de la grille. Pour modifier :

  1. Ouvrez Paramètres → Écrans → <votre écran> → onglet Grille.
  2. Pour chaque colonne, l'éditeur a une bascule Visible et une bascule Inclure dans l'export. Elles sont indépendantes.
  3. Activez Inclure dans l'export pour les colonnes qui doivent atterrir dans le XLSX même si elles sont masquées dans la grille (cas typique : id, created_by, updated_at).

Enregistrer et recharger. Le prochain clic ⬇ Exporter reflète le nouvel ensemble de colonnes.

Niveau 3 — un rapport Excel planifié​

Pour un rapport récurrent — par ex. « chaque lundi à 08:00, envoyer les ventes de la semaine précédente en XLSX à l'équipe de direction » — combinez un job Nomaflow + une étape HTTP.

Construire le job​

Paramètres → Jobs → + Nouveau job :

ChampValeur
Nomweekly-sales-export
Planification0 8 * * 1 (Lundis à 08:00)
Fuseau horaireEurope/Paris

Étape 1 — rendre le XLSX​

Type : HTTP. Variante : Connector endpoint.

ChampValeur
Connecteurliberty-self (la surface REST du framework lui-même)
Endpointscreens.export
Paramètresapp = crm, screen_id = deals, from_date = ${week.monday}, to_date = ${week.sunday}

L'endpoint renvoie un XLSX en application/vnd.openxmlformats-officedocument.spreadsheetml.sheet. L'étape l'enregistre comme un blob binaire.

Étape 2 — envoyer le XLSX par email​

Type : HTTP. Variante : Raw URL.

ChampValeur
MéthodePOST
URLVotre passerelle HTTP de relais SMTP, ou utilisez la configuration Paramètres → Framework → Notifications → SMTP
Corps{ "to": "ops@example.com", "subject": "Ventes hebdomadaires", "attachment": "${previous_step.body}" }

Enregistrer et tester​

Cliquez sur ▶ Exécuter maintenant dans le constructeur de job pour vérifier sans attendre lundi. L'historique d'exécution montre les deux étapes, le blob attaché, la réponse du serveur d'email.

Variantes​

Vous voulez…Faites ceci
Un export agrégé, pas un dump ligne à ligneÉcrivez une vue SQL (vw_weekly_sales) qui fait l'agrégation, construisez un connecteur + un écran au-dessus de la vue, désactivez Editable sur l'écran, exportez les lignes de la vue.
Un PDF au lieu d'un XLSXLes écrans n'exportent pas nativement en PDF ; la feuille de style d'impression du framework gère du HTML imprimable. Pour un vrai PDF, le tableau de bord crm-pipeline-overview a un bouton ⬇ Exporter PDF par défaut.
Un CSV au lieu d'un XLSXL'endpoint accepte ?format=csv — même job, paramètre différent.
Que le destinataire télécharge depuis un lien plutôt qu'une pièce jointeL'étape 1 reste la même. L'étape 2 devient une étape qui téléverse le blob vers S3 / Azure / Google Drive et envoie le lien par email. Étape Python personnalisée.

Pour aller plus loin​