Excel'in bazı içerik alanlarında virgül içeren bir CSV dosyasını içe aktarmasını nasıl sağlayabilirim?


13

Excel'in CSV dosyamı içe aktarmasını nasıl sağlayabilirim ?

Dosya

CSV olduğunu iddia eden bir dosyam var. Her biri çift tırnak (evet, tarihler ve sayılar bile) ile çevrili 10 alan içerir. Bu alanların 2 veya 3'ü virgül içerir . Ancak bu alanlardaki veriler de tırnak işaretleri ile çevrilidir.

Sorun

Bu dosyayı açmaya çalıştığımda, Excel tırnak işaretlerini tamamen yok sayar ve verilerin bir parçası olduğunu varsayar.

Bu nedenle virgül içeren alanları birden çok sütuna böler.

Bu kötü, en azından benim için.

Örnek veriler

"20051", "", "2009 30 Eylül 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, 195 - SOMETEXT - SOMETEXT, 196 - SOMETEXT - SOMETEXT "," 45 - SOMET, SEXET - 140, S62 - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT "
"20052", "SOMETEXT", "2009 Eylül 08 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT "," 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT "

Ne denedim?

Ayırıcıları ve benzerlerini belirtmek için içe aktarma özelliğini kullandım, ancak bu yardımcı olmuyor gibi görünüyor.

"Metin sınırlayıcı" çift tırnak "{yok}" ve tekrar geri geçiş denedim. Bu yalnızca ilk sütunu etkiliyor gibi görünüyor. Diğer sütunları tıklayıp bu ayarı her birine uygulamak mümkün olsaydı, bu sorun tekrarlanabilirdi. Ancak durum böyle değildir ve bunun sütunlar üzerinde çalışması amaçlanmıştır.

Başka ne deneyebilirim?


1
Hangi Excel sürümü? Ve tamamen yamalı mı?
harrymc

Bunu 2002 ve 2007'de gördüm. 2007'den emin değilim, ancak 2002'nin tamamen güncel olduğundan eminim
Rory Becker

CSV'ye bir bağlantı sağlayabilir misiniz? Ya da sorunu gösteren kısaltılmış bir versiyon mu?
Josh Comley

Eklenen örnek veriler
Rory Becker

Yanıtlar:


13

Ben sadece sorunu çoğaltan hızlı bir test denedim.

Test.csv “123”, “4,5,6” olarak Word'de 1 satır CSV (akıllı tırnak işaretleri kullanır) oluşturdum ve açıkladığınız gibi Excel'de açtım.

"Ve" ile "


Örneğinizle oynadıktan sonra Excel'in alanlar arasındaki boşlukları sevmediğini fark ettim

örneğin yerine

"20051", "", "2009 Sep 30 02:53:23", ...

İstediğiniz

"20051","","2009 Sep 30 02:53:23",...

iyi bir Düzenli İfade değiştirme ile başa çıkabilmelidir

Find:    |("[^"]*",) |
Replace: |\1|

(yalnızca görsel ipuçları için dikey karakterler)

Veya .Net koduna erişiminiz varsa değiştirin ;-)

Ayrıca, Arjan'ın işaret ettiği gibi , A1 hücresinin BOM ve çevresindeki qoutes içermesini önlemek için dosyayı UTF-8'den ANSI'ye dönüştürmeniz gerekebilir.

Uluslararası karakterleri işlemeyen ANSI kodlu CSV Catch 22 rastladım ve UTF kodlu CSV düzgün Excel tarafından işlenmiyor; ve CSV'yi korurken bir çözüm bulamadı. Uluslararası karakter desteği gerekiyorsa, XML (veya yerel XLS) formatları basitlik pahasına tek yol gibi görünmektedir.


Akıllı alıntılar içermez. Bu dosya .Net ile yazılmış bir programdan std alıntı işaretlerini kullanmak üzere oluşturulmuştur.
Rory Becker

UTF-8 dosyalarının farklı kodlanması gerektiğini söylemedim. Ancak UTF-8'i içe aktarırken, Excel'e kodlamanın ne olduğunu söylemek gerekir. UTF-8, bu uzun kodlama listesinde aşağıda bir yerde gizlidir.
Arjan

Birçok UTF-8 kodlu CSV dosyasını içe aktardım. Ama onlar bir malzeme varsa eminim.
Arjan

