PDF → CSV

Carica un PDF con tabelle — un listino, un estratto conto, un report, anche scansionato. Ricevi un file CSV pulito, con colonne allineate e separatori corretti, pronto per essere importato in fogli di calcolo, database o gestionali.

Di solito è pronto in 1-2 minuti.

Costo: 1 credito · ≈ €0,90 per elaborazione. La prima elaborazione è gratuita con i crediti di benvenuto. Se poi vuoi continuare, la ricarica minima è di €3,90; i crediti non scadono. I crediti vengono trattenuti all'avvio e restituiti per intero se l'elaborazione non riesce.

  • Se l'elaborazione fallisce, i crediti tornano indietro da soli.
  • Il file caricato resta privato, fuori dal web, e viene eliminato automaticamente: subito dopo un'elaborazione riuscita, entro pochi giorni in ogni altro caso.
  • Ogni risultato passa controlli automatici, con livello di confidenza indicato.
  • Questo strumento invia a OpenAI le immagini delle pagine se il file è una foto o una scansione, e il testo estratto dal documento solo quando la lettura sui nostri server è incerta. Dettagli in Trattamento dati & AI.

Serve un account gratuito: con i crediti di benvenuto la prima elaborazione è offerta. Registrati in 30 secondi

Guarda un esempio di risultato

Cosa fa

Individua le tabelle presenti nel PDF, ricostruisce righe e colonne e le esporta in un file CSV con codifica UTF-8. Le intestazioni vengono preservate, i numeri con formato italiano (virgola decimale, punto per le migliaia) vengono normalizzati e le celle che si estendono su più righe vengono ricomposte. C’è un’eccezione, e a sbagliare siamo noi: lo spazio fra le migliaia, «€ 1 559,62», lo leggiamo quando il PDF scrive l’importo tutto d’un pezzo; se invece lo stampa a pezzi separati non sappiamo distinguerlo da due colonne accostate, e piuttosto che inventare un prezzo mille volte più grande lasciamo la cella com’è scritta, come testo. Quando capita non diamo la colpa al tuo documento: il riepilogo, e le righe «#» in fondo al CSV, dichiara che a non averlo letto siamo stati noi, quanti sono e in quale colonna stanno. E se una colonna che il documento porta non viene letta in nessuna riga, il risultato non si dichiara completo: te la nominiamo, e le celle restano vuote invece di essere indovinate. Se il documento contiene più tabelle con la stessa struttura, vengono unite in un unico file.

Se carichi un estratto conto

È il documento che ci si carica per primo, e la conversione nuda di un estratto conto è una trappola: le righe che la banca stampa fra i movimenti ma movimenti non sono — «Saldo iniziale», «Totale movimenti», «Saldo finale» — finiscono in mezzo ai dati con gli importi nelle stesse colonne, e chi apre il file e scrive =SOMMA sulla colonna delle uscite ottiene il doppio dei soldi veri, senza nessun errore a segnalarglielo. Quindi quando una tabella ha la forma di un estratto conto — una colonna di date e gli importi in due colonne (uscite ed entrate, dare e avere) o in una sola col segno — il file che ricevi ha una cosa in più: una colonna «Categoria» in fondo, dove quelle righe si chiamano «Saldo, non è un movimento» e «Totale, non è un movimento», così le escludi con un filtro e in una tabella pivot si riconoscono da sole. Sugli altri movimenti la stessa colonna porta la categoria di spesa — supermercati, carburante, utenze, tasse, stipendi, affitti — assegnata da regole fisse sulle parole della descrizione, sui nostri server: le descrizioni del tuo conto non escono per essere classificate. Dove nessuna regola riconosce il movimento la categoria resta «Da classificare», mai indovinata.

