Podczas kopiowania komórki z podziałami linii w programie Excel i wklejania jej do Notatnika tekst jest wklejany do jednej linii. Dlaczego?
Podczas kopiowania komórki z podziałami linii w programie Excel i wklejania jej do Notatnika tekst jest wklejany do jednej linii. Dlaczego?
Odpowiedzi:
Wynika to z charakteru działania arkuszy kalkulacyjnych. Wyobraź sobie, że masz arkusz danych pełen danych. Jeśli chcesz skopiować cały wiersz danych, a następnie wklej go do Notatnika, wszystkie te dane muszą znajdować się w jednym wierszu. Wynika to z faktu, że jeśli skopiujesz kolejny wiersz danych i wkleisz go, następny wiersz danych musi znajdować się w jednym wierszu. Gdyby w pierwszym skopiowanym wierszu były podziały wiersza, dane nie byłyby już w dwóch wierszach liniowych. Jeśli skopiujesz dane z Notatnika i wrócisz do arkusza kalkulacyjnego, nie wklei się ono poprawnie.
Alt+Enter), wprowadzana jest tylko wartość 0xA, a nie pełna 0xD 0xA, co oznacza LFzamiast CR/LF. Excel interpretuje to i pokazuje podział linii, podczas gdy zwykły notatnik tego nie robi, ponieważ oczekuje CR/LF. Różnica w wykrywaniu formatów to więcej niż błąd, ale nadal jest to właściwy powód.
Dzieje się tak, gdy używasz Notatnika, który jest podstawowym edytorem tekstowym firmy Microsoft, który jest już wstępnie zainstalowany w systemie Windows.
Możesz jednak użyć bardziej zaawansowanego edytora tekstu, takiego jak PSPad lub Notepad ++ (zarówno doskonały, jak i darmowy), a otrzymasz przeniesienie podziałów linii.
Excel :
Komórka zaznaczona, a następnie skopiuj-wklej do Notepad ++ :
Ta sama treść wklejona do Notatnika (domyślny edytor Windows):
Pamiętaj, że w obu przypadkach znaki cudzysłowu były dodawane automatycznie!
Lepsze edytory dają również opcję wyświetlania znaków kontrolnych, takich jak LineFeed (LF) i CarriageReturn (CR). W Notepad ++ wygląda to następująco:
Podsumowując: wybierz swoje narzędzie w zależności od potrzeb. Jeśli potrzebujesz zachować granice komórek w edytorze, ale zawartość komórki może być nieco zmieniona, użyj Notatnika. Jeśli potrzebujesz pozostawić nietkniętą zawartość komórki, w tym podział linii, a odtwarzalność granic komórek 1: 1 nie jest kluczowa, użyj innego edytora.
Masowe przetwarzanie takich danych
Jeśli potrzebujesz jednocześnie zachować obramowanie komórki i zawartość komórki 1: 1, możesz napotkać problemy.
Mogą istnieć bardziej inteligentne rozwiązania, ale to, co zrobiłem w takich przypadkach, to napisanie małego programu w dowolnym języku (VBA, Python lub cokolwiek lubisz najbardziej), który czyta zawartość i dodaje ciągi znaków zastępczych dla podziałów linii (coś tak prostego jak „### Linebreak ###”, który można później zastąpić znakami kontrolnymi CR i LF. Oczywiście jest to wtedy kłopotliwe i ma sens tylko wtedy, gdy trzeba przetwarzać duże ilości danych.
Mogą wystąpić problemy również z dodanymi znakami cudzysłowu. Na pierwszy rzut oka mogą one być przydatne do zachowania granic komórek, nawet jeśli uwzględnione są podziały linii. Jednak komórka może zawierać cudzysłowy jako część oryginalnej treści, a następnie pojawiają się nowe problemy. Istnieją różne rozwiązania tego problemu, ale wymaga ono uwagi.
CR LFże tak jest, ponieważ widzi LFi zakłada, że powinien być pełny CR LFi konwertuje go.
Keltari „s odpowiedź daje logicznego rozumowania, a odpowiedź ta skupia się na różnicy technicznej.
Istnieją trzy różne formy podziału linii stosowane w komputerach:
LF)CR)CRLF)Jest to przeszkoda w sposobie, w jaki pracują pisarze typów.
Excel używa kombinacji tych podziałów linii do reprezentowania komórek z wieloma liniami:
Tabznakiem.CRLFznakami.LFznaku.Staje się to widoczne, gdy zapiszesz skoroszyt jako .txtplik i otworzysz go za pomocą edytora tekstu, który obsługuje wyświetlanie tych znaków.
Notatnik przetwarza tylko CRLFjako nowe wiersze i ignoruje LFlub CRsamodzielnie. Nadal są w dokumencie, ale nie są w żaden sposób widoczne.
Uwaga: Nie zobaczysz tego podczas wklejania tam i z powrotem, ponieważ Notepad ++ automatycznie dostosowuje dla Ciebie zakończenia linii, podczas gdy zwykły Notatnik tego nie robi.
LF jest on nadal obecny po wklejeniu w notatniku, notatnik po prostu nie wyświetla go w widoczny sposób. (Renderuje efektywnie to samo, co przestrzeń o zerowej szerokości.) Dlatego kopiowanie wklejonych danych z notatnika do Excela obejmuje te podziały wierszy (chociaż Excel nie zmienia automatycznie rozmiarów wierszy).
CRLF.
="A"&CHAR(13)&CHAR(10)&"B". Podziały linii tworzone przez formuły nie są widoczne w programie Excel, ale działają dobrze, jeśli zostaną skopiowane, a następnie wklejone za pomocą „wartości wklejania”. Wartość wklejona podczas ręcznego pisania "A<CRLF>B"w notatniku i kopiowania zachowa również CRLF.
LFszybko odczytać pliki tekstowe z EOL-em. tj Znajdź LFznak, wybierz go, Ctrl+ C, Ctrl+ Home, Ctrl+ F, Ctrl+ V, Enter, Esc, Enter. Potem wielokrotnie F3, Enteraż do końca. [Edycja: <kbd> nie działa w komentarzach?]
Excel używa LF do oznaczania nowych linii w komórce. Notatnik nie uważa tego za nową linię, ponieważ Windows ogólnie używa CRLF do nowych linii.
Notepad ++ jest bardziej inteligentny niż stosunkowo prosty Notepad i dlatego interpretuje LF jako nową linię.
"a Notepad ++ znormalizuje wszystkie pasujące zakończenia linii. Zobacz tutaj . Jeśli zamiast tego zapiszesz jako .txti otworzysz w Notepad ++, komórki wielowierszowe będą miały LFtylko. Zobacz tutaj .