Самый простой способ открыть CSV с запятыми в Excel

196

Файлы CSV автоматически связываются с Excel, но когда я открываю их, все строки в основном находятся в первом столбце, например:

введите описание изображения здесь

Это, вероятно, потому, что когда Excel считает «значения, разделенные запятыми», он на самом деле ищет какой-то другой разделитель (я думаю, что это точка с запятой, но это не важно).

Теперь, когда я уже открыл этот файл в Excel, есть ли кнопка или что-то, чтобы сказать ему «открыть этот файл и использовать запятую в качестве разделителя»?

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

Борек Бернард
источник
2
По ряду причин, помимо ограничителя, очень плохо разрешать Excel открывать CSV (или любой другой простой текстовый файл), используя настройки по умолчанию. В зависимости от вашего исходного файла, вы будете повреждать ваши данные. Я написал подробную статью по этому вопросу здесь: theonemanitdepartment.wordpress.com/2014/12/15/…
Wouter
4
Так трудно понять, что должно происходить внутри Microsoft, что Excel все еще не может открывать CSV-файлы просто так. Это также разбивает числа и т. Д. Удивительным образом. Даже JavaScript не явно конвертирует это плохо.
USR
Извините, что могу копать ... но есть очень хороший шанс, что ваша первая строка не содержит запятых, что заставляет Excel отказаться от попыток
patricktokeeffe
Просто используйте в ;качестве разделителя и, открыв файл двойным щелчком, разделите его на столбцы в MS Excel.
Hrvoje T

Ответы:

179

Перейдите на вкладку « Данные » и выберите текст для столбцов в разделе « Инструменты данных», затем выберите « Разграничить» и нажмите « Далее» . Затем выберите запятую в качестве разделителя и нажмите " Готово"

введите описание изображения здесь