E poiché il CSV non ha i fogli, il riepilogo sta in fondo al file, nelle righe che iniziano con «#»: uscite ed entrate col numero di movimenti e la differenza, il totale mese per mese, le uscite per categoria, le cinque uscite più alte con la data, e il controllo del saldo — saldo iniziale più le entrate meno le uscite: fa il saldo finale che il documento dichiara, sì o no? Se non torna te lo diciamo con la differenza, invece di lasciarti importare numeri che non quadrano. Sono conti fatti sulle celle che il tuo documento porta: nessun dato aggiunto, nessuna chiamata all’intelligenza artificiale. Quelle righe non stanno nella copia per software, che per definizione non porta le righe «#»: là la colonna «Categoria» c’è comunque, ed è quella che serve a una macchina. Un listino, un report, un rendiconto senza una data per riga non hanno quella forma: il loro file resta identico a prima, senza colonne aggiunte. Se ti serve lo stesso lavoro con i totali in un foglio a parte, PDF → Excel fa questo.

Per chi è

Per chi deve portare dati da un PDF dentro un altro sistema: uffici amministrativi che ricevono report in PDF, gestori di e-commerce che importano dati prodotto, analisti che lavorano su estrazioni periodiche, sviluppatori che devono alimentare un database.

Come funziona

  • Carichi il PDF, anche scansionato, o la foto della tabella (fino a 15 MB).
  • Il motore rileva le tabelle e ne ricostruisce la struttura leggendo il testo del documento; le pagine che sono solo un’immagine le legge come immagini.
  • Un controllo automatico rilegge il file prodotto e verifica che righe e colonne corrispondano all’estrazione: se non corrispondono, il lavoro viene segnalato come non riuscito e i crediti restituiti.
  • Vedi un’anteprima e scarichi il file CSV.

Input supportati

PDF generati al computer fino a 15 MB e circa 80 pagine per elaborazione, e anche PDF scansionati: le pagine che sono solo un’immagine le leggiamo come immagini, fino a cinque pagine per elaborazione, allo stesso prezzo. Puoi caricare anche la foto di una tabella scattata col telefono (JPG, PNG, HEIC). Quando le righe vengono da un’immagine il riepilogo lo dice e ti chiede di ricontrollare importi e date sull’originale prima di importarli: una stampa sbiadita o storta si legge peggio di un file digitale, e una cifra che non si legge resta scritta «[illeggibile]», mai indovinata. Se la scansione ha più di cinque pagine leggiamo le prime cinque e il risultato ti dice da quale pagina ripartire; se da un’immagine non esce abbastanza testo il lavoro viene segnalato come non riuscito e non ti viene addebitato nulla. Un PDF in parte digitale e in parte scansionato, con le tabelle nelle pagine digitali, viene invece elaborato e addebitato a partire dal testo digitale: in quel caso il risultato ti dice quali pagine non contenevano testo selezionabile e che il loro contenuto non è in questo risultato, invece di dichiararsi completo — caricale da sole come lavoro separato e le leggiamo come scansione. Se invece la parte digitale non contiene tabelle — per esempio è generata al computer solo la copertina, e il resto è scansionato — lo leggiamo come scansione, con lo stesso tetto di cinque pagine. I PDF protetti da password vengono rifiutati allo stesso modo: senza la password le pagine non si aprono, l’elaborazione si ferma subito e non ti viene addebitato nulla. Apri il file con la sua password, salvane una copia senza protezione e carica quella. Le 80 pagine sono il tetto massimo, non la regola: quando le righe non stanno in una griglia netta la lettura passa dall’intelligenza artificiale, che riceve al massimo circa 280.000 caratteri di testo — quanto ottanta pagine di media. I due tetti sono tarati per mordere nello stesso punto: misurato l’8 settembre 2026 su dieci documenti di gara italiani veri, è esattamente quanto testo portano ottanta pagine. Solo su un documento molto più fitto della media quel limite arriva prima dell’ottantesima pagina. Il risultato dichiara sempre a quale pagina la lettura si è fermata, e il messaggio ti dice da quale pagina ripartire. Quando il documento prosegue oltre il taglio la parte letta ti viene consegnata lo stesso, con il taglio dichiarato: il lavoro si conclude e i crediti restano spesi, anche se i dati che cercavi stavano oltre. Puoi caricare come lavoro separato un PDF con le sole pagine che ti servono.

