Импорт CSV с разрывы строк в Excel 2007

Я'м работает на возможность экспорта результатов поиска в CSV-файл должен быть открыт в Excel. Одно из полей-это бесплатная текстового поля, которые могут содержать разрывы строк, запятые, цитаты и т. п. Для того, чтобы противодействовать этому, я завернул полей в двойные кавычки (и").

Однако, когда я импортировать данные в Excel 2007, выберите соответствующий разделитель, и установить ограничитель текста в двойные кавычки, переносы строк еще создавать новые записи на разрывы строк, где я ожидал бы увидеть весь текст поля в одной ячейке.

Я've также пробовал заменять ЧР/НЧ (\р\н) с просто CR (\R), и лишь если (\п), но не повезло.

Кто-нибудь сталкивался с таким поведением, и если да, то как ты это исправил?

ТИА,<БР> -Джей

Редактировать:<БР> Здесь'ы краткое файл я писал от руки, чтобы дублировать эту проблему.

идентификатор,имя,описание<БР> наша"12345" и"Ну Смит, Джо и","Эй.<БР> меня зовут Джо.&и"

Когда я импортировать в Excel 2007, я в конечном итоге со строкой заголовка, и две записи. Обратите внимание, что запятая в "Смит, Джо" это обрабатывается должным образом. Это's просто разрывы, которые являются причиной проблемы.

Комментарии к вопросу (2)

В формате Excel (по крайней мере в Office 2007 на XP) может вести себя по-разному в зависимости от CSV-файл импортируется, открыв его из Файл->открыть меню или двойным щелчком на файле в Проводнике.

У меня есть CSV-файл в кодировке UTF-8 и содержит переводы строк в некоторых клетках. Если я открываю этот файл в Excel's Файл->открыть меню, в "импортировать" и мастер появляется и файл не может быть правильно импортированы: символ новой строки начать новую строку, даже если в кавычках. Если я открываю этот файл, дважды щелкнув на нем в окне Проводника, то он открывает правильно без вмешательства мастера.

Комментарии (9)

Ни одно из предложенных решений работал для меня.

Что на самом деле работает (в любой кодировке):

Для копирования/вставки из CSV-файл (открыть в редактором), затем выполнить "и текст в Столбцах на" --> не работает, все в порядке.

Перейти на следующую вкладку и копировать/вставить снова (то же самое, что у вас есть уже в вашем буфере обмена) --> автомагически работает сейчас.

Комментарии (10)

Если вы делаете это вручную, скачать LibreOffice и использовать LibreOffice Calc, чтобы импортировать CSV. Это делает гораздо лучше такие вещи, чем в любой версии Excel я'вэ пытался, и его можно сохранить в XLS или xlsx как требуется, если вам нужно перевести, чтобы потом в Excel.

Но если вы'вновь застрял в Excel и нужно исправить, там, кажется, способ. Это, кажется, зависит от локали (которая кажется идиотским, по моему скромному мнению). Я Дон'т иметь Excel 2007, но у меня Excel 2010 и приведенный пример:

ID,Name,Description
"12345","Smith, Joe","Hey.
My name is Joe."

не'т работу. Я записал это в блокнот и выбрать Сохранить как..., и далее на кнопку Сохранить, вы можете выбрать кодировку. Я выбрал кодировку UTF-8, как полагают, но не повезло. Изменение точки с запятой работал для меня, хотя, запятые. Я не't изменить что-нибудь еще, и он просто работал. Поэтому я изменил пример, чтобы посмотреть, как это, и выбрал кодировку UTF-8 при сохранении в блокноте:

ID;Name;Description
"12345";"Smith, Joe";"Hey.
My name is Joe."

Но там'с уловом! Единственный способ это работает, если вы дважды щелкните CSV-файла, чтобы открыть его в Excel. Если я пытаюсь импортировать данные из текста и выбрал этот CSV, то это еще не о цитируемых строк.

Но там'ы другой лови! Рабочее поле сепаратора (в оригинальном примере запятая, точка с запятой в моем случае), видимо, зависит от системы'региональные параметры S (под панель-и управления и GT; язык и региональные стандарты). В Норвегии, запятая является десятичным разделителем. Excel кажется, чтобы избежать этого персонажа и предпочитать вместо запятой. У меня есть доступ к другому компьютеру установлен в Великобритании английский язык, и на этом компьютере, в первом примере с разделителем запятая работает нормально (только в DoubleClick), и одна с запятой вообще-то не удается! Так для совместимости. Если вы хотите опубликовать этот CSV-Online, и пользователи могут быть в Excel, я думаю, вы должны публиковать обе версии и предполагать, что люди, проверьте, какой файл дает правильное количество строк.

