Guide

Usare il Nodo Spreadsheet File per Leggere e Scrivere File Excel/CSV

Se lavori in marketing, sai che Excel e CSV sono ovunque: listini, export CRM, report campagna. E sai anche quanto tempo si perde a fare copia/incolla. In questa guida pratica ti mostro come replicare (e migliorare) quello che faceva il vecchio nodo spreadsheet file n8n, oggi deprecato, usando i nuovi nodi “Extract From File” (per la lettura/estrazione) e “Convert to File” (per la generazione/scrittura). Partiremo dal flusso base per leggere file locali e remoti, passeremo alle opzioni avanzate per CSV (delimitatore, header, encoding), vedremo come estrarre dati da XLSX in n8n e come convertire JSON in file di foglio di calcolo per creare report schedulati. Infine, troverai una mappa di migrazione 1:1 dalla versione legacy e una checklist di best practice per evitare i classici errori (sheet mancanti, date sballate, file enormi). L’obiettivo: farti costruire automazioni ETL da Excel a database e export pronti all’uso, con la potenza del nuovo stack n8n e senza più dipendere da procedure manuali. Se hai usato il nodo spreadsheet file n8n, qui trovi la strada per fare lo stesso lavoro… meglio e più veloce.

📚 Nuovo a n8n? Parti dalla guida completa: cos’è n8n e come funziona.

[IMG: panoramica dei flussi da/verso file con i nodi Extract From File e Convert to File]

Dal vecchio “Spreadsheet File” ai nuovi nodi: cosa cambia davvero

Il vecchio nodo spreadsheet file n8n permetteva lettura/scrittura di Excel/CSV e conversioni tra JSON ↔ spreadsheet. Dalla versione n8n v1.21.0 è stato deprecato e sostituito da due nodi più chiari e modulari:

  • Extract From File: estrae dati da un file binario (CSV, XLS, XLSX, ODS, HTML, JSON, PDF, RTF, ICS…) e li converte in JSON.
  • Convert to File: converte dati JSON in un file binario (CSV, XLS, XLSX, ODS, JSON, HTML, RTF, testo, ICS, ecc.).

In pratica, al posto di un unico nodo “tuttofare”, ora separi lettura/estrazione dalla generazione/scrittura. Questo rende i flussi più leggibili e testabili, soprattutto quando fai n8n lettura file Excel per ETL o n8n esportazione CSV per report ricorrenti.

Mappa mentale (migrazione da Spreadsheet File deprecato):

  • Lettura → Extract From File
  • Scrittura/Conversione → Convert to File

Requisiti e visibilità:

  • Aggiorna n8n almeno alla v1.21.0 per avere entrambi i nodi.
  • In pannello nodi, li trovi sotto Core nodes. Se non li vedi, verifica versione e permessi dell’istanza.
  • Per file locali, assicurati di avere i permessi file system (percorsi assoluti/relativi). Per storage esterni (S3, Google Drive, URL), usa HTTP Request o il connettore del provider per ottenere i file in formato binario.

Insight per marketer: invece di replicare uno a uno i vecchi flussi del nodo spreadsheet file n8n, approfitta della separazione logica per aggiungere step di qualità dati (normalizzare header, tipizzare campi) tra estrazione e scrittura. In questo modo trasformi una semplice automazione in un mini-ETL affidabile.

[IMG: confronto tra flusso legacy (un nodo) e flusso nuovo (Extract → process → Convert)]

Flusso base di lettura: file locali e remoti in JSON con “Extract From File”

Il pattern moderno per n8n lettura file Excel e CSV è:

  1. Ottenere il file come binario (da locale o remoto).

  2. Estrarlo in JSON con Extract From File.

  3. Processare i dati tabellari come item JSON.

Step-by-step

  • Caso file locale
  • Read Binary File → legge il file da disco e lo inserisce nell’item come binario.
  • Extract From File → converte il binario in JSON.
  • Caso file remoto
  • HTTP Request → scarica il file (imposta l’output come binario) e salvalo nel campo “data”, così il nodo seguente lo trova facilmente.
  • Extract From File → estrae i dati in JSON.

Configurazione chiave (Extract From File)

  • Operation: scegli il formato sorgente (per esempio, “Extract From CSV” o “Extract From XLSX”).
  • Input Binary Field: data (default; è il nome del campo binario in input).
  • Destination Output Field: per esempio rows (il nome del campo JSON di output che conterrà i record estratti).

