При копировании ячейки с переносами строк в Excel и вставке ее в Блокнот текст вставляется в одну строку. Это почему?
4 ответа
Это верно, когда вы используете Блокнот, который является основным текстовым редактором Microsoft, который уже предустановлен в Windows.
Тем не менее, вы можете использовать более продвинутый текстовый редактор, такой как PSPad или Notepad++ (как отличный, так и бесплатный), и вы получите переводы строк.
Excel:
Ячейка отмечена, затем скопируйте и вставьте в Блокнот ++:
Тот же контент, вставленный в Блокнот (редактор Windows по умолчанию):
Обратите внимание, что в обоих случаях кавычки были добавлены автоматически!
Лучшие редакторы также дают возможность отображать управляющие символы, такие как LineFeed (LF) и CarriageReturn (CR). В Notepad++ это выглядит так:
В заключение: выберите свой инструмент в зависимости от ваших потребностей. Если вам нужно сохранить границы ячеек в редакторе, но содержимое ячеек может быть немного изменено, используйте Блокнот. Если вам нужно, чтобы содержимое ячейки оставалось нетронутым, включая разрывы строк, и воспроизводимость границ ячеек 1: 1 не имеет решающего значения, используйте другой редактор.
Массовая обработка таких данных
Если вам нужно, чтобы границы ячеек и содержимое ячеек сохранялись 1:1 одновременно, вы можете столкнуться с проблемами.
Могут быть и более разумные решения, но в таких случаях я писал небольшую программу на любом языке (VBA, Python или как вам больше нравится), который считывает содержимое и добавляет строки-заполнители для разрывов строк (что-то простое, например: "### Linebreak ###", который впоследствии можно заменить контрольными символами CR и LF. Конечно, тогда это сложная работа, и она имеет смысл, только если вам приходится обрабатывать большие объемы данных.
Вы можете столкнуться с проблемами и с добавленными кавычками. На первый взгляд это может быть полезно для сохранения границ ячеек, даже если включены разрывы строк. Однако ваша ячейка может иметь кавычки как часть исходного содержимого, и тогда у вас появляются новые проблемы. Существуют различные решения для этого, но это требует вашего внимания.
Keltari «s ответ дает логическое мышление, в то время как этот ответ фокусируется на технической разнице.
В вычислениях используются три различных вида разрывов строк:
- В конце строк Unix и macOS 10.0+ используется символ перевода строки (
LF
) - В конце строк в Macintosh (до macOS 10.0) используется символ возврата каретки (
CR
) - В конце строки Windows используется комбинация символов возврата каретки и перевода строки (
CRLF
).
Это удерживает от того, как работают пишущие.
Excel использует комбинацию этих разрывов строк для представления ячеек с несколькими строками:
- Клетки разделены символом
Tab
. - Строки разделены символами
CRLF
. - Многострочные ячейки разделяют каждую строку, используя только символ
LF
.
Это становится очевидным, когда вы сохраняете свою книгу в виде файла .txt
и открываете ее в текстовом редакторе, который поддерживает отображение этих символов.
Блокнот обрабатывает только CRLF
как символы новой строки и игнорирует LF
или CR
самостоятельно. Они все еще в документе, но никак не видны.
Примечание. Вы не увидите этого при вставке назад и вперед, потому что Notepad++ автоматически подгоняет окончания строк, а обычный Notepad - нет.
Это связано с характером работы электронных таблиц. Представьте, что у вас есть электронная таблица с данными. Если вам нужно скопировать всю строку данных, а затем вставить ее в Блокнот, все эти данные должны быть в одной строке. Это потому, что если вы скопируете другую строку данных и вставите ее, следующая строка данных должна быть в одной строке. Если в первой строке, которую вы скопировали, были разрывы строк, данные больше не были бы в двух линейных строках. Если вы скопируете данные из Блокнота и вернетесь в электронную таблицу, они будут вставлены неправильно.
Excel использует LF для обозначения новых строк в ячейке. Блокнот не считает это новой строкой, поскольку Windows обычно использует CRLF для новых строк.
Notepad++ более интеллектуален, чем относительно простой Блокнот, и поэтому интерпретирует LF как новую строку.