Поэтому все детали, что я'вэ смогли собрать, чтобы получить эту работу являются:

  1. Файл должен быть сохранен как UTF-8 с BOM, что Блокнот вообще когда вы выбрали кодировку UTF-8. Я пробовал UTF-8 без BOM (можно легко менять в Notepad++), а затем дважды щелкните документ не удается.
  2. Вы должны использовать запятую или точку с запятой, а не ту, что является десятичным разделителем в региональных настройках. Возможно, другие персонажи работают, но я не'т знаем, что.
  3. Вы должны указать поля, которые содержат строку с символа ".
  4. Я've использовали строки-концовки для Windows (\р\н) и в текстовое поле и как записать сепаратор, который работает.
  5. Вы должны дважды щелкните файл, чтобы открыть его, импортируя данные из текста не'т работу.

Надеюсь, что это помогает кто-то.

Комментарии (10)
Решение

Я, наконец, нашел проблему!

Получается, что мы пишем файл с помощью кодировки Unicode, а не ASCII или UTF-8. Изменение кодировки на файловый поток, кажется, чтобы решить проблему.

Спасибо всем за ваши предложения!

Комментарии (6)

Короткий Ответ

Удалить строки/символы перевода строки (\п с Notepad++). Excel будет по-прежнему признают символ возврата каретки () для разделения записей.

Длинный Ответ

Как уже упоминалось символы новой строки поддерживаются внутри поля CSV, но Excel не'т всегда обработаны. Я столкнулся с аналогичной проблемой с третьей стороной CSV, которые, возможно, были проблемы с кодировкой, но ничего't улучшить с кодировкой изменения.

Что работал для меня было удаление всех символов новой строки (\п). Это имеет эффект разрушения полей в одну запись, при условии, что ваши записи разделены комбинацией возврата каретки и новой строки (возврата каретки и перевода). Затем Excel правильно импортировать файл и распознавать новые рекорды по возвращении перевозки.

Очевидно, чище всего будет сначала заменить настоящий символ новой строки (\р\н) с временным характером комбинации, заменяя символы новой строки (\п) с разделяющей характер (например, запятой, точкой с запятой файл), а затем заменив временное персонажей с правильной строки снова.

Комментарии (1)

Если поле содержит пробел, Excel игнорирует двойные кавычки в качестве ограничителя текста. Решение состоит в устранении пробелов между запятой (разделитель полей) и двойные кавычки. Например:

Разбито:<БР> Название,Название,Описание <БР> фильм "Джон" В, С "Г" и, "Мой подробное описание" и<БР>

Работы:<БР> Название,Название,Описание<БР> фильм "Джон" В, С"Г" и,"Мой подробное описание" и<БР>

Комментарии (2)

+1 на J Эшли'ы комментарий. Я столкнулся с этой проблемой тоже. Получается, что Excel требуется:

  • Символ новой строки (с"\П" и) в строку в кавычках

  • Возврат каретки и перевод строки между каждой строки.

Е. Г. на "Тест" и "Ну многострочный элемент\Н многострочный элемент" в\р\н "и test2 на глаз", "в многострочный элемент\Н многострочный элемент" в\р\н

Я использовал Notepad ++ для правильного разделения каждой строке и использовать только символы новой строки в строку. Обнаружил это путем создания многострочных записей в пустой файл Excel и открываем файл CSV в Notepad ++.

Комментарии (1)

Используйте Google Таблицы и импортировать файл CSV.

Затем вы можете экспортировать это в Excel

Комментарии (2)

Если кто случайно наткнется на эту ветку и ищет однозначного ответа здесь идет (кредит человеку, упоминая в LibreOffice:

  1. Установить LibreOffice
  2. Открываем Calc и импортировать файл
  3. Мой txt файл у полей, разделенных , а символьные поля заключаются в том, что "
  4. сохранить как файл ODS Файл 5) открыть ODS в Excel
  5. Сохранить как .формате xls(х)
  6. сделано.
  7. это работало отлично для меня и спас мне успеха!
Комментарии (1)

Вставить в Notepad++, выберите кодировку и GT; кодировать в ANSI, копировать все снова и вставить в Excel :)

Комментарии (0)

Мой опыт работы с Excel 2010 на WinXP с Французский язык и региональные параметры

  • сепаратор импортированного CSV должен соответствовать разделитель из региональных настроек (; в моем случае)
  • вы должны двойным щелчком по файлу из проводника. Дон'т открыть его в Excel
Комментарии (0)

У меня была похожая проблема. У меня были некоторые данные Twitter в MySQL. Данные строки( LF или \n), с Данные. У меня было требование экспорт данных MySQL в Excel. ЛН было испортить мой импорт из файла CSV. Поэтому я сделала следующее -

1. From MySQL exported to CSV with Record separator as CRLF
2. Opened the data in notepad++ 
3. Replaced CRLF (\r\n) with some string I am not expecting in the Data. I used ###~###! as replacement of CRLF
4. Replaced LF (\n) with Space
5. Replaced ###~###! with \r\n, so my record separator are back.
6. Saved and then imported into Excel

