Français
Excel
Lit et complète un classeur Excel posé sur SharePoint ou sur votre OneDrive.
Le nœud Excel lit et complète un classeur Excel rangé sur un site SharePoint ou sur le OneDrive du membre : le classeur de suivi qu’une équipe tient à la main et qu’un workflow complète. Ses trois gestes quotidiens : ajouter une ligne quand un nouveau dossier arrive, mettre à jour la ligne d’un dossier quand un jalon est atteint, et ajouter un commentaire horodaté dans une cellule sans écraser ce qui s’y trouve. C’est un seul nœud avec une ressource (resource) et, pour chaque ressource, une action.
La première question, « Où est le classeur » (location), décide de l’accès nécessaire :
sharepoint(défaut) : la capacité SharePoint, renseignée dans le champ « Compte Microsoft » (credential) ; le classeur se choisit via « Site », « Bibliothèque de documents » et « Classeur ». Cet accès demande en général qu’un administrateur Microsoft 365 donne son consentement une fois pour l’organisation.onedrive: la capacité Fichiers (OneDrive), renseignée dans le second champ « Compte Microsoft » (credentialFiles) ; le classeur se choisit dans « Classeur » (workbookFile) parmi les fichiers du OneDrive du membre.
Les deux se connectent dans Connexions ; voir Microsoft. La liste des classeurs propose les fichiers .xlsx, .xlsm et .xltx. Pour une feuille Google, utilisez Sheets — ajouter une ligne ; pour une table tenue dans le produit, voir Tables.
En bref
- Type :
excel.api· version 1 - Catégorie : Actions
- Nature : Étape — s’exécute pendant une exécution
- Effet : Écrit à l’extérieur (
external_write) — écrit hors de Mankomail ; décrit au lieu d’être fait pendant un essai - Exige un mail porteur : Non
- Connexion : Microsoft (capacité
sharepoint), Microsoft (capacitéfiles) - Entrées :
main - Sorties :
main
Connexion
Ce nœud exige une connexion Microsoft avec la capacité sharepoint accordée.
Ce nœud exige une connexion Microsoft avec la capacité files accordée.
Paramètres
location
Où est le classeur
- Type : Un choix (
options) - Requis : Oui
- Défaut :
sharepoint - Options :
sharepoint— Sur un site SharePoint : Le cas d’un classeur partagé par l’équipe. Demande la connexion SharePoint.onedrive— Sur mon OneDrive : Un classeur personnel. Demande la connexion OneDrive (Fichiers).
credential
Compte Microsoft — Le compte dont on emprunte les droits SharePoint. Cette autorisation demande souvent l’accord d’un administrateur Microsoft 365.
- Type : Connexion (
credential) - Requis : Non
- Défaut :
""(vide) - Affiché quand :
locationvautsharepoint
credentialFiles
Compte Microsoft — Le compte dont on utilise le OneDrive. Connectez-le depuis Connexions.
- Type : Connexion (
credential) - Requis : Non
- Défaut :
""(vide) - Affiché quand :
locationvautonedrive
site
Site — Le site qui héberge la bibliothèque du classeur.
- Type : Ressource distante (
resourceLocator) - Requis : Non
- Défaut :
{"mode":"id","value":""} - Façons de choisir : dans une liste, saisir un identifiant, coller une URL (
sharepoint.site) - Listé avec la connexion de :
credential - Affiché quand :
locationvautsharepoint
library
Bibliothèque de documents
- Type : Ressource distante (
resourceLocator) - Requis : Non
- Défaut :
{"mode":"id","value":""} - Façons de choisir : dans une liste, saisir un identifiant (
sharepoint.library) - Listé à l’intérieur de :
site - Listé avec la connexion de :
credential - Affiché quand :
locationvautsharepoint
workbook
Classeur — Le fichier .xlsx à lire ou à compléter.
- Type : Ressource distante (
resourceLocator) - Requis : Non
- Défaut :
{"mode":"id","value":""} - Façons de choisir : dans une liste, saisir un identifiant (
excel.workbook) - Listé à l’intérieur de :
library - Listé avec la connexion de :
credential - Affiché quand :
locationvautsharepoint
workbookFile
Classeur — Le fichier .xlsx de votre OneDrive.
- Type : Ressource distante (
resourceLocator) - Requis : Non
- Défaut :
{"mode":"id","value":""} - Façons de choisir : dans une liste, saisir un identifiant (
excel.onedrive_workbook) - Listé avec la connexion de :
credentialFiles - Affiché quand :
locationvautonedrive
resource
Sur quoi on agit
- Type : Un choix (
options) - Requis : Oui
- Défaut :
table - Options :
sheet— Onglet : Les onglets du classeur.table— Tableau : Un tableau nommé, avec ses en-têtes : la forme qu’a presque toujours un suivi.range— Plage : Un rectangle de cellules (A1:D20) — quand il n’y a pas de tableau.cell— Cellule : Une cellule précise : une date de jalon, un commentaire horodaté.
sheetOperation
Action
- Type : Un choix (
options) - Requis : Oui
- Défaut :
sheet.list - Options :
sheet.list— Lister les onglets : Les onglets du classeur, masqués compris (visibleles distingue), dans leur ordre — qui est une information.
- Affiché quand :
resourcevautsheet
tableOperation
Action
- Type : Un choix (
options) - Requis : Oui
- Défaut :
table.add - Options :
table.list— Lister les tableaux : Les tableaux du classeur et leurs en-têtes.table.read— Lire les lignes : Les lignes, en colonnes nommées, avec pagination.table.add— Ajouter une ligne : Ajoute à la fin. Avec une colonne clé, une nouvelle tentative de l’étape n’ajoute pas de doublon.table.update— Mettre à jour une ligne : Retrouve la ligne par la valeur d’une colonne clé, puis écrit les colonnes citées.table.delete— Supprimer une ligne : Retire la ligne qui porte cette valeur.
- Affiché quand :
resourcevauttable
rangeOperation
Action
- Type : Un choix (
options) - Requis : Oui
- Défaut :
range.read - Options :
range.read— Lire une plage : Laissez l’adresse vide pour lire toute la zone utilisée de l’onglet.range.write— Écrire une plage : L’adresse est obligatoire : écrire « quelque part » n’est pas une option.
- Affiché quand :
resourcevautrange
cellOperation
Action
- Type : Un choix (
options) - Requis : Oui
- Défaut :
cell.append - Options :
cell.read— Lire une cellule : Rend son contenu.cell.write— Écrire une cellule : Remplace le contenu de la cellule.cell.append— Ajouter à une cellule : Ajoute à la suite de ce qui s’y trouve déjà — « une action = un commentaire horodaté ».
- Affiché quand :
resourcevautcell
sheet
Onglet
- Type : Ressource distante (
resourceLocator) - Requis : Non
- Défaut :
{"mode":"id","value":""} - Façons de choisir : dans une liste, saisir un identifiant (
excel.sheet) - Listé à l’intérieur de :
workbook - Listé avec la connexion de :
credential - Affiché quand :
locationvautsharepointet (resourcevautrangeouresourcevautcellou (resourcevauttableettableOperationvaut l’une detable.list))
sheetName
Onglet — Le nom de l’onglet, tel qu’il apparaît en bas du classeur.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 200 caractères au plus
- Exemple :
Suivi - Affiché quand :
locationvautonedriveet (resourcevautrangeouresourcevautcellou (resourcevauttableettableOperationvaut l’une detable.list)) - Expressions :
{{ }}accepté
table
Tableau
- Type : Ressource distante (
resourceLocator) - Requis : Non
- Défaut :
{"mode":"id","value":""} - Façons de choisir : dans une liste, saisir un identifiant (
excel.table) - Listé à l’intérieur de :
workbook - Listé avec la connexion de :
credential - Affiché quand :
locationvautsharepointet (resourcevauttableettableOperationvaut l’une detable.read,table.add,table.update,table.delete)
tableName
Tableau — Le nom du tableau (onglet Création → Nom du tableau, dans Excel).
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 200 caractères au plus
- Exemple :
Tableau1 - Affiché quand :
locationvautonedriveet (resourcevauttableettableOperationvaut l’une detable.read,table.add,table.update,table.delete) - Expressions :
{{ }}accepté
values
Colonnes à écrire — La clé est l’en-tête de la colonne, tel qu’il est écrit dans le tableau. Les colonnes absentes gardent leur valeur.
- Type : Paires clé / valeur (
keyValue) - Requis : Non
- Défaut :
[] - Affiché quand :
resourcevauttableettableOperationvaut l’une detable.add,table.update - Expressions :
{{ }}accepté
keyColumn
Colonne de rapprochement — L’en-tête qui identifie la ligne — « N° de dossier ». Sur un ajout, elle sert de garde-fou contre les doublons ; laissée vide, une nouvelle tentative de l’étape ajouterait une seconde ligne.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 200 caractères au plus
- Exemple :
N° de dossier - Affiché quand :
resourcevauttableettableOperationvaut l’une detable.add,table.update,table.delete - Expressions :
{{ }}accepté
keyValue
Valeur recherchée — Accepte des expressions {{ }} : {{ data.extract_1.dossier }}.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 500 caractères au plus
- Exemple :
{{ data.extract_1.dossier }} - Affiché quand :
resourcevauttableettableOperationvaut l’une detable.update,table.delete - Expressions :
{{ }}accepté
address
Adresse — Une plage (A1:D20) ou une cellule (C12). Sur une lecture de plage, laissée vide, toute la zone utilisée de l’onglet est rendue.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 100 caractères au plus
- Exemple :
C12 - Affiché quand :
resourcevautrangeouresourcevautcell - Expressions :
{{ }}accepté
rows
Valeurs — Une ligne par ligne du tableur, cellules séparées par des points-virgules ou des tabulations. Un tableau JSON ([["a","b"],["c","d"]]) est aussi accepté.
- Type : Texte long (
text) - Requis : Non
- Défaut :
""(vide) - 100000 caractères au plus
- Exemple :
Dupont;2026-0412;Ouvert - Affiché quand :
resourcevautrangeetrangeOperationvaut l’une derange.write - Expressions :
{{ }}accepté
value
Valeur — Accepte des expressions {{ }}. Excel interprète les dates et les nombres selon le format de la cellule.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 32000 caractères au plus
- Affiché quand :
resourcevautcelletcellOperationvaut l’une decell.write - Expressions :
{{ }}accepté
text
Texte à ajouter — Accepte des expressions {{ }} : {{ now }} — {{ data.categorize_1.category }}. Ce qui est déjà dans la cellule est conservé.
- Type : Texte long (
text) - Requis : Non
- Défaut :
""(vide) - 4000 caractères au plus
- Affiché quand :
resourcevautcelletcellOperationvaut l’une decell.append - Expressions :
{{ }}accepté
separator
Séparateur
- Type : Un choix (
options) - Requis : Non
- Défaut :
newline - Options :
newline— Une nouvelle ligne : Le cas d’un historique de commentaires.space— Une espace : Pour rester sur une seule ligne.semicolon— Un point-virgule : Pour une liste sur une seule ligne.
- Affiché quand :
resourcevautcelletcellOperationvaut l’une decell.append
limit
Nombre maximum de lignes
- Type : Nombre (
number) - Requis : Non
- Défaut :
50 - Nombre entier, de 1 à 500
- Affiché quand :
resourcevauttableettableOperationvaut l’une detable.read
offset
Lignes à sauter — La pagination : 0 pour la première page, puis le total déjà lu.
- Type : Nombre (
number) - Requis : Non
- Défaut :
0 - Nombre entier, de 0 à 1000000
- Affiché quand :
resourcevauttableettableOperationvaut l’une detable.read
session
Ouvrir une session de classeur — Coché (recommandé), les appels de l’étape partagent une session : c’est plus rapide, et ils voient tous le même état du classeur.
- Type : Oui / non (
boolean) - Requis : Non
- Défaut :
true
Sorties
main
Données produites
Ce que ce nœud ajoute aux données de l’exécution, et comment le lire dans une expression. <step> désigne la clé de l’étape : le nom du nœud ramené à un identifiant (voir Données et expressions).
{{ data.<step>.sheets }}—array of { id, name, position, visible }. sheet.list : les onglets du classeur, dans leur ordre.visiblevautfalsepour un onglet masqué.{{ data.<step>.names }}—array of string. sheet.list : les noms des onglets, dans l’ordre.{{ data.<step>.tables }}—array of { id, name, worksheet?, headers }. table.list : les tableaux nommés, chacun avec sa ligne d’en-têtes.worksheetn’est présent que si un onglet a été choisi.{{ data.<step>.headers }}—array of string. table.read : les en-têtes de colonne du tableau, dans l’ordre.{{ data.<step>.rows }}—array of object. table.read : les lignes lues, chacune sous forme d’objet dont les clés sont les en-têtes de colonne et les valeurs les textes des cellules.{{ data.<step>.rows.0.<header> }}—string. table.read : la valeur d’une colonne dans la première ligne lue. Accessible ainsi seulement si l’en-tête ne contient que des lettres, des chiffres,_et$.{{ data.<step>.truncated }}—boolean. table.read :truequand il reste des lignes après celles rendues.{{ data.<step>.nextOffset }}—number. table.read : la valeur à mettre dans « Lignes à sauter » pour lire la page suivante.{{ data.<step>.added }}—number. table.add :1quand la ligne a été ajoutée,0quand la valeur de la clé figurait déjà dans le tableau.{{ data.<step>.duplicates }}—number. table.add :1quand la ligne n’a pas été ajoutée parce que la colonne de rapprochement contenait déjà sa valeur,0sinon.{{ data.<step>.found }}—boolean. table.update, table.delete :truequand une ligne portant la valeur de la clé a été trouvée puis modifiée ou supprimée,falsequand aucune ne l’a été (rien n’a été écrit).{{ data.<step>.index }}—number. table.update, table.delete : la position de la ligne dans le tableau (0est la première ligne sous les en-têtes).-1quand rien n’a été trouvé et en essai.{{ data.<step>.address }}—string. range.read, range.write, cell.read, cell.write, cell.append : l’adresse lue ou écrite, par exempleSuivi!A1:D20ouC12.{{ data.<step>.values }}—array of array of string. range.read : les textes des cellules, ligne par ligne.values.0.1est la ligne 1, colonne 2 de la plage.{{ data.<step>.rowCount }}—number. range.read : le nombre de lignes de la plage.{{ data.<step>.columnCount }}—number. range.read : le nombre de colonnes de la plage.{{ data.<step>.cells }}—number. range.write : le nombre de cellules écrites.{{ data.<step>.value }}—string. cell.read : le contenu de la cellule. cell.write : la valeur écrite. cell.append : tout le contenu de la cellule après l’ajout.{{ data.<step>.count }}—number. sheet.list, table.list, table.read : le nombre d’entrées rendues.{{ data.<step>.summary }}—string. Une phrase lisible qui décrit ce que l’étape a fait.{{ data.<step>.simulated }}—boolean.truequand l’étape s’est jouée en essai et que l’écriture n’a été que décrite — le même champ que sur les nœuds Google et Outlook. Toujoursfalsepour une lecture.
Ressources et actions
Renseignez resource, puis le paramètre d’action de cette ressource. Sur SharePoint, l’onglet et le tableau se choisissent dans des listes (sheet, table) ; sur OneDrive, vous saisissez leur nom (sheetName, tableName).
| Ressource | Paramètre d’action | Valeur | Champs utilisés | Données produites |
|---|---|---|---|---|
sheet | sheetOperation | sheet.list | — | sheets, count, names |
table | tableOperation | table.list | onglet (facultatif) | tables, count |
table | tableOperation | table.read | tableau, limit, offset | headers, rows, count, truncated, nextOffset |
table | tableOperation | table.add | tableau, values, keyColumn | added, duplicates |
table | tableOperation | table.update | tableau, keyColumn, keyValue, values | found, index |
table | tableOperation | table.delete | tableau, keyColumn, keyValue | found, index |
range | rangeOperation | range.read | onglet, address | address, values, rowCount, columnCount |
range | rangeOperation | range.write | onglet, address, rows | address, cells |
cell | cellOperation | cell.read | onglet, address | address, value |
cell | cellOperation | cell.write | onglet, address, value | address, value |
cell | cellOperation | cell.append | onglet, address, text, separator | address, value |
- Les tableaux d’abord. Un suivi est presque toujours un tableau nommé (onglet Création › Nom du tableau, dans Excel). Les actions sur un tableau désignent une ligne par la valeur d’une colonne, jamais par un numéro de ligne, car un numéro change dès que quelqu’un trie le tableau.
table.readrend au plus « Nombre maximum de lignes » (1 à 500, 50 par défaut) après « Lignes à sauter » ; lisez la page suivante avec « Lignes à sauter » égal ànextOffset.table.addajoute une ligne à la fin. Dans « Colonnes à écrire » (values), chaque clé est un en-tête de colonne écrit exactement comme dans le tableau ; les colonnes omises restent vides, et une clé qui ne correspond à aucun en-tête est ignorée. Avec une « Colonne de rapprochement », la ligne n’est ajoutée que si sa valeur pour cette colonne ne figure pas déjà dans le tableau.table.updatecherche la première ligne dont la « Colonne de rapprochement » vaut la « Valeur recherchée », puis écrit les colonnes données ; les autres gardent leur valeur.table.deletesupprime cette ligne. Quand aucune ligne ne correspond, rien n’est écrit etfoundvautfalse: l’étape n’échoue pas.range.readlit un rectangle (A1:D20) ; avec « Adresse » vide, il lit toute la zone utilisée de l’onglet.range.writeexige une adresse : « Valeurs » (rows) prend une ligne par ligne du tableur, cellules séparées par des points-virgules ou des tabulations, ou un tableau JSON comme[["a","b"],["c","d"]].cell.writeremplace le contenu d’une cellule.cell.appendajoute « Texte à ajouter » après ce que la cellule contient déjà, séparé par une nouvelle ligne (newline, défaut), une espace (space) ou;(semicolon).- Session de classeur. « Ouvrir une session de classeur » (activé par défaut) fait partager une session aux appels de l’étape : c’est plus rapide, et ils voient tous le même état du classeur. La session est refermée à la fin de l’étape.
Exemple
Un suivi des ventes vit sur le site SharePoint Ventes, dans un tableau Suivi dont les en-têtes comprennent Dossier, Client, Statut et Date de signature. Une étape Extraire nommée Extraire lit le numéro de dossier et le client.
Étape Nouveau dossier, à l’arrivée d’un nouveau dossier :
location: sharepoint
site: (mode URL) https://contoso.sharepoint.com/sites/Ventes
library: (mode liste) Documents
workbook: (mode liste) Suivi des ventes.xlsx
resource: table
tableOperation: table.add
table: (mode liste) Suivi
values:
Dossier: {{ data.extraire.dossier }}
Client: {{ data.extraire.client }}
Statut: Ouvert
keyColumn: DossierDonnées : { "added": 1, "duplicates": 0 }. Si le même dossier revient, rien n’est ajouté et les données sont { "added": 0, "duplicates": 1 }.
Étape Signé, à l’arrivée de la confirmation de signature :
resource: table
tableOperation: table.update
table: (mode liste) Suivi
keyColumn: Dossier
keyValue: {{ data.extraire.dossier }}
values:
Statut: Signé
Date de signature: {{ data.extraire.date }}Données : { "found": true, "index": 41 }.
Conseils
- Nouvelles tentatives.
table.update,range.writeetcell.writeréécrivent la même chose à la nouvelle tentative, ce qui est sans dégât.table.addn’est protégé qu’avec une « Colonne de rapprochement » : sans elle, une nouvelle tentative ajoute une seconde ligne.cell.appendn’ajoute rien si la cellule se termine déjà exactement par le même texte, si bien qu’une nouvelle tentative n’ajoute rien ; la contrepartie est qu’ajouter deux fois de suite exactement le même texte est aussi ignoré, ce qu’un horodatage dans le texte évite. - Clés uniques. La mise à jour et la suppression agissent sur la première ligne qui correspond. Gardez la colonne de rapprochement unique : avec deux lignes partageant une clé, un
table.deleteretenté supprimerait la seconde. - Noms exacts. Les en-têtes de colonne et les valeurs de clé sont comparés exactement, casse comprise (seuls les espaces de bord de « Colonne de rapprochement » et de « Valeur recherchée » sont retirés). Une colonne de rapprochement qui n’est pas un en-tête du tableau échoue avec
microsoft.rejected. La recherche d’une clé s’arrête après 5 000 lignes (microsoft.rejected) : filtrez en amont ou scindez le tableau. - Formules dans une ligne mise à jour.
table.updateréécrit toute la ligne avec les valeurs qu’il vient de lire, plus les vôtres. Une cellule de cette ligne qui contenait une formule est réécrite avec sa valeur affichée. - Valeurs saisies. Excel interprète dates et nombres selon le format de la cellule, comme une saisie à la main.
- Taille d’une plage. Pour
range.write, donnez une adresse qui a autant de lignes et de colonnes que le bloc de valeurs ; Excel refuse un écart (microsoft.rejected). - Champs manquants. Un classeur, un onglet ou un tableau absent, ou des « Colonnes à écrire », « Valeurs », « Adresse », « Colonne de rapprochement », « Valeur recherchée » ou « Texte à ajouter » vides échouent avec
node_invalid_param, qui nomme le champ. Sur SharePoint, un classeur sans bibliothèque de documents donnemicrosoft.rejected. - Essais. En essai, les lectures s’exécutent réellement (onglets, tableaux, lignes, plages, cellules). Les écritures sont seulement décrites :
table.addannonce la ligne comme ajoutée sans vérifier les doublons,table.updateettable.deleteannoncentfound: trueavecindex: -1, etcell.appendlit réellement la cellule et rend le contenu qu’elle aurait. - Erreurs.
credential.capability_missing: la capacité qui correspond à « Où est le classeur » (SharePoint ou Fichiers) n’est pas connectée pour le membre qui exécute le workflow.microsoft.locked: le classeur est verrouillé par un autre éditeur ; retenté automatiquement.microsoft.access_denied: reconnectez le compte ou vérifiez les droits sur le site.microsoft.not_found: le classeur, l’onglet ou le tableau n’existe pas.microsoft.unavailableest retenté automatiquement. Voir Gestion des erreurs.