Noktalı virgülle ayrılmış CSV dosyalarını Excel'in ABD sürümünde açma


95

Bir .csv dosyasına çift tıkladığımda, Excel'de açılır. CSV dosyaları noktalı virgülle ayrılmış sütunlara sahiptir (virgül değil, aynı zamanda geçerli bir biçimdir).

Bir Alman Windows / Excel kurulum kullanarak, açılan dosya doğru görüntüleniyor, sütunlar csv dosyasında noktalı virgüllerin bulunduğu yerde ayrılıyor.

Ancak aynı şeyi (ABD) İngilizce Windows / Excel kurulumunda yaptığımda, ilk sütundaki noktalı virgülleri de içeren tüm verileri gösteren yalnızca bir sütun içe aktarılır.
(Testler için İngilizce kurulumum yok, kullanıcılar davranışı bildirdi)

Windows bölgesel ayarlarında liste ayırıcı değerini değiştirmeye çalıştım, ancak bu hiçbir şeyi değiştirmedi.

İngilizce bir kurulumda bu CSV dosyalarını çift tıklatarak açabilmek için ne yapabilirim?

EDIT:
Bu durumda CSV dosyalarına güvenmemek için en iyi çözüm gibi görünüyor. CSV dosyalarının uluslararası olarak kullanılmasını mümkün kılan bazı formatları olacağını umuyordum.
En iyi çözüm, XLS dosyaları oluşturmaya geçeceğim.


1
Kullanıcılarınıza LibreOffice Calc kullanmalarını tavsiye edebilirsiniz - CSV'leri rastgele ayırıcılar iyi çalışıyor.
naught101

Yanıtlar:


1

Bu dosyalar dağıtılıyor mu? İndirildi? Yerel olarak oluşturulmuş?

Sorununuzu kullanıcının PC'sine erişmeden ve dosyada "çift tıklatmadan" farklı bir şey yapmak zorunda kalmadan çözmenin benzersiz yolunun, dosyaları dağıtmadan veya yüklemeden veya oluşturmadan önce .xls dosyasına dönüştürmektir. .csv dosyası yerine .xls (veya çalışan başka bir biçim). Dosya sayısına ve bunların oluşturulma biçimine bağlı olarak bunu bir komut dosyasıyla veya el ile çalışan bir Excel ile yapabilirsiniz.


evet, bence doğrudan XLS dosyalarını oluşturmanın en iyi yolu budur. Onları uluslararası olarak kullanılabilir kılan CSV dosyaları için bazı formatlar olacağını umuyordum, ancak bu mümkün değilse, XLS dosyaları nerede olursa olsun çalışacak.
Holgerwa

8
Bu nasıl doğru cevap, işe yaramaz.
Stevie G

Korkunç cevap - diğer olumlu cevaba bakınız.
jmc

203

Bunu CSV dosyasının ilk satırına ekleyin:

sep=;

veya

sep=,

Bu, sistem ayarını geçersiz kılar ("liste ayırıcı karakteri") ve Excel dosyayı doğru şekilde açar.


4
+1 bunu excel 2010'da yaptı ve mükemmel çalıştı.
N Reed

8
Bu tür diğer ayarların bir listesi var mı? Excel'e kullanması, ondalık ayırıcı olarak kullanması, genellikle kullanması gerektiğini söyler; sütun ayırıcı olarak.
ZweiBlumen

5
Excel için mükemmel çalışır, ancak bunun diğer elektronik tablolarda veya veri programlarında desteklenmeyebileceğini unutmayın. Bu sadece içinde sep=veya sep=;içinde fazladan bir ilk satır olduğunu gösteren küçük bir sorun olabilir , ancak bazı otomatik programlar veya komut dosyaları, fazladan ilk satırı beklemeyebilir, bu da sütun başlıkları veya sep=;satırın gerçek veriler olarak yorumlanmasına neden olabilir.
Sygmoral

5
Buna dikkat et. Excel'de
kaydederseniz, şunları yapacaktır:

1
PHP fwrite($fileHandle, 'sep=,' . "\r\n");ile sorunu tamamen çözdüğümü onaylayabilir fputcsv.
h2ooooooo

26

Metin Alma Sihirbazı'nı kullanabilirsiniz. Bu , çift ​​tıklatmada çalışmaz ancak dil ayarları ile uğraşmayla ilgili olmayan en iyi sonuç budur.

Excel 2003'te menü çubuğundaki Data-> Import External Data-> Import Data(2007'de nerede olduğunu söyleyemem, şu anda elimde değil). CSV dosyanızı bulun ve seçin.

Açıldığında Text Import Wizard, kullanacağınız sınırlayıcıları belirlemenize olanak sağlayan, alırsınız .


