Excel CSV ve standart CSV arasındaki gerçek fark nedir?
Örneğin, bir hücrenin içinde satır sonları olan sütunları işlerken, hücre nasıl farklı şekilde kodlanır?
Excel CSV ve standart CSV arasındaki gerçek fark nedir?
Örneğin, bir hücrenin içinde satır sonları olan sütunları işlerken, hücre nasıl farklı şekilde kodlanır?
Yanıtlar:
Kesinlikle "standart" CSV olarak tanımladığınıza bağlıdır. Bildiğim kadarıyla Excel , "CSV Dosyaları için Ortak Biçim ve MIME Türü" olan RFC 4180'de belirtilen kurallara uyar .
İlk satırdaki ilk hücrenin iki satır sonu olduğu bir tablo düşünün. Excel'de aşağıdaki gibi görünecektir:
+---+---------------+------------+------------+
| | A | B | C |
+---+---------------+------------+------------+
| 1 | col1, line1a | | |
| | col1, line1b | | |
| | col1, line1c | col2, row1 | col3, row1 |
| 2 | col1, row2 | col2, row2 | col3, row2 |
+---+---------------+------------+------------+
Şimdi Excel bunu nasıl dışa aktarır? Bakalım - bir metin editörü bunu gösterecekti:
"col1, line1a
col1, line1b
col1, line1c","col2, row1","col3, row1"
"col1, row2","col2, row2","col3, row2"
Çok sofistike değil. 0D
Satır sonu hücremizin olduğu yere bir satır başı (hex ) ekler . Her hücre çift tırnak içine alınır. Ayrıca, gerçek satırlar bir satır başı ile ayrılır.
Bunu doğru şekilde ayrıştırmak için bir CSV ayrıştırıcısının
Eğer bunu yapmadıysa, böyle bir şeyle sonuçlanırdınız - şimdi iki yerine dört satır olduğunu unutmayın , çünkü satır sonlarını görmezden gelemedi.
+---+---------------+------------+------------+
| | A | B | C |
+---+---------------+------------+------------+
| 1 | "col1, line1a | | |
| 2 | col1, line1b | | |
| 3 | col1, line1c" | col2, row1 | col3, row1 |
| 4 | col1, row2 | col2, row2 | col3, row2 |
+---+---------------+------------+------------+
Ancak, RFC'nin ne dediğine bakalım, belki Excel doğru mu yaptı?
Satır sonu (CRLF), çift tırnak ve virgül içeren alanlar çift tırnak içine alınmalıdır.
Düzgün, tam olarak Excel'in yaptığı şey bu. Özetle, Excel "standart" bir CSV dosyasının önerilerini izliyor gibi görünüyor. Uygun bir CSV ayrıştırıcısı verildiğinde, Excel CSV dosyalarını da okuyabilmelidir.
Orijinal csv uygulamasından benim anlayışım, tüm metin alanlarının tırnak içine alınmış ve sayıların olması gerekmiyordu. Excel bunu yapmaz ve Excel tarafından oluşturulan csv dosyalarınızı microsoft olmayan platformlara yüklemeye çalışırsanız başarısız olurlar. Bu standart bir microsoft yaklaşımıdır, birlikte çalışabilirliği görmezden gelin ve kurallara körü körüne uymaya odaklanın. IE'de benzer bir şey oldu, dolgu ve kenar boşluğu özellikleri için html / css kurallarını doğru bir şekilde izlediler ve mevcut her web sayfası ve web tarayıcısının farklı şekilde davrandığını görmezden geldiler. Sonuç olarak, hemen hemen her web sayfasının IE için özel kuralları vardır. Ben excel işe yaramaz tarafından üretilen csv dosyaları bulmak ve kendimi düzgün bir şekilde kendiniz oluşturmak için "bitiştir" işlevlerinin bir sütun kullanın.