Vai allo strumento
ViewCSV
Nessun caricamento del file

Dividere un file CSV

orders.csv· DATI DI ESEMPIO15 righe · 8 colonne
Le parti sono copie identiche, byte per byte, dei record originali: virgolette, fine riga e BOM restano invariati e un a capo tra virgolette non spezza mai un record.
Scegli come dividere, poi elenca le parti o scaricale in un file ZIP.

Puoi anche scaricare ogni parte singolarmente dall’elenco.

15 righe

Apri un CSV e scegli come spezzarlo: un numero fisso di righe per file, una dimensione massima, un numero di file oppure un file per ogni valore di una colonna. Ogni parte è una copia identica, byte per byte, dei record originali, con l’intestazione ripetuta in cima: virgolette, fine riga, codifica e BOM restano come erano. Controlla l’elenco delle parti, poi scaricale una alla volta o tutte insieme in un file ZIP. Si possono dividere anche file oltre i 25 MB e non viene caricato nulla.

Come dividere un file CSV

  1. Apri un file .csv, .tsv o .txt, trascinalo sullo strumento oppure incolla le righe. La prima riga viene considerata l’intestazione.
  2. Scegli il criterio di divisione e indica il numero di righe, la dimensione massima in byte, il numero di file oppure la colonna.
  3. Elenca le parti per vedere nome, numero di righe e dimensione di ciascun file, poi scaricane una sola o tutte in un unico ZIP.

Le parti prendono il nome del file originale: orders.csv diventa orders-part-001.csv, orders-part-002.csv… Un file .tsv conserva l’estensione .tsv. Lo ZIP si chiama orders-parts.zip.

Criteri di divisione

Righe per fileOgni parte riceve questo numero di righe di dati; l’ultima prende quelle rimaste. L’intestazione non viene contata.
Dimensione massima del fileOgni parte viene riempita con record interi finché il successivo non supererebbe la dimensione, calcolata in byte compresi intestazione e BOM. Un record non viene mai tagliato a metà: se un singolo record supera il limite, la divisione si ferma con un errore che lo indica.
Numero di fileLo strumento conta prima i record, poi mette lo stesso numero di righe in ogni parte, arrotondato per eccesso (al massimo 1.000 file). Per via dell’arrotondamento puoi ottenere meno file di quelli richiesti: 5 righe in 4 file danno parti da 2, 2 e 1.
Valori di una colonnaLe righe vengono raggruppate in base al valore esatto della colonna scelta e ogni valore diventa orders-West.csv, orders-East.csv…, nell’ordine in cui compare la prima volta. All’interno di ogni parte le righe mantengono l’ordine originale. Al massimo 1.000 valori distinti.
Ripeti l’intestazione in ogni fileAttivo per impostazione predefinita. Disattivalo per tenere l’intestazione solo nella prima parte, per esempio se le parti verranno poi riconcatenate.

Dati particolari: come vengono gestiti

  • I valori tra virgolette che contengono il delimitatore o degli a capo restano nel loro record, letti secondo la RFC 4180. Un indirizzo su più righe non finisce mai diviso tra due parti.
  • I record vengono copiati come byte grezzi, senza essere rianalizzati e riscritti: virgolette, fine riga e zeri iniziali restano identici. Un BOM UTF-8 all’inizio del file viene scritto all’inizio di ogni parte, così Excel continua a riconoscerle tutte come UTF-8.
  • Le righe vuote tra un record e l’altro vengono saltate. Se l’ultimo record non termina con un a capo, nella parte riceve il fine riga del file.
  • I valori della colonna vengono confrontati in modo esatto: West e west diventano file separati. Poiché molti file system non distinguono maiuscole e minuscole, il secondo si chiama orders-west-2.csv invece di sovrascrivere il primo.
  • Nei nomi dei file, caratteri come / \ : * ? " < > | diventano _, i nomi vengono troncati a 60 caratteri e un valore vuoto produce orders-empty.csv. Nell’elenco delle parti, la colonna con il valore mostra esattamente quale valore contiene ogni file.

Codifiche che si possono dividere

La divisione lavora direttamente sui byte, il che è sicuro per UTF-8 e per le codifiche a un byte come Windows-1252.I file UTF-16 non si possono dividere così: salvali prima in UTF-8, per esempio con Formatta CSV. I file Shift_JIS, GB18030, GBK e Big5 si possono dividere se il delimitatore è virgola, punto e virgola o tabulazione, ma non con la barra verticale, perché in quelle codifiche il byte della barra può comparire all’interno di un carattere. Se un file non si può dividere, lo strumento te lo dice prima di iniziare.

Risoluzione dei problemi

  • Un record è più grande della dimensione scelta per le parti. Aumenta la dimensione massima: deve contenere l’intestazione più il record più grande.
  • La divisione creerebbe più di 1.000 file. Aumenta le righe per file o la dimensione, oppure scegli meno file.
  • La colonna ha più di 1.000 valori distinti. Dividi per una colonna più generica, per esempio la regione invece del cliente, oppure riduci prima il file con Filtra righe CSV.
  • Un valore tra virgolette non viene mai chiuso. Da qualche parte nel file si apre una virgoletta che non si chiude più, quindi tutto il resto del file diventerebbe un unico record. Trovala con Convalida CSV.

File grandi e privacy

La divisione non ha il limite dei 25 MB. Per un file più grande vedi un’anteprima delle prime 200 righe, mentre la divisione legge l’intero file a blocchi da 8 MB, così l’uso della memoria resta basso. Le parti restano nel browser come dati di file finché non le scarichi; il limite pratico è lo spazio di archiviazione libero che il browser può usare.

La divisione gira in un worker in background in questa scheda del browser e Annulla la interrompe. Il file non viene mai inviato a un server. Per rimettere insieme le parti usa Unisci file CSV; per ridurre un file invece di spezzarlo usa Comprimi CSV.

Esempio

Un piccolo export di ordini con fine riga CRLF (qui mostrati come normali a capo) e una nota su più righe, diviso in parti da 2 righe con l’intestazione ripetuta. L’a capo tra virgolette resta dentro l’ordine A2, e l’ultimo record, che nel file di partenza non aveva un a capo finale, riceve il fine riga CRLF del file.

CSV
order_id,region,note
A1,West,ok
A2,East,"two
lines"
A3,West,"a, b"
A4,,late
A5,east,ok
3 file
orders-part-001.csv (2 rows)
order_id,region,note
A1,West,ok
A2,East,"two
lines"

orders-part-002.csv (2 rows)
order_id,region,note
A3,West,"a, b"
A4,,late

orders-part-003.csv (1 row)
order_id,region,note
A5,east,ok

Domande frequenti

Ogni parte si aprirà correttamente in Excel?

Sì, se si apriva correttamente l’originale: ogni parte ha la stessa intestazione, lo stesso delimitatore e la stessa codifica, e conserva il BOM UTF-8 se l’originale lo aveva.

Posso dividere per colonna un file senza riga di intestazione?

No. La prima riga viene sempre letta come intestazione e la colonna si sceglie in base al suo nome. Aggiungi prima una riga di intestazione, per esempio nell’editor CSV.

Perché ho ottenuto meno file di quelli richiesti?

Con «Numero di file» ogni parte riceve lo stesso numero di righe, arrotondato per eccesso, quindi le righe possono finire prima dell’ultimo file. 10 righe in 4 file danno 3, 3, 3 e 1; 10 righe in 6 file danno cinque file da 2.

Standard e riferimenti