CSV Tablosu (.csv)
RFC StandartComma-Separated Values (CSV), her satırın bir veri kaydını temsil ettiği ve alanların sınırlayıcı karakterlerle ayrıldığı, tablo verileri için yaygın bir düz metin formatıdır.
XLSX biçimini CSV biçimine dönüştür
Tarayıcında XLSX biçimini CSV biçimine ücretsiz dönüştür. Dosyaları cihazında anında dönüştür.
CSV dosyasını çevrimiçi sıkıştır
Özel - dosyalar cihazınızdan asla ayrılmaz
İncele ve Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, CSV dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
Bayt düzeyinde başlık imzası (sihirli baytlar)
İşletim sistemleri ve dosya çözümleyicileri, CSV dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
Sabit imza yokASCII GÖSTERİMİ: Metin baytları; kodlama değişebilir
Standartlaştırma: RFC 4180 / IETF
Teknik Özellikler
| Kapsayıcı mimarisi | Tablo veri satırlarını ve sütunlarını temsil eden sınırlayıcılı düz metin dosyası |
| Sıkıştırma | Gzip / Deflate, tekrarlayan tablo kayıtlarında %85-%95 sıkıştırma sağlar |
| Bayt Düzeni (Endianness) | UTF-8 metin akışı (Excel tarafından kullanılan isteğe bağlı UTF-8 BOM EF BB BF baytları) |
| Renk Uzayları | Geçerli değil |
| Kanallar ve Yapı | Virgüllerle ayrılmış sütunlar ve CRLF ile ayrılmış satır kayıtları |
| Maksimum Boyutlar | Sınırsız; tüm dosyayı belleğe yüklemeden gigabaytlarca veri akışı sağlanabilir |
| Şeffaflık | Geçerli değil |
| Akış ve Aşamalı İşleme | Tüm veri hatları tarafından desteklenen yerel satır satır akış işleme desteği |
Teknik karşılaştırma matrisi: CSV ve rakipleri
| Teknik Nitelik | CSV (Güncel) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Dosya Türü | Düz metin tablo | Sıkıştırılmış XML elektronik tablosu | İkili sütunlu depolama | Hiyerarşik metin |
| Çoklu Sayfalar | Yok (yalnızca tek düz tablo) | Evet (birden fazla çalışma kitabı ve sayfa) | Bölüm tabanlı depolama | İç içe diziler ve nesneler |
| Veri Türleri | Türü belirtilmemiş ham metin | Temel veri türleri, formüller ve biçimlendirme içeren hücreler | Katı ikili sütun türleri | Temel türler (dize, sayı, mantıksal değer) |
| Büyük Veri Analitiği | Yavaş (her satırın doğrusal olarak okunmasını gerektirir) | Büyük veri için uygun değil | Son derece hızlı (sütun budama ve koşul itme) | Orta |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
Sütunlar sağa kayıyor veya satır sayıları eşleşmiyor.
Kök Neden: Çevresinde çift tırnak işaretleri bulunmayan, kaçış karakteri kullanılmamış bir virgül içeren metin alanı.
Kurtarma: RFC 4180'e göre virgül içeren alanlar çift tırnak içine alınmalıdır: "Smith, John".
Aksanlı karakterler Excel'de garip semboller olarak görünür (é yerine é gibi karakter bozulması).
Kök Neden: Excel, eski Windows ANSI/CP1252 karakter kodlamasını varsayarak bir UTF-8 CSV dosyasını açtı.
Kurtarma: Dosyanın başına 3 baytlık UTF-8 Bayt Sırası İşareti'ni (0xEF 0xBB 0xBF) ekle.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
CSV dosyaları Excel ve Google Sheets gibi elektronik tablo yazılımlarında doğrudan açılır ve kullanıcıları Formül Enjeksiyonu (CSV Enjeksiyonu) saldırılarına maruz bırakır.
Bilinen Saldırı Vektörleri
- Formül Enjeksiyonu: '=', '+', '-' veya '@' ile başlayan hücreler elektronik tablo makrolarını veya DDE komutlarını yürütür (örn. '=cmd|' /C calc'!A0').
- Tıklandığında hassas hücre verilerini uzak saldırgan sunucularına gönderen HYPERLINK() formülleri aracılığıyla veri sızdırma.
Savunmaya yönelik en iyi uygulamalar: Kullanıcı verilerini CSV'ye aktarırken, Excel'in hücreyi düz metin olarak işlemesi için '=', '+', '-', '@' ile başlayan hücrelerin başına tek tırnak (') veya sekme koy.
Tarihsel kökenler ve önemli dönüm noktaları
Temel Avantajlar ve Artılar
- Son derece basit: Herhangi bir metin düzenleyicide okunabilir ve her veritabanına ya da elektronik tabloya aktarılabilir.
- Tam bir bellek içi DOM oluşturmadan son derece hızlı satır satır akış.
- Minimum ek yük: Ayrıntılı etiket sözdizimi veya şema tanımı yoktur.
Teknik Kısıtlamalar ve Eksiler
- Standart veri türleri yok: Sayılar, tarihler, mantıksal değerler ve metinlerin tümü ham dize olarak saklanır.
- Birden fazla sayfa, hücre biçimlendirme, formül veya meta veri desteği yoktur.
- Sınırlayıcı çakışmaları (metin içindeki virgüller, Avrupa yerel ayarlarındaki ondalık virgüller) sık sık ayrıştırma hatalarına neden olur.
İlginç Teknik Bilgiler
- Virgüllerin ondalık nokta olarak kullanıldığı birçok Avrupa ülkesinde, CSV ayırıcısı olarak virgül yerine noktalı virgül (;) kullanılır.
- Microsoft Excel, ASCII dışı aksanlı karakterleri doğru şekilde görüntülemek için tarihsel olarak bir UTF-8 BOM (0xEF 0xBB 0xBF) gerektiriyordu.
- İngiltere Ulusal Sağlık Servisi (NHS), verilerin satır sayısını 65.536 ile sınırlayan eski bir Excel biçimine aktarılması nedeniyle 2020'de yaklaşık 16.000 COVID-19 temas izleme kaydını kaybetti.
Sıkça Sorulan Teknik Sorular
RFC 4180 nedir?
RFC 4180, CSV için resmi IETF standardıdır. Virgül, satır sonu veya çift tırnak içeren alanların çift tırnak içine alınmasını ve alan içindeki çift tırnakların ikilenerek kaçırılmasını ("") zorunlu kılar.
CSV dosyaları neden Excel'de bozuk karakterlerle açılıyor?
Microsoft Excel'in eski sürümleri, CSV dosyalarını doğrudan açarken UTF-8 yerine yerel Windows kod sayfasını (Windows-1252 gibi) varsayılan olarak kullanır. Dosyanın başlangıcına bir UTF-8 BOM (Bayt Sırası İşareti) eklemek, Excel'in UTF-8'i doğru şekilde kod çözmesini sağlar.
CSV Enjeksiyonu (Formül Enjeksiyonu) nedir?
CSV Enjeksiyonu, önde gelen formül tetikleyicileri ('=', '+', '-', '@') içeren güvenilmeyen kullanıcı girdisi bir elektronik tablo dosyasına aktarıldığında gerçekleşir. Excel gibi yazılımlarda açıldığında, elektronik tablo formülü veya dinamik veri alışverişi (DDE) komutunu otomatik olarak yürütür, potansiyel olarak sistem komutlarını çalıştırır veya veri sızdırır.
İlgili CSV Dönüşüm Çiftleri
Excel sayfasını CSV tablosuna dönüştürmek ham tablo verilerini, geniş yazılım uyumluluğu sunan yaygın bir metin biçimine çıkarır.
Basit metin tabanlı CSV dosyalarını zengin özelliklere sahip XLSX çalışma kitaplarına dönüştürmek gelişmiş veri biçimlendirmesi, formüller ve birden çok çalışma sayfası kullanmanı sağlar.
Düz metin dosyalarını yapılandırılmış ilişkisel veritabanlarına dönüştürmek, hızlı sorgular çalıştırmanıza ve karmaşık veri ilişkilerini yönetmenize olanak tanır.
İlişkisel veritabanı yedekleme betiklerini basit veri analizi ve raporlama için düz tablo biçimindeki elektronik tablolara dönüştür.
Çok boyutlu hiyerarşik HDF5 bilimsel veri kümelerini düz Telemetry CSV dosyalarına dönüştürmek, karmaşık iklim ve okyanus verilerini temel e-tablo yazılımlarında okunabilir hâle getirir.
Çok boyutlu NetCDF bilimsel ızgaralarını düz Telemetri CSV dosyalarına dönüştürmek, karmaşık iklim ve okyanus verilerini temel e-tablo yazılımlarında okunabilir hale getirir.
vCard dosyalarını CSV'ye dönüştürmek, hiyerarşik kişi kartlarını kolay veritabanı içe aktarımları için düz e-tablo satırlarına dönüştürür.