Excel'i bir CSV dosyasının tüm sütunlarını alıntı yapmaya nasıl zorlarsınız?


89

Excel, yalnızca belirli alanlara tırnak işaretleri koyar, Excel'i her sütunun etrafında tırnak işaretleri bulunan bir CSV dosyasını kaydetmeye nasıl zorlarım?

Yanıtlar:


44

XLS dosyasını LibreOffice veya OpenOffice'de, ardından Farklı Kaydet .... 'te açarsanız ve Metin CSV'yi seçerseniz, sınırlayıcı olarak tırnak işaretleri de içeren bir CSV dosyası oluşturmaya yardımcı olur. Örneğin: "Smith", "Pete", "Kanada" "Jones", "Mary", "İngiltere"

"Tüm metin hücrelerini alıntıla" kutusunu işaretlemeniz yeterlidir: LibreOffice ile CSV’ye Aktar

Sayısal alanlar da belirtmek için, hücre aralığınızı vurgulayın ve kaydetmeden önce hücre biçimlendirmesini "metin" olarak değiştirin.


7
Belirli bir sorunun cevabı olmasa da, müşterilerimin makro kullanmasını sağlamaktan daha basit bir çözüm!
Duncanmoo

Her gün bu yöntemi kullanmaktan yoruldum, bu yüzden buradayım
vladkras

OpenOffice taşınabilir bir yazılım olduğundan bunun en kolay ve en uygun çözüm olduğunu düşünüyorum. Hiçbir şey yüklemeniz veya herhangi bir kod yazmanız gerekmez.
Scott Chu

gelmiş geçmiş en iyi cevap !!
rajya vardhan

20
Hiç bir cevap değil. Soru açıkça MS Excel ile ilgili
vladkras

43

Bu sayfa aynı zamanda atın ağzından çıkan bir çözüme sahiptir:

http://support.microsoft.com/kb/291296/en-us

Bağlantı bozulursa, aranacak konu şudur:

"Excel'de hem virgül hem de alıntı sınırlayıcı içeren bir metin dosyasını dışa aktarma prosedürü" ve / veya "Q291296"

tl; dr: makrolarını kullan


10
Dikkat edilmesi gereken bir nokta, makronun satır ve sütun değerleri için Tamsayı kullanmasıdır. 32768'den fazla satır vermeyi denerseniz bir hata ile karşılaşırsınız. Örneğin veri tiplerini Long olarak değiştirmek bu sorunu çözecektir.
Dan

İyi nokta (+1). İlk önce yalnızca 32768 satıra sahip Excel sürümleri için yazıldığından beri kodu güncellememiş görünüyorlar.
sahmeepee

9
Bu makro ile bir özü oluşturma özgürlüğünü ve birkaç düzeltmeyi aldım
fableal

@fableal Büyük snippet! Cevap olarak hak ediyor.
xiankai

Office 2010, aynı şekilde, sahmeepee'nin dediği gibi, seçili satırların çok üzerinde taşmıştır.
access_granted

18

Bu kolay çözümü buldum:

  1. Tırnak eklemek istediğiniz hücreleri vurgulayın.
  2. Sağ tıklayın ve gidin: Hücreleri Biçimlendir → Sekme: Sayı → Kategori: Özel
  3. Aşağıdakini Tür alanına yapıştırın : "''"@"''"(aşağıdaki ayrıntılara bakın)
  4. "Tamam" ı tıklayın

Yapıştırdığınız dize "''"@"''", çift alıntı, tek alıntı, tek fiyat teklifi, çift fiyat teklifi, @ sembol, çift fiyat teklifi, tek fiyat teklifi, tek fiyat teklifi, çift fiyat teklifidir.

Excel 2010 için burada bulunan bilgilerden düzenlenmiştir .


Hmmm .. bu bana '' ITEM '' (iki tek tırnak) yerine "(bir çifte alıntı) verdi. Ben daha sonra aradım ve düzeltmek için değiştirdim.
Clay Nichols

6
Format \ ”@ \” olmalıydı
manat

LibreOffice kullanıyorsanız, bu cevap aslında mükemmel bir cevaptı - seçeneğin orada bulunduğunu ispatlayan belgelerine rağmen, Biçim> Sayı Biçimi menüsünde bir "metin" seçeneği bulunmuyor. LibreOffice'de "Hücreleri Biçimlendir" seçeneğini sağ tıklarsanız, açılır menüde sunulan bir şekilde işe yaramaz 6 seçenek yerine, TAM hücre yorumlama seçeneklerinin bir listesi verilir.
1owk3y

