При копировании ячейки с разрывами строк в Excel и вставке ее в Блокнот текст вставляется в одну строку. Почему это?
При копировании ячейки с разрывами строк в Excel и вставке ее в Блокнот текст вставляется в одну строку. Почему это?
Ответы:
Это связано с характером работы электронных таблиц. Представьте, что у вас есть электронная таблица с данными. Если вам нужно скопировать всю строку данных, а затем вставить ее в Блокнот, все эти данные должны быть в одной строке. Это потому, что если вы скопируете другую строку данных и вставите ее, следующая строка данных должна быть в одной строке. Если в первой скопированной строке были разрывы строк, данные больше не будут находиться в двух линейных строках. Если вы скопируете данные из Блокнота и вернетесь в электронную таблицу, они будут вставлены неправильно.
Alt+Enter), вводится только 0xA, а не полный 0xD 0xA, что означает LFвместо CR/LF. Excel интерпретирует это и показывает разрыв строки, в то время как обычный блокнот этого не делает, потому что это ожидает CR/LF. Это разница в обнаружении форматов больше, чем ошибка, но, тем не менее, это правильная причина.
Это верно, когда вы используете Блокнот, который является основным текстовым редактором Microsoft, который уже предустановлен в Windows.
Тем не менее, вы можете использовать более продвинутый текстовый редактор, такой как PSPad или Notepad ++ (как отличный, так и бесплатный), и вы получите переносы строк.
Excel :
Ячейка отмечена, затем скопируйте и вставьте в Notepad ++ :
Тот же контент, вставленный в Блокнот (редактор Windows по умолчанию):
Обратите внимание, что в обоих случаях кавычки были добавлены автоматически!
Лучшие редакторы также дают возможность отображать управляющие символы, такие как LineFeed (LF) и CarriageReturn (CR). В Notepad ++ это выглядит так:
В заключение: выберите свой инструмент в зависимости от ваших потребностей. Если вам нужно сохранить границы ячеек в редакторе, но содержимое ячеек может быть немного изменено, используйте Блокнот. Если вам нужно, чтобы содержимое ячейки оставалось нетронутым, включая разрывы строк, и воспроизводимость границ ячеек 1: 1 не имеет решающего значения, используйте другой редактор.
Массовая обработка таких данных
Если вам нужно, чтобы границы ячеек и содержимое ячеек сохранялись 1: 1 одновременно, вы можете столкнуться с проблемами.
Могут быть более разумные решения, но в таких случаях я писал небольшую программу на любом языке (VBA, Python или как вам больше нравится), который считывает содержимое и добавляет строки-заполнители для разрывов строк (что-то такое простое, как: «### Linebreak ###», который впоследствии можно заменить контрольными символами CR и LF. Конечно, тогда это сложная работа и имеет смысл, только если вам нужно обрабатывать большие объемы данных.
Вы можете столкнуться с проблемами и с добавленными кавычками. На первый взгляд это может быть полезно для сохранения границ ячеек, даже если включены разрывы строк. Однако ваша ячейка может иметь кавычки как часть исходного содержимого, и тогда у вас возникают новые проблемы. Есть несколько решений, но это требует вашего внимания.
CR LFчто на самом деле это происходит потому, что он видит LFи предполагает, что он должен быть полным, CR LFи преобразует его.
Keltari «s ответ дает логическое мышление, в то время как этот ответ фокусируется на технической разнице.
В вычислениях используются три различных вида разрывов строк:
LF)CR)CRLF)Это удержание от того, как работают пишущие.
Excel использует комбинацию этих разрывов строк для представления ячеек с несколькими строками:
Tabсимволом.CRLFсимволами.LFсимвол.Это становится очевидным, когда вы сохраняете свою книгу в виде .txtфайла и открываете ее в текстовом редакторе, который поддерживает отображение этих символов.
Блокнот обрабатывает только CRLFкак новые строки и игнорирует LFили CRсамостоятельно. Они все еще находятся в документе, но никак не видны.
Примечание. Вы не увидите этого при вставке назад и вперед, потому что Notepad ++ автоматически подгоняет окончания строк, а обычный Notepad - нет.
LF это на самом деле все еще присутствует при вставке в блокнот, записная просто не отображает его явно. (Он отображает практически то же самое, что и пробел нулевой ширины.) Поэтому копирование вставленных данных обратно из блокнота в Excel включает в себя эти разрывы строк (хотя Excel автоматически не изменяет для них размеры строк).
CRLF.
="A"&CHAR(13)&CHAR(10)&"B". Разрывы строк, создаваемые формулами, не отображаются в Excel, но работают нормально, если их скопировать, а затем вставить с помощью «вставки значений». Значение, вставленное при вводе вручную "A<CRLF>B"в блокноте и копировании, также сохранит CRLF.
LFбыстро читать текстовые файлы с EOL. т.е. Найдите LFсимвол, выберите его, Ctrl+ C, Ctrl+ Home, Ctrl+ F, Ctrl+ V, Enter, Esc, Enter. Затем неоднократно F3, Enterдо конца. [Редактировать: <kbd> не работает в комментариях?]
Excel использует LF для обозначения новых строк в ячейке. Блокнот не считает это новой строкой, поскольку Windows обычно использует CRLF для новых строк.
Notepad ++ более интеллектуален, чем относительно простой Блокнот, и поэтому интерпретирует LF как новую строку.
"и Notepad ++ нормализует все окончания строк для соответствия. Смотрите здесь . Если вы вместо этого сохраните как .txtи откроете в Notepad ++, многострочные ячейки будут иметь LFтолько. Смотрите здесь .