Esempio pratico: estrarre dati da XLSX in n8n

  • Read Binary File: path al file .xlsx
  • Extract From File:
  • Operation: Extract From XLSX
  • Input Binary Field: data
  • Destination Output Field: rows
  • Ora hai item JSON in rows. Se il file ha più fogli, seleziona il foglio appropriato (per nome/indice) in base alle opzioni disponibili per XLSX.

Tip utili

  • Dati binari e dati tabellari in n8n: il file vive nella proprietà binaria (per default “data”), mentre l’estrazione produce JSON. Puoi manipolare i record con Set, Item Lists, IF, Code.
  • Pattern ricorrente: Read Binary File → Extract From File → Filter/IF/Item Lists → (DB/Sheet/API).
  • Errori comuni: “sheet non trovato” in XLSX; verifica che il nome del foglio corrisponda esattamente.

[IMG: workflow n8n con Read Binary File → Extract From File → Set → Success]

CSV senza sorprese: delimitatore, header, encoding e qualità dati

Il CSV è il formato più frequente nelle automazioni. Per parsing CSV con delimitatore personalizzato e gestione encoding CSV in automazioni:

  • Usa Extract From File (Operation: Extract From CSV) per leggere e produrre JSON.
  • Configura le opzioni di parsing adeguate (header row, separatore, encoding) secondo le impostazioni disponibili nel nodo.
  • Normalizza subito gli header per evitare problemi a valle.

Pattern consigliato

  • Validazione percorso: prima di leggere, verifica che il file esista e che la dimensione sia ragionevole.
  • Try/catch: imposta Continue On Fail dove opportuno e invia errori a un flusso di alert.
  • Normalizzare header di un foglio: rimuovi spazi, accenti, simboli, e porta tutto in snake_case.

Snippet (Code node) per normalizzare header in JSON

// Assume $json.rows è un array di oggetti (output di Extract From File)
const rows = $json.rows || [];
const normalize = (k) => k
  .toString()
  .trim()
  .toLowerCase()
  .normalize('NFD').replace(/[\u0300-\u036f]/g, '')
  .replace(/[^a-z0-9]+/g, '_')
  .replace(/^_+|_+$/g, '');

const out = rows.map(r => {
  const o = {};
  Object.entries(r).forEach(([k, v]) => { o[normalize(k)] = v; });
  return o;
});

return [{ json: { rows: out } }];

Esempi utili

  • Import periodico: HTTP Request (scarica CSV) → Extract From File → Filter (righe non valide) → DB.
  • Batch di più file: lista file → loop → per ogni file: Extract From File → append in JSON cumulativo → processing finale.

Insight: invece di provare ad “appendere” direttamente a un CSV in disco (rischio di concorrenza e lock), conserva un dataset JSON consolidato in memoria o DB e rigenera il CSV finale a fine job con Convert to File. È più sicuro e tracciabile per il tuo team.

[IMG: dettaglio Extract From File con CSV e normalizzazione header]

Da JSON a foglio: esportare CSV/XLSX con “Convert to File” e salvare

Quando vuoi scrivere file di report in n8n (export KPI, lead, performance canali), usa Convert to File per convertire JSON in CSV/XLS/XLSX e poi salva con Write Binary File o carica su cloud.

Configurazione chiave (Convert to File)

  • Operation: scegli il formato di destinazione (Convert to CSV, Convert to XLSX, ecc.).
  • Put Output File in Field: file (nome del campo binario in output).
  • Options:
  • File Name: per esempio report_marketing.xlsx o export.csv
  • Header Row: attiva se vuoi includere la riga di intestazione (XLSX/CSV).

Step-by-step (convertire JSON in file di foglio di calcolo)

  1. Hai gli item JSON pronti (per esempio, $json.rows).

  2. Convert to File:

  • Operation: Convert to XLSX
  • Put Output File in Field: file
  • Options: File Name: report_kpi.xlsx; Header Row: ON
  1. Write Binary File:
  • Usa come input il campo binario “file” e imposta il percorso di output (es. /data/exports/report_kpi.xlsx).

Varianti pratiche

  • n8n esportazione CSV: se i destinatari preferiscono CSV, imposta Operation: Convert to CSV; scegli File Name: report.csv; abilita Header Row e configura (dove previsto) il delimitatore/encoding coerenti con il mercato (es. ; e UTF-8 con BOM per Italia/EU).
  • Append a file CSV con n8n (strategia sicura): leggi file esistente → Extract From File → merge JSON → Convert to File → sovrascrivi in modo atomico. Evita scritture concorrenti su file locali.

Insight: separa la logica di selezione campi/ordine colonne in un Set o Code node prima della conversione. Così mantieni un unico punto di verità per formattazione e tipizzazione, utile quando aggiorni il layout del report per gli stakeholder.