Примечание - при замене кода crlf или LF не забудьте проверить Excended флажок (\н\р\т... [смотрите на левой нижней стороны окна)

Комментарии (0)

Обзор # Почти через 10 лет после оригинального поста, Excel и еще'т улучшения в импорте CSV-файлов. Однако, я обнаружил, что это гораздо лучше в импорте HTML-таблицы. Таким образом, можно использовать Python, чтобы преобразовать CSV в HTML и затем импортировать полученный HTML в Excel.

Преимуществами такого подхода являются: (а) работает надежно, (б) вы Don'т нужна, чтобы отправлять ваши данные третьим лицам услуги (например, Google Таблицы), (с) без дополнительной "на сало" и установок, необходимых (в LibreOffice, цифры и т. д.) для большинства пользователей, (г) более высокий уровень, чем вмешательство с CR/НЧ-персонажи и маркеры спецификации (е) не нужно возиться с настройками локали.

Шаги

Следующие шаги могут быть запущены на любом Баш-как Shell как установить Python 3-это. Хотя Python может использоваться, чтобы непосредственно читать CSV, csvkit используется для промежуточного преобразования в JSON. Это позволяет избежать необходимости иметь дело с тонкостях CSV в наш Python-кода.

Во-первых, сохраните следующий скрипт json2html.py. Скрипт считывает JSON-файла из stdin и выводит его как HTML-таблицу: ``питон

!/usr/Бен/ОКР питон3

импорт sys файлы, в формате JSON и HTML

если имя == 'основной': header_emitted = ложь make_th = лямбда х: " и в<ом>%ы</й>" по % (по HTML.побег(ы, если еще собака и кот;)) make_td = лямбда х: " в<тд>%ы</тд>" по % (по HTML.побег(ы, если еще собака и кот;)) make_tr = лямда-л, make_cell: " и<тр>%ы</тр>" на % (на " глаз".присоединить([make_cell(V) для V в л]) ) печать(" и в<html-код><тело и GT;\п<Таблица> наша") для строки в JSON.нагрузки(представление sys.устройства stdin): ЛК, ЛВ = зип(*линии.элементы()) если не header_emitted: печати(make_tr(ЛК make_th)) header_emitted = истина печати(make_tr(ЛВ make_td)) печать (на"</стол\п</тело></HTML-код> наша") ``

Затем установите csvkit в виртуальной среде и использовать csvjson для подачи входного файла в наш сценарий. Это хорошая идея, чтобы отключить тип клетки угадал с аргумент: `раковину $ виртуальное окружение -п питон3 pyenv $ . ./pyenv/bin/активировать $ типун установить csvkit $ csvjson -я ввода.КШМ | питон3 json2html.py > output.html ``

Сейчас output.html могут быть импортированы в Excel. Переносы строк в ячейках будут сохранены.

При необходимости, вам может понадобиться для очистки виртуальной среды Python: `раковину $ деактивировать $ РМ -РФ pyenv ``

Комментарии (0)

Что работал для меня, чтобы импортировать в Excel непосредственно при условии, что импорт делается как текст, а не формат как формат CSV. М/

Комментарии (0)

просто создайте новый лист с ячейками с новой строки, сохранить его в CSV, затем откройте его с помощью редактора, который может показать символы конца строки (как Notepad++). Делая это, вы заметите, что перевод строки в ячейке дается если во время и "Реал" в конце строки кода с CR ЛФ. Вуаляà, теперь вы знаете, как создать и "правильные" в CSV-файл для Excel.

Комментарии (0)

Я также имел эту проблему: т. е.. файлы CSV (разделители-запятые, двойные кавычки строки с разделителями) с НЧ в кавычках. Эти площади были загружены файлы. Я сделал импорт данных, но вместо того, чтобы импортировать в текстовые файлы, импортированные как "из HTML и". На этот раз он проигнорировал НЧ's в кавычках.

Комментарии (0)

Это работает на Mac, используя CSV и открываем файл в Excel.

С помощью Python, чтобы писать в файл CSV.

данные= '"в первой строке ячейки А1\Р 2 строки в ячейке A1\р 3-й строке в ячейке A1 и","в ячейке B1" и"Ну 1-й линии в ячейке С1\Р 2 строки в ячейке C1 на"\П"в первой строке в ячейке А2 на"\П'

файл.записи(данные)

Комментарии (0)

На macOS попробовать с помощью чисел

Если вы имеете доступ к Mac OS я нашел, что таблица Яблоко числа делает хорошую работу раскручивать сложный многоканальный CSV-файл, который Excel не может справиться. Просто откройте `.CSV-файл с номерами, а затем экспортировать в Excel.

Комментарии (0)

В моем случае открытие CSV в Notepad++ и добавляете сентября=то"," в качестве первой линии позволяет мне открыть CSV с переносами строк и UTF-8 в Excel, без проблем

Комментарии (0)

Замените сепаратор с табуляции(\T) вместо запятой(,). Затем откройте файл в текстовом редакторе (блокнот и т. д.), скопировать содержимое оттуда, а затем вставить его в файл Excel.

Комментарии (1)