Outlook 2007’de Veri sekmesine gidip sütununuzu seçin ve Veri Araçları setlerinde bulunan Sütunlara Metin düğmesini tıklayın.
Hondalex

1
Evet, bu bir çözüm. Ne yazık ki, verilere bakması gereken kullanıcılar bunu yapmaya istekli değildir. Bir "çift tıklatma" açabiliyorlar ancak daha karmaşık bir şey yapamıyorlar. Onları en azından biraz eğitmeye çalıştık, ama reddediyorlar.
Holgerwa

1
@Holgerwa - Dosyaları kullanıcılara vermeden önce bir çeşit dönüştürme işlemi ile çalıştırmak mümkün müdür? Yoksa noktalı virgülle sınırlı kalmaları mı gerekiyor? Diğerleri bunu önerdi, ancak bir çeşit betiği kullanarak virgüllerle noktalı virgül değiştirmek oldukça kolay olmalı (basit bir bulma / değiştirme işlemine karşı öneririm, çünkü bunları tırnak içinde dönüştürmek istemezsiniz).
DMA57361

6

Bu makaleye bakın:
CSV Dosyalarını Excel ile Açarken Sorun Var mı? Avrupa için bölgesel ayarlar nedeniyle Excel'de virgül ve noktalı virgül sorunu

Hangi 3 çözüm sunar:

  • CSV dosya uzantısını TXT olarak değiştirin (Excel ile bir TXT dosyasını açtığınızda, sınırlayıcıyı seçebileceğiniz metin dosyası içe aktarma sihirbazını başlatır)
  • CSV dosyalarınızdaki “,” tümünü “;” ile değiştirin
  • Bölgesel ve dil ayarlarınızı değiştirin

Liste bölgesel değerini yalnızca Windows bölgesel ayarlarında değiştirdiğiniz için, makalenin için "." Decimal SymbolVe "," yazmayı söylediğini unutmayın List Separator.

VBA ile kendinizi rahat hissediyorsanız, bakınız:

Noktalı virgülle ayrılmış CSV dosyasını Excel 2000'de VBA ile açma Excel'de
Metin Verme ve Alma


Tüm geçerli seçenekleri kabul ediyorum, ancak ne yazık ki, bu CSV dosyalarının kullanıcıları ile normal bir durumum yok. .TXT alma işlemi işe yaramaz (DMA57361’in yanıtı hakkındaki yorumuma bakın), noktalı virgülleri virgüllerle değiştirmek ondalık ayırıcı sorunları nedeniyle çalışmaz ve bölgesel ayarları değiştirmek işe yaramaz çünkü Kullanılan bilgisayarlar Kullanıcılar sadece dosyaları çift tıklarlar ve beklediklerini almazlarsa, sorunu çözmede şikayet etmeyi reddederler.
Holgerwa

@Holgerwa: Kullanıcı bilgisayarlarını kontrol etmiyorsanız, yapabileceğiniz hiçbir şey yoktur. Çünkü benim diğer önerim, işleyiciyi sınırlayıcıları düzelten (ancak akıllıca) ve Excel'i çağıracak olan kendi programınız olarak .csv uzantısına değiştirmek olacaktır.
harrymc

@Holgerwa: Lütfen bölgesel ayarlarla ilgili yukarıdaki düzenlememe dikkat edin.
harrymc

3

Denediğim en iyi yol, bilgisayarınızın bölgesel ayarlarını aşağıdaki gibi ayarlamaktır:

  • "Standartlar ve Formatlar" içerisinde "İngilizce (ABD)" seçin;
  • "Yerler" içerisinde "ABD" yi seçin.

Bu benim için çalışıyor, sadece bir deneyin.


Aslında, OP'nin sorunu tam tersi. Ondalık simgesi olarak virgül almak için bir Avrupa bölgesine geçiş yapmalı ve ardından noktalı virgül Liste ayırıcısı olacaktır.
yosh m

0

Dosyada başka virgül yoksa, virgüllere dönüştürmek için noktalı virgüllerdeki bir metin düzenleyicide bir bul / değiştir yapabilirsiniz. Bundan sonra normal csv dosyası olarak kabul edin.


Bu CSV dosyalarının farklı ülkelerde (bölgesel ayarlar) çalışması gerekir ve birçok bölgesel ayarda virgül nokta yerine ondalık ayırıcıdır. Bir "standart" virgülle ayrılmış değerler dosyası çalışmaz. Sanırım noktalı virgüllerin CSV dosyaları için geçerli bir sınırlayıcı olarak eklenmesinin nedeni budur.
Holgerwa
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.