C’è una seconda perdita possibile, indipendente da questi due tetti: dentro le pagine lette l’estrazione assistita dall’intelligenza artificiale può smettere di elencare prima della fine, restituendo righe giuste ma poche. Ce ne accorgiamo confrontando il risultato consegnato con due letture indipendenti dello stesso documento: la griglia che legge le tabelle riga per riga e, quando la griglia non riconosce la struttura del documento, il conteggio delle righe del testo estratto che hanno la forma di una riga di tabella. Quando una delle due si scosta dal risultato, il file lo dichiara con entrambi i conteggi e si considera incompleto. Non è una garanzia — su un documento fatto in prevalenza di prosa, con qualche tabella dentro, nessuna delle due letture sa dire quante ne dovevano tornare, e una perdita lì non te la segnala nessuno: conta sempre le righe del file contro l’originale prima di importarli. Anche in questo caso il lavoro si conclude e i crediti restano spesi; ricaricare il PDF a blocchi di poche pagine per volta è il modo più efficace per recuperare le righe mancanti.

C’è infine un tetto che non riguarda il documento ma la nostra risposta: le righe tornano indietro in un’unica risposta del modello, e quella risposta ha uno spazio finito. Un documento che ne contiene moltissime lo esaurisce. Se lo esaurisce prima che ne arrivi una parte utilizzabile, il lavoro viene segnalato come non riuscito, il messaggio ti dice che il documento contiene più voci di quante riusciamo a restituirne in una volta sola e non ti viene addebitato nulla; se lo esaurisce dopo, il risultato ti viene consegnato con il taglio dichiarato fra le note e i crediti restano spesi. In entrambi i casi il gesto è lo stesso: caricare il PDF a blocchi di poche pagine per volta.

Risultato

Un file CSV in UTF-8 con BOM, una riga per record, punto e virgola come separatore di colonna e virgola decimale nei numeri: è il formato che Excel e LibreOffice in italiano aprono con le colonne già separate. Accanto trovi una seconda copia degli stessi dati, per software, database e gestionali: virgola come separatore, punto decimale, UTF-8 senza BOM, solo l’intestazione e le righe di dati, senza le righe «#»; se il documento ha più tabelle con colonne diverse, arriva come ZIP con un file CSV per tabella, ognuno con la sua intestazione in prima riga. Le virgolette compaiono dove servono, cioè quando il valore contiene un punto e virgola, virgolette o un a capo. L’intestazione è sempre la prima riga del file, così l’import parte senza modifiche a mano; se il risultato non contiene tutto il documento, in fondo trovi una o più righe che iniziano con «#» che lo dicono. Al termine dell’elaborazione la pagina riepiloga quante tabelle e quante righe sono state estratte e da quante pagine provengono. Quando l’estrazione viene assistita dall’AI il conteggio delle pagine con tabelle non è misurabile, e il riepilogo lo dichiara.

Limiti

Le tabelle con molte celle unite o con layout molto irregolari possono produrre errori di estrazione: in questi casi le celle che non si leggono restano vuote invece di essere indovinate. I grafici non vengono convertiti in dati, e in un PDF che ha già le tabelle in testo digitale nemmeno le immagini inserite fra le pagine. Se l’elaborazione fallisce, i crediti vengono rimborsati automaticamente.

Privacy e dati

Il PDF caricato viene conservato in un’area privata non accessibile dal web, usato solo per l’elaborazione ed eliminato automaticamente: subito dopo un’elaborazione riuscita, entro due giorni se l’elaborazione fallisce (in quel caso il file serve a capire cosa non ha funzionato). Il file CSV generato resta scaricabile solo dal tuo account per 14 giorni, poi viene eliminato. I contenuti non vengono usati per addestrare modelli.

Domande frequenti

Il PDF contiene più tabelle diverse: cosa succede?

Le tabelle con la stessa struttura vengono unite in un’unica griglia. Quelle con struttura diversa restano distinte, ma stanno tutte nello stesso file CSV: il formato CSV non ha i fogli. La prima tabella occupa le righe iniziali e la sua intestazione è la prima riga del file, quindi si importa senza toccare niente; le altre la seguono più in basso, ognuna preceduta da una riga che inizia con «#» e dalla propria intestazione. In questo file un importer legge correttamente solo la prima: per importarle tutte usa la copia per software, che in questo caso arriva come ZIP con un file CSV per tabella, ognuno con la sua intestazione in prima riga. Il riepilogo dice quante tabelle sono state trovate e da quante pagine provengono le righe, ma non quale tabella viene da quale pagina. Se ti serve una tabella per foglio, già separata, usa PDF → Excel: l’.xlsx i fogli ce li ha.

