Как правильно отображать файлы .csv в Excel 2013?

190

Похоже, Excel 2013 неправильно читает файлы CSV (Excel 2010 делает). Каждый раз, когда я открываю файлы .csv, все мои данные отображаются в первом столбце.

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

Как настроить Excel 2013 для разового отображения файлов CSV (разделенных запятыми)?

Дэвид
источник
1
При открытии файла появляется какое-либо сообщение?
Андре Сильва
Нет сообщений не появляется
Дэвид
Мой опыт показывает, что если у файла есть строка заголовка, Excel 2013 автоматически пройдет через мастер импорта. Без этой строки заголовка он показывает все как один столбец на строку.
StarPilot

Ответы:

401

Откройте файл CSV с помощью подходящего текстового редактора, такого как Notepad ++, и добавьте следующий текст в первую строку:

sep=,

Теперь откройте его снова с помощью Excel.

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

Гильерме Фибиг
источник
3
Лучшее решение, но не то, которое я ожидал. Этот параметр не из самого Excel, это означает, что я должен написать эту строку выше для всех моих CSV-файлов.
Дэвид
31
Тот факт, что это нестандартно, никакие приложения, которые пишут CSV, не добавляют эту строку, и только Excel (насколько я знаю) принимает это. Делает это плохим в лучшем случае решением. Не говоря уже о том, что это не работает для Excel 2007 (лучшее, что есть у нас здесь на работе)
jmarkmurphy
21
Мы не говорим о стандартах. Мы говорим о Microsoft Excel. Excel поставляется с различными конфигурациями и горячими клавишами в зависимости от языка. Это делает импорт CSV-файла загадкой. Это просто обходной путь, и я считаю, что он помогает многим людям, в основном опытным пользователям, хотя и не лучший ответ.
Гильерме Фибиг,
10
Нужно решение, которое не предполагает добавления строк в файл, так как это ломает другие вещи, которые необходимо использовать в файле. Кроме того, уже опробовано решение с региональными настройками, но настройки уже были такими, как указано, и Excel все еще помещает все в первый столбец.
Эллиот
2
Это показывает строку, если вы открываете CSV в Libreoffice Calc. Прекрасно работает в MS Excel, хотя.
Арда
93

Для Excel 2013:

  1. Откройте пустую книгу.
  2. Перейдите на вкладку ДАННЫЕ .
  3. Нажмите кнопку « Из текста» в разделе « Общие внешние данные ».
  4. Выберите файл CSV.
  5. Следуйте мастеру импорта текста . (на шаге 2 выберите разделитель вашего текста)

http://blogmines.com/blog/how-to-import-text-file-in-excel-2013/

marcosbernal
источник
38

Проблема из региональных опций. Десятичный разделитель в win 7 для европейских стран - это кома. Вы должны открыть Панель управления -> Региональные и языковые параметры -> Дополнительные настройки -> Десятичный разделитель: нажмите, чтобы ввести точку (.), А в Список разделителей введите запятую (,). Это !

Скандер
источник
5
Это не работает. У меня есть этот набор, как указано, и он игнорируется. Все пока в первой колонке.
Эллиот
1
Удивительно - это только помогло коллеге, которая использовала Office 2011. Мы установили ее регион из Польши (который использует "," в качестве десятичного разделителя) в Великобританию, и это исправило это. Почему это должно иметь значение, я понятия не имею ...
Джон
3
Это решение работает для меня (Excel 2013). Я настраиваю свой региональный формат: я устанавливаю точку (.) Как «десятичный разделитель», запятую (,) как «разделитель тысяч» и запятую (,) как «разделитель списка»
cesargastonec
1
Я использую Windows 10 по умолчанию в формате «Английский (Канада)», который обычно правильно отображает файл CSV (разделенный столбцами) при открытии файла в Excel 2013-2016. Недавно, после повторного открытия файла CSV, я заметил, что одно из моих приложений меняло формат нумерации по умолчанию. Как указано здесь, после возврата к точке (.) В качестве «нумерации десятичных разделителей» и запятой (,) в качестве формата нумерации «разделителей списков» файл CSV отображался нормально. Нет необходимости в причудливом обходном пути, включающем взлом первой строки файла CSV с помощью блокнота, чтобы добавить «sep =»,
JP slash otterlover
1
В заключение! После нескольких минут попыток заменить регулярное выражение в Notepad ++ разделителем, десятичной точкой / запятой, а не символами в кавычках и т. Д., Я получил напоминание об этом ответе и просто изменил свои языковые настройки, как указано здесь. Теперь он правильно разделяет столбцы, и числа также отображаются правильно, без путаницы в тексте.
Фабиан
25

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

  • Кодировка меню > Преобразовать в UTF-8 без спецификации
  • Сохраните файл CSV
  • Открыть в Excel, столбцы должны быть разделены
Шейн Эфраим
источник
3
Я ценю этот ответ. Мне нравится использовать, Some-Command | Out-File -Encoding Defaultкоторый обычно дает правильную кодировку ANSI (по умолчанию в США по крайней мере).
Mister_Tom
Так что, если вы не укажете кодировку, Out-Fileкодирует файл как-то иначе, чем Defaultпо умолчанию? Я пытаюсь понять, что ... это по умолчанию ... но не используется по умолчанию ... и, следовательно, не по умолчанию?
jdgregson
Использование "-Encoding Default" исправило это для меня. Спасибо!
Кирк Лимон
21

Вы можете выбрать, какой разделитель вы хотите использовать в Excel 2013. Перейдите в DATA -> Текст в столбцы -> Выберите разделитель ->, затем выберите разделитель: «Tab, точка с запятой, запятая, пробел или другое», и вы сразу увидите изменения в «предварительном просмотре данных». "затем нажмите Fish

Как только вы получите нужный формат, вы просто сохраните документ, и он будет постоянным.

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

Взято из /superuser/238944/how-to-force-excel-to-open-csv-files-with-data-arranged-in-columns

Поведение Excel при открытии файлов CSV сильно зависит от ваших локальных настроек и выбранного разделителя списка в разделе « Регион и язык » » Форматы » Дополнительно . По умолчанию Excel будет считать, что каждый CSV был сохранен с этим разделителем. Что верно, если CSV не из другой страны!

Если ваши клиенты находятся в других странах, они могут увидеть другие результаты, чем вы думаете.

Например, здесь вы видите, что немецкий Excel будет использовать точку с запятой вместо запятой, как в США.

Региональные настройки

cdmdotnet
источник
> Это решение работает для меня (Excel 2013). Я настраиваю свой региональный формат: я устанавливаю точку (.) Как «десятичный разделитель», запятую (,) как «разделитель тысяч» и запятую (,) как «разделитель списка» - cesargastonec 13 июля 15 в 16: 05
Alex78191
1
Или вы можете изменить десятичный разделитель в параметрах Excel superuser.com/a/1470373
Alex78191
4

Другая возможная проблема заключается в том, что файл csv содержит метку порядка байтов "FEFF". Метка порядка следования байтов предназначена для определения того, был ли файл перемещен из системы с использованием упорядочения байтов с прямым или прямым порядком байтов в систему с обратным порядком байтов. https://en.wikipedia.org/wiki/Byte_order_mark

Удаление метки порядка байтов "FEFF" с помощью шестнадцатеричного редактора должно позволить Excel прочитать файл.

Девон Холкомб
источник