@ manat'ın cevabı, ama kıvrık tırnaklar olmadan:\"@\"
MSC

12

Powershell'in doğru şekilde boşaldığı görülüyor. yani bir şey

powershell bilmiyorsanız, windows makinesinde powershell.exe arayın.

import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8

Umarım birine yardımcı olur.


Kolaylık sağlamak için, CSV'nizin kaydedildiği klasörü sağ tıklayıp Shift + komutunu basitleştiren Burada PowerShell Aç penceresini seçin import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8. Dosya adları etrafında boşluk veya diğer özel karakterlerin bulunduğu tek tırnak işaretlerini kullanmayı unutmayın.
Walf

4

Bu benim için en kolay olanı: Elektronik tabloyu Access 2010'a aktardım ve oradan ayrılmış bir metin dosyası olarak dışa aktardım. Bana tarlalarımın etrafındaki alıntı işaretlerini verdi. Şimdi 42k satırlar için bir dakikadan daha az zaman alıyor, artık adım atıyorum.


Tek dezavantajı, alanın kendisi bir çift alıntı içeriyorsa olur.
access_granted

3

VBA Makrosunu içermeyen ancak Notepad ++ veya benzer bir makro tabanlı metin editörü gerektiren başka bir iş buldum.

Dosyanızı Sekmeyle ayrılmış metin olarak verin, sonra verilen dosyayı Not Defteri ++ içinde açın. 'Tab' karakterinin tüm örneklerini "," (örneğin tam anlamıyla çift alıntı, virgül, çift alıntı) metni ile değiştirin ve sonra metnin her satırını öneklemek ve sonlandırmak için başka bir makro kullanın.

Biraz taklit ama bir VBA makrosu çalışmasını sağlamaktan daha hızlı buldum.


1
Bunu Notepad ++ 'da yapmak isteseydiniz, düzenli ifade arama ve değiştirme yöntemini kullanmak en iyisi olur ve ardından 3 değiştirme işleminin tümünü (satır başlangıcı, sekme ve satır sonu) tek bir yerde yapabilirsiniz
sahmeepee 19.03.2015

3

Tırnak eklemek istediğiniz hücreleri vurgulayın. Biçim -> Hücreler -> Özel Kopyala / Aşağıdakini Tür alanına yapıştırın: \ ”@ \” “Tamam” ı tıklayın. Hepsini elle yapmadığınız için mutlu olun.

Gönderen: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/


1
Bu, alfa için iyi çalışır; sayısal değerleri olan sütunlar için \ ”# \” gerekir.
DropHit

\ "@ \" Ve \ "# \" arasında çalışır. Ancak yine de sayısal sütunlar için Notepad ++ başlıklarını düzenlemem ve sonra "" "ile tüm" öğelerini değiştirmem gerekiyor. Ne acı.
Gary

Denemedim .. ama eğer bir csv oluşturuyorsanız, sütunları metne değiştiremezsiniz ve \ "@ \"
Steve Coleman

2
  1. Tırnak eklemek istediğiniz hücreleri vurgulayın.
  2. Sağ tıklayın ve gidin: Hücreleri Biçimlendir → Sekme: Sayı → Kategori: Özel
  3. Aşağıdakini Tür alanına yapıştırın: "''"@"''"(aşağıdaki ayrıntılara bakın)
  4. "Tamam" ı tıklayın
  5. .Csv dosyasını Not Defteri ile açın (veya eşdeğeri)
  6. Tümünü ' '(tekrarlanan tek tırnak işaretleri) ile "(çift tırnak) değiştirin
  7. Hepsini değiştir ;
  8. Revize edilmiş .csv dosyasını kaydet

1

Eğer Notepad ++, sadece ihraç csv dosyasını açın her satırın başına kadar tırnak eklemek 1 hat, 1 sütununda imleci koymak için kullanırsanız, ardından menü tıklayın Düzen / Sütun Editör ... , alana ' Yazı eklemek için ' enter " , sonra her satırın başında bir alıntı olacaktır, sonra tüm sekmeleri aramak / değiştirmek için normal ifadeyi kullanabilirsiniz.


0

Windows kullanıcıları için

  1. Excel dosyası olarak "CSV olarak kaydet"
  2. Mircrosoft Works Elektronik Sayfası ile kaydedilmiş dosyayı açın
  3. Elektronik tabloyu CSV olarak "Farklı kaydet"
  4. Sayısal olmayan tüm alanların şimdi "etraflarında" var

Bunun ileri ve geri çeşitliliğe sahip bir klavye teklifi olmadığını unutmayın.
Öyleyse CSV'yi Mysql tablosuna LOAD yapmak için kesip, ENCLOSED parametresine yapıştırın ve yapıştırın, aksi halde neden mesaj aldığınızı merak edeceksiniz.#1083 - Field separator argument is not what is expected