Funziona con i PDF scansionati?

Sì. Se le pagine del PDF sono immagini — una scansione, un documento fotocopiato, la foto di un listino — le leggiamo come immagini, fino a cinque pagine per elaborazione, e le righe arrivano nel CSV come per un PDF digitale, al prezzo di sempre. Ci vuole un po’ di più: circa mezzo minuto per pagina. Il riepilogo ti dice che le righe vengono da un’immagine: ricontrolla importi e date sull’originale prima di importarle, e dove una cifra non si leggeva trovi «[illeggibile]» invece di un numero inventato. Se hai anche il PDF originale scaricato dalla banca o dal gestionale, carica quello: si legge meglio di qualunque scansione.

Posso sommare le colonne del file appena lo apro?

Sì, ma guarda prima la colonna «Categoria», se c’è. Quasi tutti i documenti con gli importi contengono anche una o più righe che quegli importi li ripetono: un «Totale movimenti», un «Saldo iniziale», un «Imponibile». Nel file ci sono — nel documento ci stavano, e non ti togliamo niente — ma sommarle insieme ai movimenti conta due volte gli stessi soldi. Il riepilogo a fine elaborazione ti dice quante sono e come si chiamano; su un estratto conto riconosciuto lo dice anche la colonna «Categoria» riga per riga, e la prima riga «#» in fondo al file te lo ripete. Su ogni altro documento la regola non cambia: le righe di riepilogo le dichiariamo, non le cancelliamo.

Che separatore usa il CSV?

Il punto e virgola, e i numeri sono scritti con la virgola decimale senza separatore delle migliaia. È la combinazione che Excel e LibreOffice in italiano aprono con le colonne già separate al doppio clic: con la virgola a separare le colonne, un prezzo scritto «129,00» finirebbe spezzato su due colonne. Se il file va a un programma — un database, uno script, Shopify, un gestionale che vuole il formato internazionale — scarica la copia per software che trovi accanto al file: virgola come separatore e punto decimale, senza BOM e senza righe «#». Non è solo un’impostazione da cambiare: MySQL, per esempio, legge «1234,56» come 1234 e perde i centesimi senza dare errore, e Shopify accetta solo la virgola.

I codici che iniziano per zero (001234) restano interi?

Nel file sì, sempre: il CSV consegnato contiene 001234 con tutti i suoi zeri, e gli importer che lo leggono direttamente (gestionali, WooCommerce, PrestaShop, Shopify, pandas) lo prendono esatto. Quello che va saputo riguarda il doppio clic: se apri il CSV facendoci doppio clic, Excel e LibreOffice riconoscono 001234 come un numero e scrivono 1234, perdendo gli zeri davanti. Non è un difetto del file, è come quei programmi interpretano un CSV all’apertura — e vale per qualunque CSV, non solo per i nostri. Per conservarli hai due strade: importare il file invece di aprirlo (in Excel: Dati → Da testo/CSV, dichiarando quella colonna come Testo), oppure prendere lo stesso documento in .xlsx, dove i codici restano testo senza dover impostare niente. Al termine dell’elaborazione il riepilogo ti dice se il tuo documento contiene codici di questo tipo, in quali colonne e quanti: se non ce ne sono, lo dice anche quello. Le righe che nel documento stanno da sole, senza una griglia accanto — il titolo, una nota, l’intestazione di una categoria come «Bibite fredde» in mezzo a un listino — non diventano una colonna: restano fuori dalle righe di dati. Il riepilogo le elenca una per una, con il testo che il documento riporta, e le ripete in fondo al file nelle righe che iniziano con «#»: così sai che cosa è rimasto fuori senza riaprire il PDF. Quando sono troppe per stare in una nota leggibile, il riepilogo dice quante ne restano fuori dall’elenco: il numero complessivo non viene mai taciuto.