@lumbarious: Sen bir STAR'sın! Mükemmel çalışıyor ... Excel'in bununla başa çıkamayacağına inanamıyorum :(
Rory Becker

1
Evet, görünüşe göre alanlar arasındaki boşluklar Excel 2011'i tamamen karıştırıyor. Boşlukların kaldırılması sorunu düzeltir ve Excel'in tırnak işaretlerini verilerin bir parçası olarak eklemesini önler. Benim tahminim bir yerde çift tırnak sadece virgül doğrudan bitişik ise verileri sınırlamak belirtir bir spec var.
Peter Gluck

9

Bu sorun birkaç yıldır beni rahatsız ediyor. Çözümü yeni keşfettim ve yukarıdaki yanıtlarda belirtildi, ancak açıkça belirtilmedi.

Virgülden sonraki boşluk!

Bu excel'e aktarılmaz;

HEADER1, HEADER2
"1,000", "2,000"

Süre

HEADER1,HEADER2
"1,000","2,000"

İşler!


3
Süper Kullanıcıya Hoş Geldiniz! Bu cevap yararlı ve açık bir şekilde yazılmıştır. Katkınız için teşekkür ederiz. Umarız buralarda kalırsınız.
user1717828

YAAAS! Kabul edilen cevap, bu cevaptan farklı olarak gömülen soruya gerçek bir cevap verir. Operasyon akıllı tırnak kullanmaz.
dardub


2

Bu dosyayı açmaya çalıştığımda, Excel tırnak işaretlerini tamamen yok sayar ve verilerin bir parçası olduğunu varsayar. Bu nedenle virgül içeren alanları birden çok sütuna böler.

Yanlışlıkla lumbarius gibi akıllı-tırnak kullanmıyorsanız önerdi ve Windows üzerinde farzederek: o olabilir Bölgesel ayarlarına kaynaklanabilir. Dosya »Aç'ı çift tıklarken veya kullanırken, Excel sizden herhangi bir ayrıntı istemez, yalnızca bu ayarları kullanır.

Yine de, içe aktarma işlevinin (sizin yaptığınız gibi) manuel olarak çalıştırılması gerekirdi, bu yüzden bölgesel ayarları değiştirmek yardımcı olacaktır ...


Bu bir cevaptan ziyade bir yorum gibi görünüyor ...
Metafaniel

Bu öneri sorunumu tam olarak çözdü! CSV içe aktarma (Veri> Metinden / CSV'den) yapmak beklendiği gibi çalışmıyor, ancak CSV dosyasında Dosya> Aç'ı daha önce yaptıysam işe yaradı. Sonra tüm tabloyu diğer çalışma kitabımın içine kopyalayıp yapıştırabildim.
WOUNDEDStevenJones

1

Dosyanızın karakter kodlamasını kontrol ettiniz mi? Karakter kodlamasını UTF-8 olarak ayarlamayı deneyin.

Karakter kodlamasını değiştirmek için notepad2'yi kullanabilirsiniz .


Kodlama Notepad2 tarafından "imzalı UTF8" olarak bildirildi
Rory Becker

Ardından, içe aktarırken kodlama listesinde aşağı kaydırmanız gerekir. UTF-8, listede düşük bir yerde gizlidir. Girişinizi zaten olarak (kullanmaya gerek UTF-8 kodlanmış CSV dosyaları, fakat bir UTF-8 gerçekten kullanılmak üzere ne Excel anlatmalıyız. Not normal alıntı karakterlik ASCII aynı kodlanmış olacağını, Batı ve UTF -8, ama belki de imza (Bayt Sırası İşareti) veya diğer bazı karakterler karışık mıdır?)
Arjan

@Peter Resmi bağlantıyı neden Wikipedia'ya değiştirelim? Bu hiç mantıklı değil mi? İnsanları çok fazla göndermek istemiyoruz ve bu kesinlikle bir düzenleme gerektirmiyor - özellikle iki yaşındaki bir gönderide.
slhck

1

Sadece buradaki yanıtları ekleyerek: CSV dosyalarınızdaki COMMAS'tan sonra boşluklara odaklanın. Verilerinizde alıntılanan alanlar varsa Excel bunları sevmez.

Excel beğenileri (4 sütun veri):

a, b, c, d

Ancak beğenmez (3 sütun veri):

a, "b, c", d

Şunlardan hoşlanır (3 sütun veri):

a,"b, c",d

Sadece bu soruna çarptım. Bu nota ulaşana kadar kafamı duvara vuruyordum. Bu sadece şaşırtıcı. Excel 2017 kullanıyorum ve bu saçmalık hala var ...
Albert Godfrind

1

Bugün bu problemle karşılaştım ve benim için de işe yarayan bir çözüm buldum.

Ortamım / bağlamım: Hem çift tırnak hem de virgül içeren bazı (form) sorular içeren bir web sayfam var. Hem sorular hem de cevaplar veritabanından çıkarılır ve raporlama amacıyla bir Excel dosyasına yazılır.

Yukarıda açıklanan aynı sorun vardı: Çift tırnak ve virgül içeren sorular Excel'de birden çok sütuna ayrılıyordu.

Benim amacım için, çift ​​tırnak yerine iki tek tırnak kullanmak hile yaptı.

-> Web sitesinde, iki tek tırnak site ziyaretçilerine çift tırnak gibi görünüyor

-> Excel dosyasında yine, rapor verilerini görüntüleyen kullanıcılar için iki tek tırnak çift tırnak işareti gibi görünür

Bu çözümün herkes için işe yaramayacağını anlıyorum, ancak umarım birisine yardımcı olacaktır.


1

Bunu kullanarak bunu başardı:

a,b,c,"=""(1,2,3)"""

dört sütun verir:

|  a  |   b   |   c   |   (1,2,3)   |

0

Bunu yapmanın başka bir yolu:

  1. Dosyayı LibreOffice veya OpenOffice Calc'de açın.
  2. Virgülle ayrılmış UTF-8 gibi doğru içe aktarma seçeneklerini ayarlayın ...
  3. Dosyayı ons veya xls olarak depolama
  4. Yeni dosyayı Excel'de açın.

Bu şekilde, Excel'in birçok (tümü?) Sürümünün BOM olmadan doğru şekilde işleyemediği UTF-8 gibi doğru kodlamayı ayarlayabilirsiniz ve alanın içindeki bazı metinlerin yerini alabilecek bir normal ifade hakkında endişelenmenize gerek yoktur ve fark etmiyorsun.

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.