CSV Formatter

Format dan normalisasi data CSV dengan opsi delimiter kustom

Coba contoh

Input CSV

CSV Terformat

Berjalan lokal · Aman untuk menempel rahasia
CSV yang telah diformat akan muncul di sini…
Delimiter output:

Apa Itu CSV Formatting?

CSV (Comma-Separated Values) formatting adalah proses normalisasi teks tabular mentah agar delimiter, quoting, spasi, dan akhir baris mengikuti aturan yang konsisten. RFC 4180, diterbitkan pada 2005, mendefinisikan standar CSV yang paling banyak digunakan: field dipisahkan oleh koma, record diakhiri dengan CRLF, dan field apa pun yang mengandung koma, tanda kutip ganda, atau baris baru harus dibungkus dalam tanda kutip ganda. Sebuah CSV formatter mengambil data CSV yang berantakan atau tidak konsisten dan menulis ulangnya agar sesuai dengan konvensi ini.

File CSV di dunia nyata jarang datang dalam kondisi bersih. Ekspor spreadsheet dari Excel, Google Sheets, dan utilitas database dump masing-masing menerapkan strategi quoting yang berbeda, menangani spasi secara berbeda, dan mungkin menggunakan titik koma atau tab sebagai pengganti koma. Ketika file-file ini dimasukkan ke dalam parser yang mengharapkan input RFC 4180 yang ketat, hasilnya sering berupa baris yang rusak, kolom yang bergeser, atau kehilangan data yang tidak terdeteksi. Melakukan formatting sebelum pemrosesan mendeteksi masalah ini lebih awal.

CSV formatter berbeda dari CSV converter. Formatting mempertahankan data dalam format CSV. Ini menormalisasi quoting, memangkas spasi yang tidak diperlukan, menyelaraskan kolom, dan secara opsional mengganti delimiter. Converting mengubah format sepenuhnya, menghasilkan output JSON, HTML, SQL, atau Markdown.

Mengapa Menggunakan CSV Formatter Ini?

Alat ini mem-parse dan men-serialize ulang CSV Anda sepenuhnya di browser. Data Anda tidak pernah meninggalkan perangkat Anda.

Formatting Instan
Tempel CSV dan lihat output yang dibersihkan secara langsung. Formatter mem-parse dan men-serialize ulang di browser saat Anda mengetik.
🔒
Pemrosesan yang Mengutamakan Privasi
Semua parsing dan formatting terjadi di tab browser Anda. Tidak ada data yang dikirimkan melalui jaringan. Aman untuk dataset milik perusahaan, kredensial, dan PII yang tidak boleh meninggalkan perangkat Anda.
🔧
Delimiter yang Dapat Dikonfigurasi
Beralih antara delimiter koma, tab, titik koma, dan pipe. Alat ini mendeteksi delimiter input secara otomatis dan memungkinkan Anda memilih delimiter yang berbeda untuk output, sehingga normalisasi lintas format menjadi mudah.
📋
Salin dan Unduh Satu Klik
Salin CSV yang telah diformat ke clipboard Anda atau unduh sebagai file. Siap untuk diimpor ke database, spreadsheet, atau data pipeline tanpa pengeditan tambahan.

Kasus Penggunaan CSV Formatter

Pengembangan Frontend
Bersihkan file fixture CSV yang digunakan sebagai data mock di komponen React atau Vue. Quoting yang konsisten mencegah kegagalan parsing selama proses build pengembangan.
Penyerapan Data Backend
Normalisasi ekspor CSV dari API pihak ketiga sebelum memasukkannya ke ETL pipeline Anda. Memangkas spasi dan menstandarkan delimiter mencegah bug pergeseran kolom.
DevOps dan CI/CD
Format file konfigurasi CSV atau data seed yang disimpan dalam version control. Formatting yang konsisten mengurangi noise diff dan mempercepat tinjauan kode.
QA dan Pengujian
Siapkan fixture pengujian CSV dengan pola quoting dan delimiter yang sudah diketahui. File input yang dapat direproduksi memudahkan penulisan asersi terhadap output parser.
Rekayasa Data
Pra-proses dump CSV dari database lama sebelum memuatnya ke data warehouse modern. Memperbaiki masalah quoting dan ketidakcocokan delimiter menghemat berjam-jam debugging.
Pembelajaran dan Pendidikan
Bereksperimen dengan aturan quoting RFC 4180 dengan menempel berbagai input dan mengamati bagaimana formatter menormalisasinya. Cara praktis untuk memahami edge case CSV.

Aturan Quoting dan Escaping CSV (RFC 4180)

