'da CSV olarak verilen Excel dosyasını ayrıştırılamıyor Bazı CSV'leri ayrıştırmak için Ruby's CSV kitaplığını kullanıyorum. Bir Excel dosyasını CSV olarak dışa aktararak oluşturduğum oldukça iyi oluşturulmuş bir CSV dosyasına sahibim. Ancak, CSV.open(filename, 'r')
, CSV::IllegalFormatError
neden olur.Ruby: OS X
Dosyada hileli virgül veya tırnak işareti bulunmuyor ya da sorunlara neden olabilecek başka bir şey göremiyorum.
Sorun, satır sonlarıyla ilgili olabileceğinden şüpheleniyorum. Bir metin editörü (Aquamacs) aracılığıyla manuel olarak girilen verileri ayrıştırabiliyorum. Sadece Excel'den (OS X için) dışa aktarılan verilerle karşılaştığımda sorunların ortaya çıkması. Dışa aktarılan CSV'yi vim'de açtığımda, tüm metinler satırlar arasında görünen ^M
ile bir satırda görüntülenir.
Belgelerden, bir satır ayırıcısıyla open
sağlayabildiğiniz anlaşılıyor; ancak bu durumda ne olması gerektiği konusunda emin değilim.
çok teşekkürler - iki yararlı bilgi parçası için sizi iki kez ayırabilirdim. – grifaton
Ne '? ,,? \ R' ne yapıyor açıklayabilir misiniz? Teşekkürler! –
? X karakter x, yani bir sayı için kod noktasını döndürür. Bazı nedenlerden dolayı, CSV.open'in görmeyi beklediği şey budur. Bu yüzden alan ayırıcıyı ',' ve kayıt ayırıcıyı, aksi halde sorunlu olanı^M, 015, aka 13, CR olarak seçtik. BTW, vim replasman komutu çalışır, çünkü '' r '' desende CR 'dir, ancak yer değiştirmede NL' dir, bu aslında bir no-op değildir. – DigitalRoss