Импорт текстовых файлов в Excel приводит к исчезновению разрывов строк

Я пытаюсь импортировать текстовый файл в Excel (2007). Файл был экспортирован из текстового поля C# и содержит разрывы строк. Хотя, когда я импортирую его (с помощью мастера импорта текста, который поставляется с Excel), разрывы строк полностью исчезают. Я бы предпочел не писать файл VBA и помещать его в файл excel для запуска, а вместо этого изменить его с помощью аккуратного метода на С#, прежде чем он превратит данные текстового поля в текстовый файл. Возможно ли это каким-либо образом?


person Jenny    schedule 12.01.2010    source источник
comment
Я сталкивался с этой проблемой в прошлом и решил ее, заменив разрывы строк уникальным символом перед импортом в Excel, а затем заменив все в Excel. Если вы делаете это вручную, вы можете ввести альтернативные коды в поле «Заменить на» (Alt-0010 для разрыва строки). Это решает вашу проблему?   -  person Emmanuel    schedule 12.01.2010
comment
Ну и хорошо бы пользователю просто импортировать через мастера, а не использовать т.е. специальный документ excel. Я надеялся, что будет отличное решение до того, как импорт достигнет документа Excel, если код C # сможет заменить символы на Alt-0010.   -  person Jenny    schedule 13.01.2010


Ответы (3)


Я понял это. Если вы заключаете текст в кавычки, любые встроенные переводы строк (ASCII 010) будут импортированы в Excel как встроенные переводы строк. Другими словами, эти переводы строк не приведут к разбиению текста по строкам Excel.

Попытайся. Создайте два файла в Notepad.exe. В первом завершите первую строку, нажав Alt-0010:

Тестовая строка 1 завершается с помощью alt-0010

Тестовая строка 2

Во втором начинайте строки с " и заканчивайте с ". В первой строке вставьте Alt-0010 непосредственно перед ":

"Тестовая строка 1 завершается с помощью alt-0010 перед цитатой"

"Тестовая строка 2"

Теперь импортируйте оба в Excel и посмотрите разницу.

Дополнительную информацию см. в IETF RFC 4180.

person Emmanuel    schedule 13.01.2010
comment
К сожалению, это не работает с Excel 2013. Он импортирует оба файла с новыми строками вместо разрывов строк внутри ячейки. - person live-love; 24.09.2014

В Excel разрыв строки в ячейке кодируется как код ascii 10 (т.е. \n) (определяется с помощью удобного использования средства записи макросов и проверки сгенерированного VBA). Я думаю, что «исчезновение» новых строк, вероятно, является результатом того, что вы C# испускаете \n\r, поэтому вы можете попробовать выполнить глобальную замену «\r» на «» в своем коде C# перед его выводом.

person vicatcu    schedule 13.01.2010

Спасибо за помощь! Я попытался начать текст с \" и закончить с \", но когда я иду в Excel, я получаю каждую строку в отдельной ячейке, и мой план состоял в том, чтобы получить весь текст в одной ячейке excel.

person Margareta    schedule 18.01.2010