[IMG: Convert to File configurato su Convert to XLSX con File Name e Header Row]

Automazioni ETL da Excel a database e batch multi-file

Molti marketer vogliono portare dati da fogli a un database per arricchirli e unirli con altre fonti. Il pattern base (automazioni ETL da Excel a database):

  1. Ottenere file (Read Binary File o HTTP Request).

  2. Extract From File (XLSX/CSV → JSON).

  3. Pulizia e mappatura (Set/Code/IF).

  4. Scrittura su DB (connettore del tuo DB o HTTP Request verso API interne).

  5. Export finale per stakeholder (Convert to File → Write Binary File/Upload).

Batch di più file (cartella o lista da API)

  • Produci una lista dei file da processare (percorso o URL).
  • Loop: per ciascun file → Read/HTTP → Extract From File → append a array JSON cumulativo (Item Lists → Aggregate) → al termine, un unico Convert to File.
  • Per file molto grandi: usa Split In Batches per processare righe in chunk; riduci l’uso RAM e fallo “a flusso”.

Selezione campi e stabilità schema

  • Definisci un set ordinato di colonne target prima della conversione (per esempio, name, email, source, created_at).
  • Rinomina header incoerenti all’origine (normalizzare header di un foglio).
  • Controllo dei tipi (numeri come numeri, date come ISO8601) prima della scrittura o della conversione XLSX/CSV.

Insight unico: gestisci un “profilo di schema” (JSON) versionato in repo con l’elenco campi e regole di casting. Il nodo spreadsheet file n8n originale non incoraggiava questa disciplina; con Extract/Convert la separazione ti permette di automatizzare la validazione e prevenire rotture quando un fornitore cambia un header.

[IMG: flusso ETL da XLSX a DB e poi export CSV finale]

Debug, performance e localizzazione: come evitare i trabocchetti

Errori comuni in lettura

  • “Sheet non trovato” (XLSX): verifica nome/indice foglio e ortografia.
  • Encoding CSV: caratteri accentati errati? Usa un encoding coerente (UTF-8; eventualmente aggiungi BOM quando necessario per tool legacy).
  • Separatori/decimali: in contesti EU, “;” come delimitatore e virgola decimale; assicurati coerenza tra parsing e scrittura.

Performance

  • Evita carichi RAM enormi: processa a chunk con Split In Batches, filtra a monte (Code/IF) e non caricare interi CSV giganteschi se non serve.
  • Streaming logico: per dataset grandi, estrai → subito filtra e normalizza → scrivi/accumula in DB o storage intermedio → genera il file finale a fine job.
  • Cache e timeout: con HTTP Request su file remoti, considera tempi di download, retry/backoff e timeout.

Qualità dati

  • Tipizza i campi (numeri/date) prima di scrivere.
  • Gestisci valori nulli e formule (in XLSX) convertendole a valori.
  • Aggiungi controlli: campi obbligatori non vuoti, formati email/URL, range date.

Osservabilità

  • Error Trigger: crea un workflow dedicato agli errori e invia alert su Slack/Email con dettagli (nome workflow, nodo, messaggio errore).
  • Log di volumi: conteggia righe lette/scritte, dimensione file, tempi di esecuzione.

Insight: i problemi “misteriosi” dei CSV sono quasi sempre encoding o delimitatore. Standardizza per team e stakeholder: definisci una policy (UTF-8 + BOM, separatore “;”, punto come separatore decimale) e applicala ovunque, dal parsing all’export.

[IMG: esempio di alert su Slack con conteggio righe e link al job]

Migrazione 1:1 dal nodo legacy: checklist rapida e rollback

Se hai workflow costruiti con il nodo spreadsheet file n8n, ecco una mappatura operativa:

Lettura (legacy) → Extract From File (moderno)

  • Operation: seleziona il tipo file (Extract From CSV/XLSX).
  • Input Binary Field: data (default).
  • Destination Output Field: es. rows (JSON).

Scrittura/Conversione (legacy) → Convert to File (moderno)

  • Operation: Convert to CSV/XLSX.
  • Put Output File in Field: file.
  • Options: File Name, Header Row (abilita se vuoi l’intestazione).

Percorso tipico

  1. Sostituisci i nodi legacy con Extract/Convert rispettando gli I/O (binario “data” in input; binario “file” in output).

  2. Inserisci un passo di normalizzazione header e tipizzazione dati tra extract e convert.

  3. Verifica gli edge case: fogli multipli, formule, valori nulli.

  4. Test di equivalenza: confronta un export prodotto dal flusso legacy con quello nuovo (numero righe, header, tipi).

  5. Rollback plan: conserva il workflow precedente finché non validi al 100% la nuova pipeline.

