Bir excel elektronik tablosunu noktalı virgülle ayrılmış değerler dosyası olarak nasıl kaydederim?


28

Excel kullanıyorum ve dosyamı .csv yerine .scsv (noktalı virgülle ayrılmış değerler) sayfası olarak vermek istiyorum. Bunu yapmanın bir yolu var mı?

ps. Bir .csv yapamam ve virgülleri aralarında virgül içerdiğinden, virgülleri noktalı virgül ile arayamam ve değiştiremem.


Küçük bir programlamaya açıksanız, bir dönüştürücü, Python programlama dilinde, csvExcel .csv dosyalarını okumayı kolaylaştıracak ve daha sonra yeni sürümlerini yazmayı kolaylaştıran yerleşik bir modül kullanılarak oldukça kolay bir şekilde yazılabilir. İstediğiniz herhangi bir sınırlayıcı hakkında.
martineau

Girdilerde virgül olup olmadığına bağlıdır.
AER

Yanıtlar:


19

Tab Sınırlandırılmış ve sekmeleri noktalı virgüllerle değiştirmeye ne dersiniz?

Excel'de: Dosya -> Farklı Kaydet -> Biçimde "Sekmeyle Ayrılmış Metin (.txt)" öğesini ve ardından kaydetmeyi seçin.

Dosyayı not defterinde açın ve değiştirme penceresini açın. Doğrudan bu pencereye sekme yapamadığınız için, belgenizden bir sekme kopyalayın ve ardından Bul kutusuna yapıştırın ve; değiştirme kutusuna. Sonra hepsini değiştirin.

Bunun işe yarayacağını tahmin ediyorum, çünkü excel belgesinde sekmelerin olması çok nadirdir.


Çoğu kullanıcı için temel olsa da, bir dizi talimat verebilir misiniz?
Kanadalı Luke

Bu tamamen Excel dahilinde yapılabilir mi, öyleyse nasıl?
martineau

Tamamen Excel'de yapılabileceğini sanmıyorum. Excel biçimlendirmeyi gizler (sekmeler), böylece bunları değiştiremezsiniz. Onları noktalı virgüllerle değiştirdikten sonra, excel ile de açamazsınız (devasa bir hücre olurdu)
Robert

Regex kullanarak değiştirmek ve yerleştirmek \tişe yarayacağını varsayıyorum
Yassin Hajaj

Dosyanızda farklı bir dilden özel karakterler bulunduğunda (Yunanca gibi), karakter sembolleri '?' İle değiştirildiği için bu işe yaramaz gibi görünüyor.
Joos,

8

Ben Excel'de doğrudan çıkış ayırıcı ayarlayabilirsiniz, ancak (Windows'da varsayarak) Eğer OS liste ayırıcısını değişebileceğini sanmıyorum ;ki bitti - Regional Settings->Customize. Excel, csv dosyalarınızı çıktıran o ayarı kullanacaktır.


5
Önemli not: bunu yaparsanız, Uluslararasılaştırılmış Windows kitaplıklarını kullanan tüm Windows programlarının; Tüm CSV dosyalarının ayırıcı karakteridir. Bu tek seferlik bir çözüm ise, düzenli bir CSV dosyası kaydetmek ve virgülleri noktalı virgül olarak değiştirmek için bir editör kullanmak muhtemelen daha mantıklıdır
Isaac Rabinovitch

Bu değişiklik aynı zamanda CSV dosyalarının Excel'de açılmasını da etkiler. Ve yukarıdaki yorumda belirtildiği gibi, muhtemelen daha fazla program. Daha uyumlu bir CSV dosyası oluşturmak istiyorsanız, CSV dosyasının sep=;üstüne koyun , ardından dosyayı kaydettikten sonra, Liste Ayırıcısını ne olursa olsun tekrar değiştirebilirsiniz.
papo

7

LibreOffice Calc kullanın (ücretsiz indirilir ve tüm büyük işletim sistemlerinde çalışır).

Yarı virgülle ayrılmış değerlere kaydetmek için:

  1. Xlsx / csv dosyanızı açın
  2. Dosya -> Farklı Kaydet ...
  3. Filtre olarak "CSV'yi Filtrele" yi seçin (dosya adınız bittiğinde varsayılan olmalıdır .csv)
  4. "Filtre ayarlarını düzenle" yi işaretleyin ve Kaydet'e basın
  5. Dosya formatının onaylanmasını istediğinde, "Metin CSV Formatını Kullan" a basın.
  6. "Alan ayırıcıyı" noktalı virgül olarak değiştirin (buraya herhangi bir şey yazabilirsiniz).
  7. Tamam tuşuna basın.

LO Calc, hücre değerlerinde virgül ve noktalı virgüllerin doğru şekilde işlenmesini sağlar.


1
Teşekkürler, iyi çalışıyor. Bu kabul edilen cevap olmalı.
Ortomala Lokni,

3

Bir komut dosyası istiyorsanız, aşağıdakileri bir modüle yapıştırın.

