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 LF
zamiast 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 LF
i zakłada, że powinien być pełny CR
LF
i 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:
Tab
znakiem.CRLF
znakami.LF
znaku.Staje się to widoczne, gdy zapiszesz skoroszyt jako .txt
plik i otworzysz go za pomocą edytora tekstu, który obsługuje wyświetlanie tych znaków.
Notatnik przetwarza tylko CRLF
jako nowe wiersze i ignoruje LF
lub CR
samodzielnie. 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.
LF
szybko odczytać pliki tekstowe z EOL-em. tj Znajdź LF
znak, wybierz go, Ctrl
+ C
, Ctrl
+ Home
, Ctrl
+ F
, Ctrl
+ V
, Enter
, Esc
, Enter
. Potem wielokrotnie F3
, Enter
aż 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 .txt
i otworzysz w Notepad ++, komórki wielowierszowe będą miały LF
tylko. Zobacz tutaj .