Raystafarian
источник
55
И вы должны делать это каждый раз после двойного щелчка * .csv в Windows Explorer? Я почему-то не могу поверить, что нет более простого способа, особенно если Excel ассоциируется с расширением файла * .csv.
Борек Бернард
3
Обычно должен открываться мастер, заставляющий вас выполнять этот процесс при открытии файла, но если это не так, вы можете сделать это следующим образом. Вы также можете перейти к данным - получить внешние данные - из текста и запустить мастер импорта оттуда.
Raystafarian
13
Вот в чем проблема, я не хочу импортировать какие-либо данные, я открываю совершенно правильный CSV-файл, с которым Excel даже ассоциирует себя. Но хорошо, если это так, мне, вероятно, нужно будет найти что-то еще для редактирования файлов CSV.
Борек Бернард
2
Да, это PITA, то же самое здесь с Excel 2003. Я также должен использовать Data \ Import. Само по себе это не проблема, но я делаю этот импорт только два раза в год, поэтому я регулярно забываю и сначала пробую File / Open
;-(
1
@gstackoverflow вы можете, просто выберите столбец A, а затем сделайте это.
Том
162

Размещение:

sep=<delimeter>

в качестве первой строки вашего CSV-файла будет автоматически указана Excel использовать этот символ в качестве разделителя вместо запятой по умолчанию.

Например:

sep=|
COLUMN1|COLUMN2
data,1|data2
...

приведет к тому, что труба (|) будет использоваться в качестве разделителя вместо запятой, без необходимости пользователю сначала запускать мастер импорта.

Кривда
источник
7
Для этого , чтобы работать в Excel 2013, вы должны снимите Use system separators вOptions>Advanced
Michael Field
1
Можете ли вы определить десятичный разделитель подобным образом? Я хочу, чтобы это было ., например, потому что 1.5в моей системе .есть разделитель для тысяч.
CGFoX
2
Это сработало для меня, даже если я проверил «Использовать разделители системы». Никакое другое решение не помогло мне.
благоговение
Подтверждение того, что это работает в Excel 2016 с установленным «Использовать системные разделители». Это здорово.
Бас
Идеальное решение глупой проблемы! (Excel должен быть в состоянии распознать используемый разделитель или, по крайней мере, спросил меня, и позвольте мне решить!) Далее : возможно ли заставить Excel использовать также другой набор символов ? Все мои CSV находятся в UTF-8, но Excel пытается открыть их как «Macintosh», что создает много проблем для меня!
до
51

Я не знаю, удалось ли вам решить эту проблему, но у меня тоже была такая же проблема, и я разобрался с ней после некоторых расследований.

Оказывается, это была проблема региональных условий;

Зайдите в панель управления -> Региональные настройки -> Расширенные настройки и измените разделитель списка на запятую .

У меня была установлена ​​точка с запятой для Южной Африки после того, как я перешел на Windows 8. После того, как я изменил его на запятую, все мои CSV правильно открываются в Excel 2013.

Надеюсь это поможет.

Дополнительный комментарий:
я использовал те же шаги, что и Lèse majesté, но я также изменил символ десятичной дроби с запятой (,) на точку с запятой (.), И это решило мою проблему.

Это связано с тем, что по умолчанию Windows 8 использует запятую в качестве десятичного знака, а Excel запутывается, когда ему приходится использовать оба символа в качестве разделителя и десятичного символа.

Максвелл Мааке
источник
Уже установлено, как это, и игнорируется Excel. По-прежнему не разделяется на запятые.
Эллиот
Ir, вероятно, требует по крайней мере выхода из системы, чтобы войти в силу.
Герт ван ден Берг
Сработал у меня после смены десятичного знака, спасибо!
Джеймс Кэмерон
1
Ну, я все еще думаю, что это возмутительно, что Excel использует региональные настройки для того, чтобы прочитать формат файла!
благоговение
Благодарю. Этот параметр решил огромную проблему для меня на работе. Excel такой глупый!
Моха
19

Это то, что сработало для меня - это сочетание некоторых ответов здесь.

(Примечание. Мой компьютер использует настройки чешского формата, которые форматируют числа следующим образом: 1 000,00т. Е. Запятая используется как десятичный разделитель, а пробел - как разделитель тысяч. Разделитель списка по умолчанию в настройках системы ;.)

  1. Я изменил системный разделитель списка на запятую в регионе -> Дополнительные настройки
  2. В Excel 2013 я перешел к «Параметры» -> «Дополнительно» и не выбрал пункт « Использовать системные разделители» (в разделе «Параметры редактирования», который является первым разделом).
  3. Я установил десятичный разделитель в Excel,. а разделитель тысяч - ,(разделитель тысяч, вероятно, не имеет значения, но я хотел, чтобы он соответствовал форматированию США)

Альтернативой шагам 2 + 3 было бы изменение этих настроек в системных настройках (шаг 1), но я обычно хочу, чтобы числа были отформатированы в соответствии с чешским языком.

Недостатки : в Excel мне теперь нужно вводить десятичные числа, используя локали США, т.е. используя точку вместо запятой. Это немного неестественно, но для меня это приемлемый компромисс. К счастью, клавиша запятой на моей цифровой клавиатуре превратилась в клавишу точки автоматически (и только в Excel - другие приложения по-прежнему выводят запятую).

Борек Бернард
источник
Это не работает с Excel 2010 / cz :-(
Leos Literak
@LeosLiterak: Я только что попробовал это в Excel 2013, и это сработало.
Sk8erPeter
10

Очевидно, Excel использует региональный параметр Windows 7 для разделителя по умолчанию для CSV (который по-видимому является вкладкой по умолчанию). Вы можете изменить эту настройку следующим образом .

Тем не менее, я не знаю, каковы будут другие последствия. Я полагаю, что если все файлы CSV на вашем компьютере разделены запятыми, то проблем быть не должно. Но если у вас есть другая (скорее всего, Microsoft) программа, которая также использует файлы CSV и обычно использует файлы CSV, отформатированные с другим разделителем, то это может быть проблематично.

Например, если Outlook использует, например, разделенные табуляцией CSV для импорта / экспорта контактов, и вы получаете такие CSV из внешнего источника (Gmail, другой компьютер и т. Д.), То изменение этого общесистемного параметра может помешать открытию Outlook эти разделенные табуляцией CSV.

Lèse Majesté
источник
3
Я попытался изменить «региональные и языковые настройки»> «Форматы»> «Дополнительные настройки»> «Разделитель списков», однако это не повлияло на открытие файлов CVS в Excel. Так что, к сожалению, это не решение проблемы.
Борек Бернард
2
То же самое и с Excel 2010 и Windows 7. Это было уже, в моих настройках, и Excel по-прежнему по умолчанию на вкладке.
rhsatrhs
Любая идея, если мы можем ввести 2 разных символа в этом поле на панели управления? Например, ;,разрешить оба символа в качестве списка разделителей?
Джунейт
7

LibreOffice Calc имеет очень продвинутый CSV-фильтр, который позволяет выбирать разделители, форматы и кодировки. Я интенсивно работаю с данными в различных форматах, и очень часто мне нужно отправлять эти данные в формате Excel пользователям. Я использую LibreOffice Calc для преобразования csv-файлов в нужный формат, а затем сохраняю как xls.

Это может не отвечать на вопрос, как это легко сделать в Excel, но отвечает на вопрос, как это сделать легко, тем более, что OP в комментариях предлагает использовать что-то отличное от Excel, что будет приемлемым вариантом.

fsando
источник
4

Excel 2010 - Помимо проверки расширенных региональных настроек, обязательно проверьте дополнительные настройки Excel:

Файл -> Параметры -> Дополнительно

Убедитесь, что установлен флажок «Использовать системные разделители».

user295069
источник
2
Или, конечно, убедитесь, что он не проверен, если вы хотите импортировать что-то, что отличается от ваших региональных настроек. :-) Но: приятно знать, что этот параметр существует; Я никогда не слышал об этом раньше.
Арьян
1
Эти параметры влияют только на разделители чисел, а не на разделители списков.
Борек Бернард
3

Пошаговое руководство для недоумения:

  1. Нажмите клавишу Windows
  2. Введите « intl.cpl » и нажмите Enter.
  3. Нажмите « Дополнительные настройки ».
  4. Перейдите на вкладку « Числа »:
  5. Измените десятичный символ на точку .
  6. Измените « Символ группировки цифр » на пробел .
  7. Измените « Разделитель списка » на запятую .
  8. Перейдите на вкладку « Валюта »:
  9. Измените десятичный символ на точку .
  10. Измените « Символ группировки цифр » на пробел .
Энтони Фаулл
источник
Это хорошо, если вы всегда используете свои собственные файлы .CSV. Но это не работает, когда вы получаете файл от кого-то, кто использовал запятую в качестве разделителя.
Стивенвх
0

Изменение десятичного разделителя на. (точка) и разделитель списка, (запятая) помогли сохранить CSV в нормальном виде в Excel на норвежских компьютерах.

Мадху Риджал
источник
Также на моем болгарском
Петър Петров
0

Для моей системы настройки уже были установлены на то, что предлагали другие (десятичный символ установлен на. (Точка) и разделитель списка установлен на (запятая), но у меня все еще были проблемы с отображением при импорте файла CSV, экспортированного из другого приложения ,

После небольшой проб и ошибок я нашел решение, которое открывает каждый CSV-файл в правильном представлении.

Вот что работало для меня в Excel 2013 с Windows 8:

Панель управления> Часы, Язык и Регион> Регион> Дополнительные настройки> Разделитель списка установлен на ,; (запятая И точка с запятой) -> нажмите «Применить», а затем посмотрите, справится ли это.

learn_by_doing
источник
0

В Excel на вкладке ДАННЫЕ в подразделе « Получение внешних данных» нажмите « Из текста » и импортируйте CSV-файл в мастер.

Вальтер
источник
0

Я знаю, что ответ уже принят, но один пункт, который нужно проверить, - это кодировка файла CSV. У меня есть скрипт Powershell, который генерирует файлы CSV. По умолчанию он кодировал их как UCS-2 Little Endian (для Notepad ++). Это откроет файл в одном столбце в Excel, и мне придется выполнить преобразование текста в столбцы, чтобы разделить столбцы. Изменение сценария для кодирования того же вывода, что и «ASCII» ( UTF-8 без спецификации на Notepad ++), позволило мне открыть CSV напрямую с выделенными столбцами. Вы также можете изменить кодировку CSV в Notepad ++ .

  • Кодировка меню > Преобразовать в UTF-8 без спецификации
  • Сохраните файл CSV
  • Открыть в Excel, столбцы должны быть разделены
Шейн Эфраим
источник
ASCII и UTF-8 без спецификации - это не одно и то же. На самом деле, ASCII легко вписывается в UTF-8 без спецификации, как в UTF-8, что описано в стандарте. Как только символы, не включенные в ASCII, появятся, он может просто вместо этого вывести ANSI или UTF-8 ... Если вы
выводите,
0

В более новой версии Excel 2010 вы можете открыть (меню: Файл, Открыть или Control-O) файл .CSV в виде текстового файла. Затем вы получаете мастер, так же просто, как с LibreOffice Calc, где вы можете выбрать правильный разделитель полей.

введите описание изображения здесь

Это работает только с файлами с соответствующим расширением .CSV. Моим приложением было создание выходного файла CSV с расширением .ACC, и попытка открыть его в Excel с помощью метода, приведенного выше, приводит вас к совершенно другим углам Excel :-(

Roland
источник