3
Mircrosoft İşleri <-? Bundan emin misin?
nixda

0

Excel'deki üç sütunu almak ve dizeyi dördüncü sütunda oluşturmak için aşağıdaki yaklaşımı kullandım.

=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""

İle Sorunum "''"@"''"yaklaşımının verilerim ikinci sütun bir sayı oldu olan "''"@"''"yaklaşım numaraları ile hiçbir şey yapmadı. Bazen ikinci sütun boştur, ancak son metin dosyasında gösterildiğinden emin olmam gerekiyordu.


0

Başka bir yolla MS erişiminiz varsa (Ver 2007 verdim) dosyayı içe aktarın ve sonra metin dosyası olarak dışa aktarın. Ardından .txt dosyasını .csv olarak değiştirin. Tüm sayı alanlarının etrafında çift tırnak olmayacağına dikkat edin, bu nedenle de sayılar etrafında çift tırnak kullanmaya ihtiyacınız varsa, Access'te alanı bir sayı alanından metin alanına değiştirin.


0

Ayrılmış ve alıntılanmış dizeleri dışa aktarmak yalnızca Excel 2016 ve Not Defteri ile yapılabilir; verilerin bir kopyası, bir formül, bir dışa aktarma, bir dosya özellikleri değişikliği, Not Defteri'nde bir değiştirme, dışa aktarılan dosyayı kaydetme ve temizleme ile yapılabilir. Her biri basit bir adımdır. Detayda:

  1. Orijinali ve yedeğini korumak için yeni bir ara sayfaya aktarılacak sütunları kopyalayın, daha sonra silinecek yeni sayfa ile elektronik tabloyu olduğu gibi bırakın.

  2. Aksi halde oluşmayan karakter (ler) i koyun, sütundaki dize her bir ucuna '#' veya ';-)' deyin, formülle birlikte A'yı söyleyin, formülü =concat("#",trim(A1),"#")başka bir sütunun tüm satırlarına yerleştirin.

    • Bitişik sütunlar aynı anda yapılabilir, ancak karakter dizileri olarak okunmalarını önlemek için rakamlar vermeyin.
    • Döşeme, vasıfsız ihracat davranışını tetikleyebilecek her boşluktan kaçınır.
    • Dizeler, içe aktarmayı etkileyebilecek bir '"' içermemelidir.
  3. Formülü taşımayacak şekilde '123' yöntemini kullanarak yeni sütunları A ... üzerine geri kopyalayın.

  4. Sayıları içeren alanlar arasında virgül koymak için sayfayı CSV dosyası olarak dışa aktarın.

  5. File.csv özelliklerini, Not Defteri ile açılabilecek şekilde değiştirin.

  6. İsteğe bağlı karakterleri '"' ile değiştirmek için Not Defteri'ni kullanın.

  7. "Keyfi karakter" olarak kullanmak mantıklı görünse de, farklı bir hücreye konulmalı, 'A $ 50' deyin ve sonra dışa aktarmada görünen şey "görünüşe göre uygunsuz bir tetikleyici."

  8. Not defterinde, dosyanın kaydedilmesi, içe aktarılacak bir * .txt dosyası olması ve ara * .csv silinmesi gerekir.

  9. Ekstra elektronik tablo sayfasının temizlenmesi ile görev tamamlandı.

Belki de Access dışa aktarma araçları bir gün Excel'e gömülebilir. Kes ve yapıştır kullanan programlar arasında daha genel bir yaklaşım, macun seçeneklerinin çıktı yapısını yorumlamak ve sınırlayıcıları sağlamak için çeşitli seçenekler içermesi olacaktır.


0

