Bunun eski bir soru olduğunu biliyorum, ama sorun yakında bitmeyecek. CSV dosyalarının çoğu programlama dilinden kolayca oluşturulabilir, oldukça küçük, düz metin düzenleyici ve her yerde bulunan bir kullanıcı tarafından okunabilir.
Sorun sadece metin alanlarındaki tarihlerle değil , aynı zamanda sayısal bir şey de metinden sayılara dönüştürülür. Bunun sorunlu olduğu birkaç örnek:
- Posta kodu
- Telefon numaraları
- devlet kimlik numaraları
hangi bazen olabilir sayısal dönüştürüldüğünde atılır olsun bir veya birden fazla sıfır (0) ile başlar. Veya değer, matematiksel işleçlerle karıştırılabilen karakterler içerir (tarihlerdeki gibi: /, -).
Daha önce de belirtildiği gibi "prepending =" çözümünün ideal olmayabileceğini düşünebileceğim iki durum ,
- dosyanın MS Excel dışında bir programa aktarılabileceği durumlarda (MS Word'ün Adres Mektup Birleştirme işlevi akla gelir),
- burada insan tarafından okunabilirlik önemli olabilir.
Bu sorunu çözmek için kesmek
Değerden birine sayısal olmayan ve / veya tarih dışı bir karakter eklenirse / eklenirse, değer metin olarak algılanır ve dönüştürülmez. Yazdırılmayan bir karakter, görüntülenen değeri değiştirmeyeceğinden iyi olur. Ancak, düz eski boşluk karakteri (\ s, ASCII 32), Excel tarafından kesildiğinden ve değer hala dönüştürüldüğünden bunun için çalışmaz. Ancak , iyi çalışacak başka yazdırma ve yazdırma dışı alan karakterleri de vardır. Bununla birlikte en kolayı , basit sekme karakterini (\ t, ASCII 9) eklemektir (sonra ekleyin).
Bu yaklaşımın faydaları:
- Klavyeden veya hatırlaması kolay ASCII koduyla (9) kullanılabilir,
- İthalatı rahatsız etmez,
- Normalde Adres Mektup Birleştirme sonuçlarını rahatsız etmez (şablon düzenine bağlı olarak - ancak normalde yalnızca satırın sonuna geniş bir alan ekler). (Ancak bu bir sorunsa, diğer karakterlere bakın, örneğin sıfır genişlikli alan (ZWSP, Unicode U + 200B)
- CSV'yi Not Defteri'nde (vb.) görüntülerken büyük bir engel değildir,
- ve Excel'de (veya Not Defteri vb.) bul / değiştir ile kaldırılabilir.
- CSV'yi içe aktarmanız gerekmez , ancak CSV'yi Excel'de açmak için çift tıklayabilirsiniz .
Sekmeyi kullanmak istememenizin bir nedeni varsa, uygun başka bir şey için Unicode tablosuna bakın.
Başka seçenek
yeni MS Excel sürümleri tarafından içe aktarma için belirli bir biçimin de kabul edildiği ve .XLS biçimine benzer çok daha fazla seçeneğe izin veren XML dosyaları oluşturmak olabilir, ancak bununla ilgili deneyimim yok.
Yani çeşitli seçenekler var. Gereksinimlerinize / uygulamanıza bağlı olarak, biri diğerinden daha iyi olabilir.
İlave
MS Excel'in daha yeni sürümlerinin (2013+) artık CSV'yi elektronik tablo biçiminde açmadığı söylenmelidir - birinin iş akışında bir tane daha hız artışı, Excel'i daha az kullanışlı hale getiriyor ... En azından, etrafta dolaşmak için talimatlar var. Örneğin bu Stackoverflow: .csv dosyalarını Excel 2013'te nasıl doğru şekilde görüntüleyebilirim?
.