Consiglio: annota nel titolo/nome del workflow “migrated-from-spreadsheet-file” e aggiungi note su versione n8n e scelte di encoding/delimitatore. Aiuterà chiunque nel team a capire il contesto e ridurre i tempi di debug.

[IMG: tabella di mapping tra vecchio Spreadsheet File e nuovi Extract/Convert]

Quick Takeaways

  • Il nodo spreadsheet file n8n è deprecato: usa Extract From File (lettura) e Convert to File (scrittura).
  • Per leggere: ottieni binario (“data”) → Extract From File → JSON pulito pronto per ETL.
  • Per scrivere: prepara i campi in ordine → Convert to File (Put Output File in Field: file, File Name, Header Row) → salva o invia.
  • CSV robusti: imposta delimiter/encoding coerenti e normalizza gli header.
  • File grandi: usa Split In Batches e filtra a monte per non saturare la RAM.
  • Migrazione sicura: mappa 1:1 legacy → nuovi nodi, aggiungi test di equivalenza e piano di rollback.

Conclusione

Il passaggio dal nodo spreadsheet file n8n ai nuovi Extract From File e Convert to File non è un semplice cambio di nome: è l’occasione per strutturare automazioni più chiare, testabili e veloci. Separando estrazione e scrittura, puoi inserire step di qualità dati, controlli di encoding e normalizzazione header, oltre a pattern più solidi per batch multi-file e file molto grandi. Per i marketer, significa avere export puntuali e coerenti, ETL ripetibili da Excel/CSV a database, e report che non “saltano” alla vigilia della presentazione. Parti dai flussi base (Read/HTTP → Extract → Set/Code → Convert → Write), applica le best practice su CSV (delimitatore/encoding) e XLSX (selezione foglio, conversione formule), e aggiungi osservabilità con Error Trigger e alert su Slack/Email. Se già usavi il nodo spreadsheet file n8n, la migrazione 1:1 è lineare: dedica tempo ai test di equivalenza e alla standardizzazione di schema e tipi. Pronto a fare il salto? Scegli un caso reale (per esempio l’export settimanale lead) e convertilo oggi stesso: vedrai il tempo risparmiato già dal prossimo report.

FAQ

  • Come faccio la n8n lettura file Excel oggi che il nodo spreadsheet file n8n è deprecato?
  • Usa Extract From File con Operation “Extract From XLSX”, imposta Input Binary Field su “data” e definisci un Destination Output Field (es. “rows”). Questo ti restituisce JSON pronto per il tuo flusso.
  • Posso fare parsing CSV con delimitatore personalizzato e gestire encoding?
  • Sì. Con Extract From File (CSV) e Convert to File (CSV) imposta le opzioni di parsing/scrittura per delimitatore e encoding. Standardizza (UTF-8, header coerenti) per evitare sorprese in automazioni.
  • Come estrarre dati da XLSX in n8n scegliendo il foglio specifico?
  • In Extract From File seleziona XLSX e, dove previsto, indica il foglio (per nome/indice). Se ricevi “sheet non trovato”, controlla ortografia e la presenza effettiva del foglio.
  • Come convertire JSON in file di foglio di calcolo per stakeholder?
  • Usa Convert to File: Operation “Convert to XLSX” o “Convert to CSV”, Put Output File in Field “file”, Options → File Name e Header Row. Poi salva con Write Binary File o carica su storage/Drive.
  • Ho vecchi flussi con il nodo spreadsheet file n8n: qual è la migrazione più sicura?
  • Mappa Lettura → Extract From File e Scrittura → Convert to File, aggiungi normalizzazione header e test di equivalenza. Mantieni un piano di rollback finché i nuovi export non sono validati.

Hai trovato utile questa guida? Dimmelo con un commento: quale flusso vuoi automatizzare per primo (import Excel → DB o export CSV settimanale)? Se ti è stata utile, condividila con un collega che usa n8n e salva tempo ogni settimana!

Articoli correlati

Vuoi automazioni AI su misura per la tua azienda?
Scopri la consulenza →

Partiamo da un processo che oggi vi costa ore

Su WhatsApp risponde una persona, di solito in giornata. Se preferisci scrivere con calma, c’è il modulo qui sotto.

Scrivici su WhatsApp

Raccontaci cosa vuoi automatizzare

Ti rispondiamo noi, di solito in giornata.

Raccontaci cosa vi fa perdere tempo

Due righe bastano. Vi diciamo se si automatizza, come, e quanto costa. Se non conviene, lo diciamo.