Импортировать текстовый файл с переносами строк в Excel - PullRequest
9 голосов
/ 06 января 2012

во время работы над экспортом в Excel я обнаружил следующую проблему:

Если вы создадите таблицу, в которой в одной ячейке есть разрыв строки, и сохраните документ в виде txt-файла, он будет выглядеть следующим образом:

"firstLine<LF>secondLine"<TAB>"secondColoumn"

Когда я открываю этот файл в Excel, разрыв строки исчезает, и в первой строке есть только одна ячейка со значением firstLine

Знаете ли вы, если этокак-нибудь возможно сохранить разрывы строк?

РЕДАКТИРОВАТЬ: относится к Excel2010.Не знаю, ведут ли себя другие версии по-разному.

EDIT2: шаги для воспроизведения:

  1. Открыть пустой лист Excel
  2. Ввести текст (первый столбец с переносом строки,второй столбец не важен)
  3. Сохранить как текст в Unicode (txt) // все остальные txt не работают также
  4. Закрыть файл Excel
  5. Файл-> Открыть
  6. Без изменений в следующем диалоговом окне.

В файле Excel теперь 2 строки, что неверно.

Ответы [ 2 ]

5 голосов
/ 09 января 2012

Мне наконец удалось решить проблему! ууу: D

CSV:

Немецкому Excel требуется точка с запятой в качестве разделителя. Запятая не работает.

Примечание: Это верно только в том случае, если файл закодирован как UTF-8 с спецификацией в начале файла. Если это запятая в кодировке ASCII, она работает как разделитель.

TXT:

Кодировка должна быть UTF-16LE. Также он должен быть разделен табуляцией.

Важно: Файлы по-прежнему будут отображаться некорректно, если вы откроете их в диалоге «Файл-> Открыть» и «импортируете» их. Перетаскивание их в Excel или открытие с двойным щелчком мыши работает.

1 голос
/ 08 января 2012

Это не проблема - в смысле ожидаемого поведения - это присуще, когда вы сохраняете текст как Unicode или как Text (tab delimited)

Если вы сохраните файл как Unicode, а затем либо

  1. Открыть в блокноте
  2. Импорт в Excel

вы увидите, что ячейки с разрывами строк окружены ""

В приведенном ниже примере показаны два перехода на новую строку

  • A1 имеет разделенную запись, используя Alt + Enter
  • B1 имеет enry по формуле CHAR(10) initial

На рисунке также показано, что блокнот видит в сохраненной Unicode версии

.

Предлагаемое решение 1 - Ручной метод

  1. В Excel выберите «Правка»> «Заменить»
  2. Нажмите в поле Найти что
  3. Удерживайте клавишу Alt и (на цифровой клавиатуре) введите 0010 step 3
  4. Заменить разделителем на две трубы

    Step 4

  5. Сохранить как Unicode
  6. Затем, если необходимо переустановить разрывы строк, выполните обратный процесс

Это легко сделать в VBA

Предложенный обходной путь 2 - альтернатива VBA

Const strDelim = "||"

Sub LBtoPIPE()
ActiveSheet.UsedRange.Replace Chr(10), strDelim, xlPart
ActiveSheet.UsedRange.Replace "CHAR(10)", strDelim, xlPart
End Sub

Sub PIPEtoLB()
ActiveSheet.UsedRange.Replace strDelim, Chr(10), xlPart
ActiveSheet.UsedRange.Replace strDelim, "CHAR(10)", xlPart
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...