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.
[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
3) 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!
Scopri la consulenza →

