Formattatore CSV

Formatta e normalizza dati CSV con opzioni di delimitatore personalizzate

Prova un esempio

Input CSV

CSV Formattato

Esegue in locale · Sicuro per incollare segreti
Il CSV formattato apparirà qui…
Delimitatore di output:

Cos'è la Formattazione CSV?

La formattazione CSV (Comma-Separated Values) è il processo di normalizzazione del testo tabulare grezzo affinché delimitatori, virgolette, spazi e terminazioni di riga seguano un insieme coerente di regole. RFC 4180, pubblicato nel 2005, definisce lo standard CSV più diffuso: campi separati da virgole, record terminati da CRLF e qualsiasi campo contenente una virgola, una virgoletta doppia o un'interruzione di riga racchiuso tra virgolette doppie. Un formattatore CSV prende dati CSV disordinati o incoerenti e li riscrive per conformarsi a queste convenzioni.

I file CSV reali raramente arrivano in forma pulita. Le esportazioni da Excel, Google Sheets e le utility di dump dei database applicano ciascuna strategie di virgolettatura diverse, gestiscono gli spazi in modo differente e possono usare punti e virgola o tabulazioni al posto delle virgole. Quando si passano questi file a un parser che si aspetta un input RFC 4180 rigoroso, il risultato è spesso righe spezzate, colonne spostate o perdita silenziosa di dati. Formattare prima dell'elaborazione intercetta questi problemi in anticipo.

Un formattatore CSV differisce da un convertitore CSV. La formattazione mantiene i dati in CSV: normalizza le virgolette, elimina gli spazi superflui, riallinea le colonne e facoltativamente cambia il delimitatore. La conversione cambia il formato completamente, producendo output JSON, HTML, SQL o Markdown.

Perché Usare Questo Formattatore CSV?

Questo strumento analizza e ri-serializza il tuo CSV interamente nel browser. I tuoi dati non lasciano mai il tuo dispositivo.

Formattazione Immediata
Incolla il CSV e vedi subito l'output pulito. Il formattatore analizza e ri-serializza nel browser mentre digiti.
🔒
Elaborazione Privacy-First
Tutta l'analisi e la formattazione avviene nella scheda del tuo browser. Nessun dato viene trasmesso sulla rete. Sicuro per dataset proprietari, credenziali e PII che non devono lasciare il tuo dispositivo.
🔧
Delimitatori Configurabili
Passa tra delimitatori virgola, tabulazione, punto e virgola e pipe. Lo strumento rileva automaticamente il delimitatore di input e ti consente di sceglierne uno diverso per l'output, rendendo semplice la normalizzazione tra formati.
📋
Copia e Scarica con Un Clic
Copia il CSV formattato negli appunti o scaricalo come file. Pronto per l'importazione in database, fogli di calcolo o pipeline di dati senza ulteriori modifiche.

Casi d'Uso del Formattatore CSV

Sviluppo Frontend
Pulisci i file CSV di fixture usati come dati mock nei componenti React o Vue. Una virgolettatura coerente previene i fallimenti del parser durante le build di sviluppo.
Ingestione Dati Backend
Normalizza le esportazioni CSV da API di terze parti prima di alimentarle nella tua pipeline ETL. Eliminare gli spazi e standardizzare i delimitatori previene i bug di spostamento delle colonne.
DevOps e CI/CD
Formatta i file di configurazione CSV o i dati seed inseriti nel controllo di versione. Una formattazione coerente riduce il rumore nei diff e velocizza le revisioni del codice.
QA e Testing
Prepara fixture CSV per i test con pattern di virgolettatura e delimitatori noti. File di input riproducibili rendono più semplice scrivere asserzioni sull'output del parser.
Data Engineering
Pre-elabora i dump CSV da database legacy prima di caricarli in moderni data warehouse. Risolvere i problemi di virgolettatura e le discrepanze nei delimitatori risparmia ore di debug.
Apprendimento e Formazione
Sperimenta con le regole di virgolettatura RFC 4180 incollando input diversi e osservando come il formattatore li normalizza. Un modo pratico per comprendere i casi limite del CSV.

Regole di Virgolettatura ed Escape in CSV (RFC 4180)

RFC 4180 definisce regole specifiche su quando e come i campi devono essere racchiusi tra virgolette. I sei scenari seguenti coprono i casi in cui il comportamento della virgolettatura è rilevante.

ScenarioEsempioRegola
Field contains delimitername,"Smith, Jr."Wrap in double quotes
Field contains newline"line1\nline2"Wrap in double quotes
Field contains double quote"She said ""hello"""Double the quote character
Field is empty,,Two consecutive delimiters
Field has leading spaces" value"Quotes preserve whitespace
Field is numeric42No quotes required unless forced

Confronto dei Delimitatori CSV

La scelta del delimitatore influisce sulla compatibilità, la leggibilità e la frequenza con cui sarà necessario virgolettare i campi.

Virgola (,)
Il valore predefinito di RFC 4180. Supportato da ogni parser CSV e foglio di calcolo. Richiede la virgolettatura quando i valori dei campi contengono virgole, cosa comune nei dati di indirizzi e testo.
Tabulazione (\t)
Usata nei file TSV (Tab-Separated Values). I caratteri di tabulazione raramente compaiono nei dati dei campi, quindi la virgolettatura è raramente necessaria. Comune in bioinformatica e nelle esportazioni di database.
Punto e virgola (;)
Standard nelle esportazioni CSV con impostazioni locali europee (Germania, Francia, Brasile) dove la virgola è usata come separatore decimale. Excel usa il punto e virgola quando le impostazioni di sistema usano la virgola come separatore decimale.
Pipe (|)
Raro nel testo naturale, il che lo rende una buona scelta per dati disordinati in cui virgole e punti e virgola compaiono nei valori dei campi. Comune nelle esportazioni da mainframe e sistemi legacy.