Michael'in 21 Ağustos 2014 tarihli cevabı gerçekten çok yardımcı oldu. Ancak, bir iki adım daha uygulamak zorunda kaldım:

  1. .Csv dosyasını Not Defteri ile açın (veya eşdeğeri)
  2. Tüm '' (tekrarlanan tek tırnak işaretleri) "(çift tırnak) ile değiştirin
  3. Hepsini değiştir ; (Excel'in Almanca versiyonunda sınırlayıcı olarak kullanılır),
  4. Revize edilmiş .csv dosyasını kaydet

Düşüş için açıklama yok mu? Kurs için Par, ancak başkalarının nasıl öğrenmesi bekleniyor? SİZ Sn Downvoter, neyin yanlış olduğunu çok açık düşünebilir, ama herkese açık olmayabilir. Burada bir topluluk kurmaya çalışıyoruz ve siz yardım etmiyorsunuz.
Mawg

-1

Bu benim tarifim. Bunu yapmaktan nefret ediyorum ama daha iyi bir yolum yoktu. Benim durumumda, herhangi bir alandan alıntı alamıyorum. Ayrıca UTF-8 kodlamasını kullanmam gerekiyordu; sekmeler yerine, yaptığım şey bu.

NOT: Tekli tırnak işaretleri içine alınmış çift tırnak işareti koymanın uygunluğu nedeniyle, hem tuş vuruşlarını hem de gerçek karakterleri ve dizgileri göstermek için bilerek "klavye biçimlendirme" kullandım.

  1. Excel e-tablonuzda herhangi birinden önce yeni bir sütun ekleyin (1. sütunun başlığına tıklayın, sütunun tamamı seçildi, sağ tıklayın, "ekle" yi seçin).
  2. Yeni sütundan tüm boş hücre aralığını seçin (varsayılan olarak seçilirler). Formül alanına istediğiniz şeyi ekleyin: örneğin xxx,. Tüm sütunu aynı değerle doldurmak için CTRL+ düğmesine basın enter.
  3. Dosyayı Unicode Metin (* .txt) olarak kaydedin.
  4. Dosyayı Notepad ++ ile açın.
  5. Ara / Değiştir'i açmak için CTRL+ düğmesine basın f.
  6. Değiştir sekmesine gidin.
  7. "Arama modunda" "Genişletilmiş (\ n, \ r, \ t, \ 0, \ x ...)" seçin.
  8. "Ara" alanına xxxartı tabtuşa bir kez basın.
  9. "Değiştir" alanına, "(bir çift alıntı) girin .
  10. Tümünü Değiştir'e basın.
  11. "Ara" alanına bir tabtuş vuruşu koyun .
  12. "Değiştir" seçeneğine girin ";"(çift alıntı, noktalı virgül, çift alıntı).
  13. Tümünü Değiştir'e basın.
  14. Neredeyse tamamladınız. Son çifte alıntı için, \r"Ara" alanına ve "\r""Değiştir" seçeneğine (çifte alıntı, ters eğik çizgi, çifte alıntı) girin. Tümünü Değiştir'e basın.
  15. Çince karakter vb. Kullanmıyorsanız, kodlamayı UTF-8 olarak değiştirebilir ve dosyayı güvenle kaydedebilirsiniz.

-1

Bu meseleye defalarca rastladım. İşte şimdiye kadar bulduğum en basit çözüm.

  1. Dosyayı Excel olarak kaydedin
  2. Excel'i bir Access tablosuna alma
  3. Tabloyu Access'ten bir metin dosyasına verin.

Erişim, dışa aktarma sınırlayıcısını virgül olarak ve uygun metin alanlarını tırnak işaretleri ile belirtmenize izin verir. Dışa aktarma sihirbazında, istediğiniz dizgilerin etrafındaki sınırlayıcı veya karakterleri belirleyebilirsiniz.

Alanları belirli bir sırayla düzenlemek için Access sorgusu oluşturmanız veya Access tarafından eklenen otomatik kimlik alanını gizlemeniz gerekebilir.

Ayrıca ... bir CSV'ye dışa aktarıldığında, Excel'de tekrar açmayın. Sonuçlara bakmak istiyorsanız, not defterinde açın. Excel, bir csv'nin verilerini karıştırmaya meyillidir .... Doğru hatırlıyorsam, baştaki sıfırlarla doldurulmuş alanlar olduğunu düşünüyorum.


Bu, user326114'ün yanıtındaki bilgiyi kopyalıyor gibi görünüyor.
fixer1234

-1

OpenOffice uygulamasının bir Excel elektronik tablosu almak ve her metin alanının çevresinde tırnak işaretleri içeren bir metin (csv) dosyası oluşturmak için kullanımı.

Excel dosyasını OpenOffice ile açın ve aşağıdaki adımları izleyin:

Dosya> Farklı Kaydet

Oluşturmak üzere olduğunuz dosya için yeni bir ad girin

Filetype için "Test CSV (.csv)" seçeneğini seçin

"Filtre Ayarlarını Düzenle" onay kutusunu işaretleyin

"Kaydet" i tıklayın

"Geçerli biçimi koru" yu seçin

Alan sınırlayıcı virgül olmalıdır:,

Metin sınırlayıcı bir tırnak işareti içermelidir: "

"Tüm metin hücrelerini alıntıla" kutusunu işaretleyin

"Tamam" ı tıklayın

Bu benim için çalıştı!

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.