Option Explicit
Sub export2scsv()
    Dim lastColumn As Integer
    Dim lastRow As Integer
    Dim strString As String
    Dim i As Integer, j As Integer

    lastColumn = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
    lastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row

    Open "output.scsv" For Output As #1

    For i = 1 To lastRow
        Cells(i, 1).Select
        strString = ""
        For j = 1 To lastColumn
            If j <> lastColumn Then
                strString = strString & Cells(i, j).Value & ";" ' Use semicolon instead of pipe.
            Else
                strString = strString & Cells(i, j).Value
            End If
        Next j
        Print #1, strString
    Next i

    Close #1
End Sub

3

Virgül virgülünü CSV için varsayılan Excel ayırıcısı olarak değiştirmek için - Bölge -> Ek Ayarlar -> Sayılar sekmesi -> Liste ayırıcı ve türüne gidin; varsayılan yerine,


2

Ayırıcıyı Özelleştir Biçimi ile genel olarak değiştirebilirsiniz.

Bölge ve dile göz at, Bölge'yi aç, sekme sayfasında Biçimler Ek Ayarlar düğmesini tıklayın ve sekme sayfasında Sayılar Liste ayırıcısının değerini değiştirdi:


Sadece cevaba bir bağlantı göndermeyin, cevabınıza göze çarpan detayları ekleyin. Hedeflenen sayfa geçerse, cevap işe yaramaz demektir. Ayrıca, Windows uzmanı olmasam da, bu, üç yıl önceki wmz'in cevabı ile aynı görünüyor.
blm

0

1.> Dosya formatını .CSV olarak değiştir (noktalı virgülle ayrılmış)

İstenen sonucu elde etmek için, Excel Seçeneklerinde sınırlayıcı ayarını geçici olarak değiştirmemiz gerekir.

Dosyaya Taşı -> Seçenekler -> Gelişmiş -> Bölüm Düzenleme

“Sistem ayırıcıları kullan” ayarının işaretini kaldırın ve “Ondalık Ayırıcı” alanına virgül koyun.

Şimdi dosyayı .CSV biçiminde kaydedin; noktalı virgülle ayrılmış biçimde kaydedin !!!


4
Alındığı ashwaniashwin.wordpress.com/2013/04/19/... ilişkilendirme gerekli olduğunu lütfen unutmayın.
Arjan

0

Değer listeniz A sütunundaysa şunu deneyin - Hücre B2 = A1 & ";" & A2 Hücre B3 = B2 & ";" & A3 Hücre B3'ü listenizin altına kopyalayın. Listenizdeki son hücreyi değerler olarak kopyalayıp yapıştırırsanız, noktalı virgülle ayrılmış listeniz olur. Daha sonra bunu Not Defteri, Word veya istediğiniz yere kopyalayabilirsiniz.


0

Excel'in birleştirme işlevi ile bunu 4 adımda kolayca yapabilirsiniz.

  1. Dosyanıza, bir .csv dışa aktarmasına girmelerini beklediğiniz noktalı virgül karakterlerinden oluşan bir sütun ekleyin.

  2. Verilerinizin sonunda yeni bir sütun başlatın ve ilk satırda =concatenate()işlevi kullanın . Son dosyada görünmesini istediğiniz tüm hücreleri seçtiğinizden emin olun. Formülün buna benzeyecek=concatenate(A1,A2,A3...)

  3. Elde edilen formülü kopyalayıp tüm veri satırlarına yapıştırın.

  4. Tüm formül sütununu seçin ve komşu sütuna Özel Yapıştır -> Değerleri yapıştırın . Şimdi tüm verilerinizi noktalı virgüllerle sınırlandırılmış olarak aldınız.

Son olarak, seçtiğiniz dosya biçimine dışa aktarın. Bunu Windows'ta .txt olarak dışa aktarırsanız, dosya uzantısını .csv olarak değiştirebilirsiniz, çünkü her ikisi de düz metin biçimleridir.


-3

Basit şekilde kullanıyorum: -

  1. Csv (noktalı virgül) dosyasını Not Defteri veya Notepad ++ ile açın.
  2. Bul ve Değiştir (Ctrl + H) noktalı virgül (;) ile virgül (,) arasında.
  3. Dosyayı kaydedin ve kapatın.
  4. Şimdi, MS-Excel ile değişiklik dosyasını açın.

Bu sadece, hiçbir dize ";" içermiyorsa işe yarar. veya "," Aksi takdirde bu yazarın gerçekte ne istediğini üretmez.
Ramhound

1
Bu yanlış yöne gidiyor. Soru, noktalı virgülle ayrılmış değerler dosyasının nasıl oluşturulacağını soruyor; bu cevap, noktalı virgülle ayrılmış değerler dosyasının zaten var olduğunu ve CSV dosyasının nasıl oluşturulduğunu açıklar - yanlış, sorunun temel kısıtını göz önünde bulundurmadığı için: yani, verilerin sınırlayıcı içerdiği biliniyor .
G-Man
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.