Excel: Build (array → xlsx)

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

Descrizione

Generator enterprise di file Excel formato .xlsx (Office Open XML SpreadsheetML, lo standard Microsoft Excel 2007+ universalmente compatibile con Excel desktop Windows/Mac, Excel Web, LibreOffice Calc, OpenOffice Calc, Google Sheets import, Numbers Mac) — la controparte inversa di action_xlsx_parse, fondamentale per output di report del workflow business verso destinatari non-tecnici che usano Excel come ambiente nativo di consumo dati. Trasforma un array di oggetti JavaScript (pipe naturale da db_query, paginate, listScheduledEvents Calendly, queryDatabase Notion, qualsiasi data source upstream) in un file Excel pronto da scaricare, allegare a email transazionale, archiviare su S3 per long-term compliance, condividere via OneDrive con il team management. Output disponibile in due forme per coprire i pattern d'uso reali: base64 string (pronto per allegato in action_send_email tramite il campo attachments senza dover passare per il filesystem intermedio — il pattern più comune per report inviati via email) oppure save su disco nel sandbox del tenant (scrittura atomica write+rename, pattern per workflow di archivio long-term o per file destinati a download successivo via UI tenant). Customization rich del file output: header row personalizzabile (le intestazioni colonne possono differire dai field name JavaScript — es. "first_name" come field interno ma "Nome" come visualizzazione utente in Excel), formattazione colonne type-aware (numero con decimal places, percentage con simbolo %, valuta con simbolo € e separator italiano "1.234,56", data con formato locale "DD/MM/YYYY", text plain), foglio nominato (default "Sheet1", configurable a "Ordini", "Cedolini", "Riconciliazione" per self-documenting workbook), auto-width colonne basato sul contenuto massimo per evitare il classico "#####" su numeri grossi che non entrano, freeze panes per la prima riga (header always visibile in scroll). Type preservation reverse del parse: number JavaScript → numeric cell Excel (con precision), Date → Excel serial number con timezone preservation, boolean → "TRUE"/"FALSE" string canonica Excel, null → empty cell (no string "null" che inquinerebbe), array/object → JSON serialized in singola cell come string. Cap di sicurezza: max 1M rows per workbook (limit hard Excel), cap su dimensione file output 50MB per evitare OOM su workflow generando file giganti. Output: { binary (handle file pronto per gli attachments), path? (se salvato su disco), fileName, sheetName, rowsWritten, sizeBytes, contentType }. Il contentType è "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet". Use case: report settimanale vendite allegato a email management ogni lunedì 09:00 (trigger_cron + db_query + xlsx_build + send_email con base64 attachment); export ordini CRM HubSpot verso fornitore B2B EDI-less in formato xlsx settimanale con calcolo prezzi netti+IVA; backup quotidiano di tabella DB critica in spreadsheet archiviato su S3 con retention 7 anni per compliance fiscale; generazione di template fattura/preventivo riempito con dati cliente da Odoo per stampa controllo prima emissione SDI; analytics dashboard "scaricabile" per CEO che preferisce Excel a Looker con drill-down formule pivotabili.

⚙️ Parametri di configurazione

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

CampoTipoRequiredDefaultDescrizione
sheetName
Nome foglio
expressionnoSheet1
es. Ordini, Cedolini, RighiOrdine
Nome del foglio nel workbook generato. Default "Sheet1".
dataExpression
Sorgente righe (opzionale)
expressionno
{{$node.extract_of.json.lines}}
Espressione che ritorna l'array di oggetti riga (es. {{$node.NomeNodo.json.lines}}). Se vuoto, l'engine usa l'input del nodo precedente. Utile quando il nodo precedente NON è la sorgente dati (es. dopo db_insert_batch che ritorna solo {headerId}).
groupByKey
Raggruppa per (multi-scheda)
stringno
es. supplier_name
Nome del campo per cui raggruppare. Crea UNA SCHEDA Excel per ogni valore distinto. Esempio: groupByKey="supplier_name" → un foglio per fornitore. Lascia vuoto per un singolo foglio con tutte le righe.
columns
Colonne (opzionale)
stringno
data:Data:date_dmy,prezzo:Prezzo:eur_4,sconto:Sconto:percent_2
Sintassi "key:Label:formato,..." (formato è opzionale). Senza formato i valori vengono scritti come arrivano. Formati disponibili (mostrati con LOCALE ITALIANA): • text → testo grezzo (es. codici con zeri iniziali "001234") • integer → 1.234 • number_2 → 1.234,56 • number_4 → 1.234,5678 • eur_2 → 1.234,56 € • eur_4 → 1.234,5678 € • percent_2 → 10,00% • date_dmy → 23-05-2026 • datetime → 23-05-2026 14:30 Esempio Ordini Fornitori: "nr_ordine:NR.ORDINE:text,data:DATA:date_dmy,descr:DESCRIZIONE,qta:QTA:integer,prezzo:PREZZO UNITARIO:eur_4,sconto:SCONTO:percent_2,totale:TOTALE RIGA:eur_2". Il nodo: 1) coerce stringhe italiane "10,50" → numero 10.5; 2) auto-fit larghezza colonne; 3) header bold + sfondo grigio + prima riga frozen; 4) auto-filter su tutte le colonne. Federico-grade out of the box.
freezeHeader
Blocca riga header durante scroll
booleannotrueQuando l'utente scrolla verso il basso, la riga header rimane visibile. Disabilita SOLO se serve compatibilità con un tool antiquato che non gestisce frozen panes.
autoFilter
Aggiungi filtri colonna (frecce dropdown)
booleannotrueAggiunge un menu a tendina su ogni colonna header per filtrare/ordinare. Standard in Excel/LibreOffice. Disabilita per export "scheda stampa" senza interazione.
forceItalianStrings
Forza formato italiano universale (consigliato)
booleannotrueON (default): i valori numerici (€, %, decimali) vengono scritti come STRINGHE già formattate in italiano (es. "1.234,56 €", "0,00%"). Funziona su QUALUNQUE viewer (Excel Android, Google Sheets, Numbers macOS, LibreOffice). Trade-off: perdi ordering/sum numerico Excel-side. OFF: usa numFmt con LCID [$-410]: il viewer deve riconoscere il LCID italiano (Excel Office IT ok, Numbers macOS no, Excel Android no). Lascia ON se il tuo cliente apre il file con Excel mobile, Google Sheets o Numbers.
path
Salva su disco (opzionale)
file-pickerno
es. output/{{$today}}/ordini.xlsx
Path nel sandbox del tenant dove salvare il file. Se vuoto, il file NON viene salvato — l'output ritorna come base64, ideale per allegato Send Email node.

⬆️ Output del nodo

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

  • path
  • binary
  • fileName
  • sheetName
  • rowsWritten
  • sizeBytes
  • contentType

💡 Esempio configurazione

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

{
  "id": "node-action_xlsx_build-1",
  "defId": "action_xlsx_build",
  "label": "Excel: Build (array → xlsx)",
  "config": {
    "sheetName": "Sheet1",
    "freezeHeader": true,
    "autoFilter": true,
    "forceItalianStrings": true
  }
}

🔗 Nodi correlati nella stessa categoria

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

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

Inizia gratisSfoglia tutti i nodi