31

При копировании ячейки с переносами строк в Excel и вставке ее в Блокнот текст вставляется в одну строку. Это почему?

4 ответа4

45

Это верно, когда вы используете Блокнот, который является основным текстовым редактором Microsoft, который уже предустановлен в Windows.

Тем не менее, вы можете использовать более продвинутый текстовый редактор, такой как PSPad или Notepad++ (как отличный, так и бесплатный), и вы получите переводы строк.

Excel:

превосходить

Ячейка отмечена, затем скопируйте и вставьте в Блокнот ++:

Notepad++

Тот же контент, вставленный в Блокнот (редактор Windows по умолчанию):

WindowsNotpad

Обратите внимание, что в обоих случаях кавычки были добавлены автоматически!

Лучшие редакторы также дают возможность отображать управляющие символы, такие как LineFeed (LF) и CarriageReturn (CR). В Notepad++ это выглядит так:

Блокнот withcontrochars ++

В заключение: выберите свой инструмент в зависимости от ваших потребностей. Если вам нужно сохранить границы ячеек в редакторе, но содержимое ячеек может быть немного изменено, используйте Блокнот. Если вам нужно, чтобы содержимое ячейки оставалось нетронутым, включая разрывы строк, и воспроизводимость границ ячеек 1: 1 не имеет решающего значения, используйте другой редактор.

Массовая обработка таких данных

Если вам нужно, чтобы границы ячеек и содержимое ячеек сохранялись 1:1 одновременно, вы можете столкнуться с проблемами.

Могут быть и более разумные решения, но в таких случаях я писал небольшую программу на любом языке (VBA, Python или как вам больше нравится), который считывает содержимое и добавляет строки-заполнители для разрывов строк (что-то простое, например: "### Linebreak ###", который впоследствии можно заменить контрольными символами CR и LF. Конечно, тогда это сложная работа, и она имеет смысл, только если вам приходится обрабатывать большие объемы данных.

Вы можете столкнуться с проблемами и с добавленными кавычками. На первый взгляд это может быть полезно для сохранения границ ячеек, даже если включены разрывы строк. Однако ваша ячейка может иметь кавычки как часть исходного содержимого, и тогда у вас появляются новые проблемы. Существуют различные решения для этого, но это требует вашего внимания.

33

Keltari «s ответ дает логическое мышление, в то время как этот ответ фокусируется на технической разнице.

В вычислениях используются три различных вида разрывов строк:

  • В конце строк Unix и macOS 10.0+ используется символ перевода строки (LF)
  • В конце строк в Macintosh (до macOS 10.0) используется символ возврата каретки (CR)
  • В конце строки Windows используется комбинация символов возврата каретки и перевода строки (CRLF).

Это удерживает от того, как работают пишущие.

Excel использует комбинацию этих разрывов строк для представления ячеек с несколькими строками:

  • Клетки разделены символом Tab .
  • Строки разделены символами CRLF .
  • Многострочные ячейки разделяют каждую строку, используя только символ LF .

Это становится очевидным, когда вы сохраняете свою книгу в виде файла .txt и открываете ее в текстовом редакторе, который поддерживает отображение этих символов.

превосходить

Notepad++

Блокнот обрабатывает только CRLF как символы новой строки и игнорирует LF или CR самостоятельно. Они все еще в документе, но никак не видны.

Примечание. Вы не увидите этого при вставке назад и вперед, потому что Notepad++ автоматически подгоняет окончания строк, а обычный Notepad - нет.

26

Это связано с характером работы электронных таблиц. Представьте, что у вас есть электронная таблица с данными. Если вам нужно скопировать всю строку данных, а затем вставить ее в Блокнот, все эти данные должны быть в одной строке. Это потому, что если вы скопируете другую строку данных и вставите ее, следующая строка данных должна быть в одной строке. Если в первой строке, которую вы скопировали, были разрывы строк, данные больше не были бы в двух линейных строках. Если вы скопируете данные из Блокнота и вернетесь в электронную таблицу, они будут вставлены неправильно.

0

Excel использует LF для обозначения новых строк в ячейке. Блокнот не считает это новой строкой, поскольку Windows обычно использует CRLF для новых строк.

Notepad++ более интеллектуален, чем относительно простой Блокнот, и поэтому интерпретирует LF как новую строку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .