Skip to content

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 : location vaut sharepoint

credentialFiles ​

Compte Microsoft — Le compte dont on utilise le OneDrive. Connectez-le depuis Connexions.

  • Type : Connexion (credential)
  • Requis : Non
  • Défaut : "" (vide)
  • Affiché quand : location vaut onedrive

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 : location vaut sharepoint

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 : location vaut sharepoint

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 : location vaut sharepoint

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 : location vaut onedrive

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 (visible les distingue), dans leur ordre — qui est une information.
  • Affiché quand : resource vaut sheet

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 : resource vaut table

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 : resource vaut range

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 : resource vaut cell

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 : location vaut sharepoint et (resource vaut range ou resource vaut cell ou (resource vaut table et tableOperation vaut l’une de table.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 : location vaut onedrive et (resource vaut range ou resource vaut cell ou (resource vaut table et tableOperation vaut l’une de table.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 : location vaut sharepoint et (resource vaut table et tableOperation vaut l’une de table.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 : location vaut onedrive et (resource vaut table et tableOperation vaut l’une de table.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 : resource vaut table et tableOperation vaut l’une de table.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 : resource vaut table et tableOperation vaut l’une de table.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 : resource vaut table et tableOperation vaut l’une de table.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 : resource vaut range ou resource vaut cell
  • 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 : resource vaut range et rangeOperation vaut l’une de range.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 : resource vaut cell et cellOperation vaut l’une de cell.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 : resource vaut cell et cellOperation vaut l’une de cell.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 : resource vaut cell et cellOperation vaut l’une de cell.append

limit ​

Nombre maximum de lignes

  • Type : Nombre (number)
  • Requis : Non
  • Défaut : 50
  • Nombre entier, de 1 à 500
  • Affiché quand : resource vaut table et tableOperation vaut l’une de table.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 : resource vaut table et tableOperation vaut l’une de table.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. visible vaut false pour 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. worksheet n’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 : true quand 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 : 1 quand la ligne a été ajoutée, 0 quand la valeur de la clé figurait déjà dans le tableau.
  • {{ data.<step>.duplicates }} — number. table.add : 1 quand la ligne n’a pas été ajoutée parce que la colonne de rapprochement contenait déjà sa valeur, 0 sinon.
  • {{ data.<step>.found }} — boolean. table.update, table.delete : true quand une ligne portant la valeur de la clé a été trouvée puis modifiée ou supprimée, false quand 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 (0 est la première ligne sous les en-têtes). -1 quand 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 exemple Suivi!A1:D20 ou C12.
  • {{ data.<step>.values }} — array of array of string. range.read : les textes des cellules, ligne par ligne. values.0.1 est 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. true quand 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. Toujours false pour 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).

RessourceParamètre d’actionValeurChamps utilisésDonnées produites
sheetsheetOperationsheet.list—sheets, count, names
tabletableOperationtable.listonglet (facultatif)tables, count
tabletableOperationtable.readtableau, limit, offsetheaders, rows, count, truncated, nextOffset
tabletableOperationtable.addtableau, values, keyColumnadded, duplicates
tabletableOperationtable.updatetableau, keyColumn, keyValue, valuesfound, index
tabletableOperationtable.deletetableau, keyColumn, keyValuefound, index
rangerangeOperationrange.readonglet, addressaddress, values, rowCount, columnCount
rangerangeOperationrange.writeonglet, address, rowsaddress, cells
cellcellOperationcell.readonglet, addressaddress, value
cellcellOperationcell.writeonglet, address, valueaddress, value
cellcellOperationcell.appendonglet, address, text, separatoraddress, 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.read rend 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.add ajoute 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.update cherche 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.delete supprime cette ligne. Quand aucune ligne ne correspond, rien n’est écrit et found vaut false : l’étape n’échoue pas.
  • range.read lit un rectangle (A1:D20) ; avec « Adresse » vide, il lit toute la zone utilisée de l’onglet. range.write exige 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.write remplace le contenu d’une cellule. cell.append ajoute « 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: Dossier

Donné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.write et cell.write réécrivent la même chose à la nouvelle tentative, ce qui est sans dégât. table.add n’est protégé qu’avec une « Colonne de rapprochement » : sans elle, une nouvelle tentative ajoute une seconde ligne. cell.append n’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.delete retenté 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.update réé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 donne microsoft.rejected.
  • Essais. En essai, les lectures s’exécutent réellement (onglets, tableaux, lignes, plages, cellules). Les écritures sont seulement décrites : table.add annonce la ligne comme ajoutée sans vérifier les doublons, table.update et table.delete annoncent found: true avec index: -1, et cell.append lit 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.unavailable est retenté automatiquement. Voir Gestion des erreurs.