Esempi di Codice

Questi esempi mostrano come analizzare CSV disordinato e ri-serializzarlo con una formattazione coerente in linguaggi diversi. Ogni frammento gestisce l'eliminazione degli spazi, la normalizzazione dei delimitatori e la virgolettatura.

JavaScript (Node.js)
import { parse, unparse } from 'papaparse'

const messy = `name, age ,city
Alice , 30, Berlin
Bob,25 , " Tokyo "`

// Parse with trimming, then re-serialize with consistent formatting
const parsed = parse(messy, {
  header: true,
  skipEmptyLines: true,
  transformHeader: h => h.trim(),
  transform: v => v.trim(),
})

const clean = unparse(parsed.data, { quotes: true })
console.log(clean)
// → "name","age","city"
// → "Alice","30","Berlin"
// → "Bob","25","Tokyo"
Python
import csv
import io

messy = """name, age ,city
Alice , 30, Berlin
Bob,25 , " Tokyo " """

reader = csv.DictReader(io.StringIO(messy), skipinitialspace=True)
output = io.StringIO()
writer = csv.DictWriter(
    output,
    fieldnames=[f.strip() for f in reader.fieldnames],
    quoting=csv.QUOTE_ALL,
)
writer.writeheader()
for row in reader:
    writer.writerow({k.strip(): v.strip() for k, v in row.items()})

print(output.getvalue())
# → "name","age","city"
# → "Alice","30","Berlin"
# → "Bob","25","Tokyo"
Go
package main

import (
	"encoding/csv"
	"fmt"
	"strings"
)

func main() {
	input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
	r := csv.NewReader(strings.NewReader(input))
	records, _ := r.ReadAll()

	var buf strings.Builder
	w := csv.NewWriter(&buf)
	w.UseCRLF = true // RFC 4180 line endings
	for _, record := range records {
		_ = w.Write(record)
	}
	w.Flush()
	fmt.Print(buf.String())
	// → name,age,city\r\n
	// → Alice,30,Berlin\r\n
	// → Bob,25,Tokyo\r\n
}
CLI (csvformat from csvkit)
# Re-format a CSV file with csvkit (Python-based)
csvformat -D ";" input.csv > output.csv

# Convert tabs to commas
csvformat -t input.tsv > output.csv

# Force-quote all fields
csvformat -U 1 input.csv > quoted.csv

# Using Miller (mlr) to normalize
mlr --icsv --ocsv --quote-all cat input.csv > clean.csv

Domande Frequenti

Cosa fa un formattatore CSV?
Un formattatore CSV analizza il testo CSV grezzo, normalizza le virgolette intorno ai campi, elimina gli spazi superflui e ri-serializza i dati con un delimitatore coerente e uno stile di terminazione di riga uniforme. L'output è un file CSV pulito conforme a RFC 4180 o alle regole di formattazione scelte.
In cosa differisce la formattazione CSV dalla validazione CSV?
La validazione verifica se un file CSV è conforme a un insieme di regole e segnala gli errori. La formattazione va oltre: riscrive il file per correggere quei problemi. Un validatore ti dice che la riga 5 ha una virgola non virgolettata. Un formattatore la corregge aggiungendo le virgolette intorno al campo.
Perché devo formattare i file CSV prima di importarli?
Gli strumenti di importazione dei database, le pipeline ETL e i fogli di calcolo hanno ciascuno regole di analisi CSV leggermente diverse. Un campo non virgolettato con una virgola al suo interno verrà suddiviso in due colonne nei parser rigorosi. Formattare il CSV per seguire RFC 4180 prima dell'importazione previene questi errori di spostamento delle colonne e la corruzione silenziosa dei dati.
I miei dati vengono inviati a un server quando uso questo strumento?
No. Tutta l'analisi e la formattazione avviene nel tuo browser tramite JavaScript. I tuoi dati CSV rimangono sul tuo dispositivo e non vengono mai trasmessi sulla rete. Puoi verificarlo aprendo la scheda Rete del tuo browser mentre usi lo strumento.
Posso cambiare il delimitatore durante la formattazione?
Sì. Lo strumento rileva automaticamente il delimitatore di input (virgola, tabulazione, punto e virgola o pipe) e ti consente di selezionarne uno diverso per l'output. Ciò è utile quando si converte tra formati CSV regionali o si passa da TSV al CSV standard.
Come gestisce lo strumento i campi virgolettati con interruzioni di riga incorporate?
Secondo RFC 4180, i campi contenenti interruzioni di riga devono essere racchiusi tra virgolette doppie. Il formattatore preserva queste interruzioni di riga incorporate e garantisce che le virgolette circostanti siano presenti. Se un campo ha un'interruzione di riga non virgolettata nell'input, il formattatore la racchiude tra virgolette durante la ri-serializzazione.
Qual è la dimensione massima del file che questo strumento può gestire?
Poiché lo strumento funziona nel tuo browser, il limite pratico dipende dalla memoria disponibile del tuo dispositivo. I file fino a 10-20 MB vengono in genere elaborati senza problemi sui dispositivi moderni. Per file di dimensioni maggiori, uno strumento da riga di comando come csvkit o Miller è un'opzione migliore.