Excel: Parse (xlsx → array)

action_xlsx_parse · action · File & Documenti · Disponibile · v1.1.0

Descrizione

Parser enterprise per file Microsoft Excel formato .xlsx (Office Open XML SpreadsheetML, lo standard Excel 2007+ universalmente usato nei workflow business italiani: commercialisti, controlling, sales reporting, magazzino, ordini, fatturazione, riconciliazione bancaria, anagrafica clienti/fornitori). Trasforma il binario Excel in un dataset processabile come array di oggetti JavaScript pronto per loop, filter, sync, ingest in DB o pipeline downstream. La prima riga del foglio è interpretata di default come header (intestazioni colonne) e le righe successive diventano oggetti dove ogni cella corrisponde al valore del campo identificato dall'header — pattern naturale per non-developer che esportano CRM/ERP/gestionali in Excel e vogliono manipolare i dati programmaticamente. Input duale per coprire i pattern di provenienza file Excel reali in workflow business: input da disco (path nel sandbox del tenant, es. file uploadato via SFTP, scritto da action_file_write upstream, droppato da trigger_file_watch nella cartella shared) oppure input da base64 (la rappresentazione string-encoded del binario, formato canonico per attachment di trigger_imap email, body di webhook multipart upload via trigger_form, payload API con file embedded). Auto-detect del formato di input. Multi-foglio support: il workbook Excel può contenere N fogli (sheet) — il nodo permette di selezionare uno specifico per nome ("Ordini", "Listino", "Fatture") o per indice (0-based), oppure di iterare tutti i fogli ed emettere array consolidato (utile per Excel con multi-mese in fogli separati "2026-01", "2026-02", ecc.). HeaderRow configurabile: per file Excel "professionali" con titolo + logo aziendale + metadata nelle prime righe (pattern comune nei file da gestionali italiani come Sage, Zucchetti, TeamSystem), la riga di header è alla riga 5 o 7, non alla riga 1 — il parametro headerRow (default 1, 1-based) skippa le righe iniziali decorative. Type preservation: numeri restano numeric (non stringificati con perdita di precisione), date Excel serial number convertite in Date object JavaScript (con timezone corretta), booleani come true/false, celle vuote come null (consistenza per filter downstream). Cap di sicurezza: max 1M rows per evitare OOM su file enormi (l'Excel format supporta 1M+ righe ma lavorarci in JavaScript pratico < 100k), warning se headerRow > 100 (probabile sbaglio di config). Output: { rows (array di oggetti, un campo per header), sheetName, totalRows, columns, columnCount, headerRow, emptyCellsCount, truncated }. Use case: ingest ordini da allegato Excel di una email IMAP cliente B2B (cliente legacy che ancora manda ordini via Excel anziché EDI) → parse → loop su rows → action_odoo_create_lead per ogni riga; import lead da export CRM xlsx caricato dall'utente via trigger_form upload → loop → upsert HubSpot; parse listino prezzi fornitore aggiornato periodicamente (trigger_file_watch + action_xlsx_parse + sync DB pricing); batch update di anagrafica clienti da spreadsheet di riconciliazione contabile mensile del commercialista; processing di export Salesforce SOQL salvato come Excel per dashboard custom; estrazione di righe specifiche da modulo F24 in formato Excel per tracking pagamenti tributi.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
path
File Excel sul disco (opzionale)
file-pickerno
es. import.xlsx o {{input.attachmentPath}}
Path nel sandbox del tenant. Se vuoto, l'engine cerca i bytes in "Base64" qui sotto. Uno dei due è obbligatorio.
base64
Base64 dei bytes Excel (opzionale)
expressionno
{{$node.ImapTrigger.json.attachment[0].base64}}
Stringa base64 dei bytes del file. Usato tipicamente per parsare allegati ricevuti via email/webhook senza salvarli su disco.
sheetName
Nome foglio (opzionale)
expressionno
es. Ordini o Sheet1
Nome del foglio da leggere. Vuoto = primo foglio del workbook. Se sbagli il nome, l'engine ti dice nei suoi errori quali fogli ci sono.
headerRow
Riga header
numberno11 = prima riga è l'header (default, formato Excel standard). 0 = nessun header, righe come array posizionali (col_1, col_2, …). N = la riga N è l'header (utile per file con titolo/logo nelle prime righe).

⬆️ Output del nodo

Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:

  • rows
  • sheetName
  • totalRows
  • columns
  • columnCount
  • headerRow
  • emptyCellsCount
  • truncated

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-action_xlsx_parse-1",
  "defId": "action_xlsx_parse",
  "label": "Excel: Parse (xlsx → array)",
  "config": {
    "headerRow": 1
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Excel: Parse (xlsx → array)?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi