Excel satır sonları neden Not Defteri'ne aktarılmıyor?


31

Satırlı bir hücreyi kopyalamak Excel'de kesilir ve Not Defteri'ne yapıştırılırsa, metin bir satıra yapıştırılır. Neden?


2
Merhaba superuser'a hoş geldiniz! Sorunuza daha ayrıntılı bir cevap alabilmeniz için olabildiğince fazla ayrıntı vermeye çalışın. Başının üzerinde Kendi soru sormak en iyi soru sormak yardımına kullanışlı ipuçları için sayfa. Bunu Excel 2013 ve Notepad ++ ile test ettim ve bu iyi çalışıyor, ancak açıklanan sorununuzu Windows işletim sistemi ile birlikte gelen ve çalışmayan normal Notepad uygulamasıyla çoğaltmayı başardım.
angelofdev

Panonun aynı snippet'in birden fazla tadını destekleyebileceğini unutmayın (nereden geldiği hakkında çok fazla meta veri içeren ham metin). Hangisini en çok beğendiğini belirlemek alıcı programa bağlıdır. Not Defteri çok akıllı değil.
Thorbjørn Ravn Andersen

Yanıtlar:


27

Bu, elektronik tabloların çalışma şeklinin doğası gereğidir. Veri dolu bir elektronik tablonuz olduğunu hayal edin. Tüm bir veri satırını kopyalayacaksanız, o zaman Not Defteri'ne yapıştırın, tüm bu verilerin bir satırda olması gerekir. Bunun nedeni, başka bir veri satırını kopyalayıp yapıştırmanız gerekirse, bir sonraki veri satırının bir satırda olması gerekir. Kopyaladığınız ilk satırda satır kesmeleri olsaydı, veriler artık iki doğrusal satırda olmazdı. Verileri Not Defteri'nden kopyalayıp e-tabloya geri kopyalarsanız, doğru şekilde yapıştırmaz.


6
Bu cevap yanlış. Satırı keserek metni yapıştırdıktan sonra not defterini kaydetmeyi deneyin. Sonra dosyayı wordpad ile açın. Not Defteri'nin eski sürümlerinde sadece bir hata . Diğer cevabı doğru olarak işaretlemelisin .
Zak

@Zak yanılıyorsun. Excel'den yapıştırmanın herhangi bir basit metin düzenleyicide işleyiş şekli budur. Bağladığınız makalenin bir hata ile ilgisi yok, ancak Unix satır başı ve satır yayınları için destek eklemek için Not Defteri ile ilgili.
Keltari

4
@Keltari Aslında hayır, @Zak doğru. Bazı nedenlerden dolayı Excel'e bir satır sonu eklediğinizde (kullanarak Alt+Enter), yalnızca 0xA girilir, bunun yerine tam 0xD 0xA LFdeğil CR/LF. Excel bunu yorumlar ve satır sonu gösterir, düz not defteri beklemez çünkü CR/LF. Biçimlerde bir hatadan daha çok tespit edilen bir fark var, ancak yine de doğru sebep bu.
ChatterOne

4
@Keltari Tartışılacak bir şey yok. Bir ikili düzenleyici kullanın ve dosyada ne yazdığını görün.
ChatterOne

1
@Keltari Dürüst olmak gerekirse, bu olumlu ifadeler çoğunlukla HNQ'da kabul edilen bir cevap olmanın etkisidir. Diğer cevaplarla kaç kişinin daha aynı fikirde olduğunu görebilirsiniz.
kapex

45

Bu, Microsoft'un önceden Windows'ta yüklü olan temel metin düzenleyicisi olan Not Defteri'ni kullandığınızda geçerlidir.

Bununla birlikte, PSPad veya Notepad ++ gibi daha gelişmiş bir metin düzenleyicisi kullanabilirsiniz (hem mükemmel hem de ücretsiz) ve satır sonlarınızı aktarırsınız.

Excel :

Excel

Hücre işaretlendi, ardından Notepad ++ içine kopyala-yapıştır :

Notepad ++

Not Defteri'ne yapıştırılan aynı içerik (Windows varsayılan düzenleyici):

WindowsNotpad

Her iki durumda da, tırnak işaretlerinin otomatik olarak eklendiğini unutmayın!

Daha iyi editörler size LineFeed (LF) ve CarriageReturn (CR) gibi kontrol karakterlerini görüntüleme seçeneği sunar. Notepad ++ 'da şöyle görünür:

Notepad ++ withcontrochars

Sonuç olarak: ihtiyaçlarınıza göre aracınızı seçin. Editörde korunan hücre sınırlarına ihtiyacınız varsa, ancak hücre içeriği biraz değişebilirse, Not Defteri'ni kullanın. Satır sonları dahil dokunulmamış hücre içeriğine ihtiyacınız varsa ve hücre sınırlarının 1: 1 tekrarlanabilirliği çok önemli değilse, başka bir düzenleyici kullanın.

Bu tür verilerin toplu olarak işlenmesi

Hem hücre sınırlarına hem de aynı anda 1: 1 korunmuş hücre içeriğine ihtiyacınız varsa, sorunla karşılaşabilirsiniz.

Daha akıllı çözümler olabilir, ancak böyle durumlarda yaptığım herhangi bir dilde (VBA, Python veya en çok neyi istersen) küçük bir program yazmaktı ve satır sonları için yer tutucu dizeleri ekleyen (basit bir şey gibi) Daha sonra tekrar CR ve LF kontrol karakterleriyle değiştirilebilen "### Linebreak ###". Elbette, bu daha sonra işe yarar ve sadece büyük miktarda veri işlemek zorundaysanız mantıklı olur.

Eklenen tırnak işaretleriyle de sorun yaşayabilirsiniz. Bunlar, ilk bakışta, satır sonları dahil edilse bile hücre sınırlarının korunması için faydalı olabilir. Ancak, hücrenizde orijinal içeriğin bir kısmında tırnak işareti olabilir ve ardından yeni sorunlar yaşarsınız. O zaman bunun için çeşitli çözümler var, ancak dikkatinize ihtiyacı var.


12
Notepad + + CRLForada gösteren aslında aslında gördüğü LFve tam olması gerektiğini varsayar CRLFve dönüştürür.
3D1T0R

@ 3D1T0R Bunun nedeni, hat beslemesi olmayan bir satırbaşının okunabilirlikten muzdarip olacağından şüpheleniyorum. Bu nefis bir yer olsa verimli olur.
Stian Yttervik

4
@ 3D1T0R: Notepad ++ satır sonu ayarına bağlıdır. Gerçekten sadece bir LF olan orijinal Excel formatını korumak için "ikili yapıştırma" mümkündür.
Thomas Weller

1
Bu kabul edilen cevap olmalıdır
ChatterOne

1
Windows 10 sürüm 1809'daki Not Defteri'nin LF'yi satır sonu olarak kullanma seçeneği olduğunu (CR-LF yerine) unutmayın. Bunu kullanırsanız, dönüştürme yoktur, ancak satır izleri hala düzgün şekilde görüntülenir.
Erik,

34

Keltari 'ın cevabı bu yanıt teknik farka odaklanır ederken, mantıksal akıl yürütme verir.

Hesaplamada kullanılan üç farklı satır sonları vardır:

  • Unix ve macOS 10.0+ satır sonları satır besleme karakterini kullanır ( LF)
  • Macintosh (macOS 10.0'dan önce) satır sonları satır başı karakterini kullanır ( CR)
  • Windows satır sonları satır başı ve satır besleme karakterlerinin bir birleşimini kullanır ( CRLF)

Bu, yazarların çalışma şeklini bir kenara bırakıyor.

Excel, birden çok satır içeren hücreleri temsil etmek için bu satır sonlarının bir kombinasyonunu kullanır:

  • Hücreler Tabkarakter ile ayrılır .
  • Satırlar CRLFkarakterlerle ayrılır .
  • Çok satırlı hücreler her satırı yalnızca LFkarakteri kullanarak ayırır .

Bu, çalışma kitabınızı bir .txtdosya olarak kaydettiğinizde ve bu karakterleri göstermeyi destekleyen bir metin düzenleyicide açtığınızda görünür hale gelir .

Excel

Notepad ++

Not Defteri yalnızca CRLFyeni satırlar gibi işler ve yok sayar LFveya CRkendileri tarafından. Hala belgedeler, ancak hiçbir şekilde görünmüyorlar.

Not: Bunu, ileri ve geri yapıştırırken göremezsiniz, çünkü Notepad ++, normal Not Defteri ayarlamazken, sizin için satır sonlarını otomatik olarak ayarlar.


3
Ayrıca bahsetmeliyiz LF olduğunu not defteri basitçe gözle görülür bunu göstermez, not defteri yapıştırılan zaman hala aslında mevcut. (Etkin bir sıfır genişlik alanıyla aynı şekilde işler.) Bu nedenle, yapıştırılan verileri notepad'den Excel'e geri kopyalamak neden bu satır sonlarını içerir (Excel, satırları otomatik olarak yeniden boyutlandırmasa da).
3D1T0R

3
Bunun yalnızca Excel'in çalışma kitaplarını metin dosyalarına verme şekli olduğunu unutmayın. Xlsx dosyaları için, bir dizgenin içindeki satır kesmeleri aslında ile temsil edilir CRLF.
kapex

3
İlginç bir şekilde, "gerçekten" bir CRLF - içeren bir hücre inşa etmek tamamen mümkündür ="A"&CHAR(13)&CHAR(10)&"B". Formüller tarafından üretilen satır sonları excel'de görünmez, ancak "yapıştırma değerleri" ile kopyalanıp yapıştırıldığında düzgün çalışır. "A<CRLF>B"Not defterine el ile yazarak yapıştırdığınız ve kopyaladığınız değer de CRLF'yi koruyacaktır.
Random832

3
@ 3D1T0R doğru. Tek bir Excel hücresini "a \ nb" metiniyle (burada "\ n" yeni bir satırı temsil eder) Not Defteri'ne kopyalamayı deneyin. Not Defteri'nde (tırnak işaretleri içinde) "ab" göreceksiniz. Ancak, imleci "a" nın önüne koyarsanız ve klavyenizdeki Sağ ok tuşuna üç kez basarsanız, "a" ve "b" arasında görünmez, sıfır genişliğinde bir karakter olduğunu göreceksiniz! Gerçekten de, Shift tuşunu kullanarak onu seçip panoya kopyalayabilirsiniz!
Andreas Rejbrand

2
@AndreasRejbrand: Bu tekniği LFEOL'lerle metin dosyalarını hızlı bir şekilde okunabilir hale getirmek için bir kaç kez kullandım . yani bir Bul LFseçin karakteri, Ctrl+C , Ctrl+ Home, Ctrl+ F, Ctrl+ V, Enter, Esc, Enter. Sonra tekrar tekrar F3, Entersonuna kadar. [Düzenleme: <kbd> yorumlarda çalışmaz mı?]
3D1T0R

1

Excel, hücre içindeki yeni satırları göstermek için LF'yi kullanır. Not Defteri, bunun yeni bir satır olduğunu düşünmez, çünkü Windows, genel olarak yeni satırlar için CRLF kullanır.

Notepad ++, nispeten basit Notepad'den daha akıllıdır ve bu nedenle LF'yi yeni bir satır olarak da yorumlar.


Notepad ++ kullanmıyorum, ama meraktan: Ne çok satırlı bir hücre içeren bir Excel tablosu varsa ve bunu Notepad ++ içine kopyala-yapıştır?
Andreas Rejbrand

1
@AndreasRejbrand Çok satırlı hücreler sarılacak "ve Notepad ++ tüm satır sonlarını eşleştirecek şekilde normalleştirecektir. Buraya bakınız . Bunun yerine not edin .txtve Not Defteri ++ 'da açarsanız, çok satırlı hücrelerde LFyalnızca olur. Buraya bak .
Worthwelle
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.