RFC 4180 mendefinisikan aturan khusus tentang kapan dan bagaimana field harus dikutip. Enam skenario di bawah ini mencakup kasus-kasus di mana perilaku quoting penting.

SkenarioContohAturan
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

Perbandingan Delimiter CSV

Pilihan delimiter memengaruhi kompatibilitas, keterbacaan, dan seberapa sering Anda memerlukan field yang dikutip.

Koma (,)
Default RFC 4180. Didukung oleh setiap parser CSV dan spreadsheet. Memerlukan quoting ketika nilai field mengandung koma, yang umum dalam data alamat dan teks.
Tab (\t)
Digunakan dalam file TSV (Tab-Separated Values). Karakter tab jarang muncul dalam data field, sehingga quoting jarang diperlukan. Umum dalam bioinformatika dan ekspor database.
Titik Koma (;)
Standar dalam ekspor CSV berlokal Eropa (Jerman, Prancis, Brasil) di mana koma digunakan sebagai pemisah desimal. Excel menggunakan titik koma ketika lokal sistem menggunakan desimal koma.
Pipe (|)
Jarang dalam teks alami, sehingga menjadi pilihan yang baik untuk data berantakan di mana koma dan titik koma muncul dalam nilai field. Umum dalam ekspor sistem mainframe dan lama.

Contoh Kode

Contoh-contoh ini menunjukkan cara mem-parse CSV yang berantakan dan men-serialize ulang dengan formatting yang konsisten dalam berbagai bahasa pemrograman. Setiap cuplikan menangani pemangkasan spasi, normalisasi delimiter, dan quoting.

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

Pertanyaan yang Sering Diajukan

Apa yang dilakukan CSV formatter?
CSV formatter mem-parse teks CSV mentah, menormalisasi quoting di sekitar field, memangkas spasi yang tidak diperlukan, dan men-serialize ulang data dengan delimiter dan gaya akhir baris yang konsisten. Outputnya adalah file CSV yang bersih dan sesuai dengan RFC 4180 atau aturan formatting yang Anda pilih.
Apa perbedaan CSV formatting dengan CSV validation?
Validation memeriksa apakah file CSV sesuai dengan sekumpulan aturan dan melaporkan kesalahan. Formatting melangkah lebih jauh: ia menulis ulang file untuk memperbaiki masalah tersebut. Validator memberi tahu Anda bahwa baris 5 memiliki koma tanpa kutipan. Formatter memperbaikinya dengan menambahkan kutipan di sekitar field.
Mengapa saya perlu memformat file CSV sebelum mengimpornya?
Alat impor database, ETL pipeline, dan perangkat lunak spreadsheet masing-masing memiliki aturan parsing CSV yang sedikit berbeda. Field tanpa kutipan yang mengandung koma akan dipecah menjadi dua kolom dalam parser yang ketat. Memformat CSV Anda agar mengikuti RFC 4180 sebelum impor mencegah kesalahan pergeseran kolom dan kerusakan data yang tidak terdeteksi.
Apakah data saya dikirim ke server saat menggunakan alat ini?
Tidak. Semua parsing dan formatting terjadi di browser Anda menggunakan JavaScript. Data CSV Anda tetap berada di perangkat Anda dan tidak pernah dikirimkan melalui jaringan. Anda dapat memverifikasi ini dengan membuka tab Network browser Anda saat menggunakan alat ini.
Bisakah saya mengubah delimiter saat memformat?
Ya. Alat ini mendeteksi delimiter input secara otomatis (koma, tab, titik koma, atau pipe) dan memungkinkan Anda memilih delimiter yang berbeda untuk output. Ini berguna saat mengonversi antara format CSV regional atau beralih dari TSV ke CSV standar.
Bagaimana alat ini menangani field yang dikutip dengan baris baru yang tertanam?
Sesuai RFC 4180, field yang mengandung baris baru harus diapit oleh tanda kutip ganda. Formatter mempertahankan baris baru yang tertanam ini dan memastikan kutipan di sekitarnya ada. Jika sebuah field memiliki baris baru tanpa kutipan dalam input, formatter membungkusnya dalam kutipan selama re-serialization.
Berapa ukuran file maksimum yang dapat ditangani alat ini?
Karena alat ini berjalan di browser Anda, batas praktisnya bergantung pada memori perangkat Anda yang tersedia. File hingga 10-20 MB biasanya diproses tanpa masalah di mesin modern. Untuk file yang lebih besar dari itu, alat command-line seperti csvkit atau Miller adalah pilihan yang lebih baik.