Dati e fogli di calcolo · CSV Pulitore
CSV separati da punto e virgola: virgole decimali e impostazioni internazionali
· Sfondo
csv delimitatori interoperabilità
In gran parte dell'Europa la virgola è il separatore decimale, quindi il file "separato da virgole" utilizza invece il punto e virgola. Questo post spiega la logica locale dietro la divisione, come decidono i fogli di calcolo e cosa succede quando i file attraversano il confine.
Un file di un collega all'estero si apre come un'unica colonna: nel momento in cui la maggior parte delle persone scopre che CSV ha dei dialetti
Un'esportazione con punto e virgola aperta con il presupposto della sola virgola viene visualizzata come un'unica colonna di testo ampia. Questo sintomo riflette una scelta del parser, non una prova che i dati siano corrotti. ToolAcre offre il punto e virgola accanto a virgola, tabulazione e barra verticale e riscrive nel controllo il carattere effettivamente utilizzato.
La prima risposta dovrebbe essere strutturale: ispezionare il separatore grezzo e visualizzare l'anteprima. Non sostituire ciecamente ogni punto e virgola, perché il testo citato può contenere segni di punteggiatura e la modifica dei byte senza analisi può alterare i valori. Una lettura in grado di riconoscere il dialetto distingue i separatori dal contenuto della cella.
Virgole decimali: perché "1,5" è un numero valido in molte impostazioni locali e perché una virgola delimitatrice lo renderebbe non analizzabile
La cartella di lavoro spiega il punto e virgola tramite virgole decimali. Questo è un contesto di scambio utile, ma questa implementazione non analizza mai `1,5` come un numero localizzato. Conserva la cella come una stringa. Il significato della virgola all'interno di un valore e il significato del punto e virgola tra i campi rimangono quindi separati in fase di analisi.
Non convertire i segni decimali durante la riparazione dei delimitatori a meno che uno schema di destinazione non lo richieda esplicitamente. Un campo in codice o in prosa può legittimamente contenere una virgola. ToolAcre gestisce i limiti della tabella e lascia l'interpretazione numerica all'applicazione ricevente.
Il contesto della virgola decimale è plausibile, ma ToolAcre tratta i valori delle celle come stringhe e non analizza i numeri localizzati
Lo strumento non consulta l'impostazione regionale o del separatore di elenco del sistema operativo. Il rilevamento automatico analizza un campione di dieci righe sotto ciascun candidato supportato, misura la larghezza massima e premia i candidati che producono un rettangolo coerente. Se nessuno crea almeno due colonne, torna alla virgola.
Questo metodo basato su file è riproducibile in tutte le posizioni. Può ancora scegliere male su dati insoliti o su una sola colonna, motivo per cui esiste il selettore manuale. Il controllo riflette il valore rilevato e modificandolo rianalizza il testo originale, scartando i passaggi di pulizia già applicati.
ToolAcre rileva la forma del file; non legge le impostazioni del separatore di elenco del sistema operativo
Con il delimitatore errato, un record punto e virgola rimane una cella invece di diventare più colonne. ToolAcre non interpreta i numeri localizzati, quindi non può modificare silenziosamente `1,5` in un altro valore numerico durante l'analisi. L'errore è visibile nel conteggio delle colonne e nella forma di anteprima.
La mancata corrispondenza inversa può dividere le virgole senza virgolette in celle aggiuntive e attivare avvisi di righe irregolari. Le virgole tra virgolette rimangono protette dalla macchina statale. Leggi gli avvisi e confronta la larghezza dell'intestazione prevista anziché dare per scontato che una prima riga plausibile dimostri che tutti i record successivi sono allineati.
Il parser mostra letture strutturali, non cambiamenti numerici silenziosi
Utilizza `item;price;note` seguito da `A;1,5;"small, red"` e `B;2,0;plain`. L'analisi del punto e virgola produce tre colonne, preservando entrambe le stringhe contenenti virgole. L'analisi delle virgole lascia i punti e virgola all'interno dei campi e può invece creare divisioni fuorvianti attorno alle virgole.
Il rilevatore dovrebbe favorire il punto e virgola perché quel candidato produce una forma coerente a tre colonne mentre le virgole no. Questo esempio dimostra il comportamento del parser senza affermare che 1,5 abbia un valore numerico. Il sistema ricevente deve applicare la propria convenzione decimale documentata.
Esempio realizzato: rilevamento del punto e virgola con valori di stringa contenenti virgole
Lo scambio transfrontaliero migliora quando il delimitatore del nome del mittente e del destinatario, la codifica, la politica di intestazione e le convenzioni sui valori. "CSV" da solo non risolve nessuno di essi. Includere un piccolo dispositivo e verificarlo tramite l'esatto parser di ricezione prima di inviare un'esportazione di produzione.
Se è richiesto l'output della virgola, selezionare la virgola per la serializzazione dopo che l'origine del punto e virgola è stata analizzata correttamente. I campi contenenti virgole decimali verranno quindi racchiusi automaticamente tra virgolette, preservandoli come testo della cella. La conversione della sintassi non traduce la notazione decimale o i formati di valuta.
Cosa non copre: conversione dei formati numerici all'interno dei dati; il delimitatore e il segno decimale sono problemi separati
La conversione del formato numero non rientra nella riparazione del delimitatore di ToolAcre. Non trasforma le virgole in punti decimali, non riconosce i separatori delle migliaia né calcola gli importi. Si tratta di una conservazione deliberata della stringa, non di un'inferenza numerica incompleta. Lo schema di destinazione possiede quella trasformazione.
Inoltre, il percorso non può garantire il modo in cui un'applicazione per fogli di calcolo sceglie i separatori quando un file viene aperto. Può produrre solo il delimitatore selezionato nel suo output e le virgolette standard attorno ai caratteri in conflitto. Testare l'applicazione di destinazione anziché inventare il comportamento del fornitore.
Il delimitatore segue le impostazioni internazionali, non il file: in che modo la riparazione del delimitatore di ToolAcre CSV Cleaner fornisce un file con un separatore noto
In questo strumento, il delimitatore segue la forma del file analizzato o una scelta manuale, non le impostazioni locali. Questa correzione è importante perché due analisti in uffici diversi dovrebbero vedere lo stesso carattere di origine rilevato quando caricano un testo identico. L'ambiente non riscrive l'elenco dei candidati del parser.
Conferma il controllo, ispeziona la larghezza delle righe ed esporta per il consumatore noto. Il punto e virgola non è né una virgola spezzata CSV né una prova automatica dei dati con virgola decimale. È un separatore strutturale supportato e ToolAcre tratta ogni valore tra i separatori come testo.