Вопрос или проблема
CSV-файлы автоматически ассоциируются с Excel, но когда я их открываю, все строки находятся в первом столбце, вот так:
Это, вероятно, потому что, когда Excel думает “значения, разделенные запятыми”, он на самом деле ищет какой-то другой разделитель (я думаю, это точка с запятой, но это не важно).
Теперь, когда я уже открыл этот файл в Excel, есть ли кнопка или что-то еще, что позволило бы мне сказать “перезапустить этот файл и использовать запятую в качестве разделителя”?
Я знаю, что могу импортировать данные в новый лист и так далее, но я спрашиваю конкретно о помощи в ситуации, когда у меня уже есть CSV-файл с запятыми в нем, и я хочу открыть его в Excel, не создавая новую рабочую книгу или не преобразуя оригинальный файл.
Перейдите на вкладку Данные и выберите текст по столбцам в разделе инструменты данных, затем выберите разделенный и нажмите далее. Затем выберите запятую в качестве разделителя и нажмите готово.
Размещая:
sep=<разделитель>
как первую строку вашего csv-файла, вы автоматически скажете Excel использовать этот символ в качестве разделителя вместо запятой по умолчанию.
Например:
sep=|
COLUMN1|COLUMN2
data,1|data2
...
приведет к тому, что в качестве разделителя будет использоваться вертикальная черта (|) вместо запятой, без необходимости пользователю проходить через мастер импорта первым.
Я не знаю, смогли ли вы решить эту проблему, но у меня была такая же проблема, и я разобрался с ней после некоторых исследований.
Оказалось, что это была проблема с региональными настройками;
Зайдите в панель управления –> Региональные настройки –> Дополнительные настройки и измените разделитель списка на запятую.
У меня он был установлен на точку с запятой для Южной Африки после перехода на Windows 8. После того, как я изменил его на запятую, все мои CSV-файлы открываются правильно в Excel 2013.
Надеюсь, это поможет.
Дополнительный комментарий:
Я использовал те же шаги, что и Lèse majesté, но также изменил Десятичный символ с запятой (,) на точку (.), и это исправило мою проблему.
Это потому, что по умолчанию Windows 8 использует запятую в качестве Десятичного символа, и Excel путается, когда ему нужно использовать оба символа как разделитель и Десятичный символ.
Вот что сработало для меня – это комбинация некоторых ответов здесь.
(Замечание: Мой ПК использует чешские форматные настройки, которые форматируют числа так: 1 000,00
, т.е. запятая используется как десятичный разделитель, а пробел как разделитель тысяч. По умолчанию разделитель в системных настройках – ;
.)
- Я изменил системный разделитель списка на запятую в Панели управления -> Регион -> Дополнительные настройки
- В Excel 2013 я перешел в Опции -> Дополнительно и снял галочку Использовать системные разделители (в разделе “Опции редактирования”, который является первым разделом)
- В том же диалоговом окне настроек я установил десятичный разделитель в Excel на
.
и разделитель тысяч на,
(разделитель тысяч, вероятно, не важен, но я хотел, чтобы он соответствовал американскому форматированию)
Альтернативой шагам 2+3 было бы изменить эти настройки в системных настройках (шаг 1), но я, как правило, хочу, чтобы числа были отформатированы в соответствии с чешской локалью.
Недостатки: в Excel я теперь должен вводить десятичные числа, используя американскую локаль, т.е. использовать точку вместо запятой. Это немного неестественно, но для меня это приемлемый компромисс. К счастью, клавиша запятой на моем числовом блоке превратилась в клавишу точки автоматически (и только в Excel – в других приложениях она по-прежнему вводит запятую).
Очевидно, что Excel использует региональные настройки Windows 7 для разделителя по умолчанию для CSV (который по умолчанию, вероятно, является табуляцией). Вы можете изменить эту настройку так.
Тем не менее, я не знаю, какие другие последствия это может иметь. Я предполагаю, что если все CSV-файлы на вашем компьютере разделены запятыми, проблем не должно возникнуть. Но если у вас есть другая (вероятно, Microsoft) программа, которая также использует CSV-файлы и обычно использует CSV, отформатированные с другим разделителем, это может вызвать проблемы.
Например, если, скажем, Outlook использует CSV с разделением по табуляции для импорта/экспорта контактов, и вы получаете такие CSV от внешнего источника (Gmail, другой компьютер и т.д.), тогда изменение этой настройки по системе может помешать Outlook открывать эти CSV с разделением по табуляции.
LibreOffice Calc имеет очень продвинутый фильтр CSV, который позволяет выбирать разделители, форматы и кодировки. Я много работаю с данными в различных форматах и очень часто нужно отправлять эти данные в формате Excel пользователям. Я использую LibreOffice Calc для конвертации CSV-файлов в желаемый формат, а затем сохраняю их как xls.
Это может не ответить на вопрос, как сделать это легко в Excel, но это отвечает на вопрос, как сделать это легко, особенно поскольку автор предложения в комментариях предполагает, что использование чего-то другого, кроме Excel, будет приемлемым вариантом.
Excel 2010 –
В дополнение к проверке ваших Региональных Дополнительных Настроек, обязательно проверьте ваши Дополнительные настройки Excel:
Файл -> Опции -> Дополнительно
Убедитесь, что “Использовать системные разделители” отмечено.
Пошаговое руководство для озадаченных:
- Нажмите клавишу Windows
- Введите “intl.cpl” и нажмите Enter.
- Нажмите “Дополнительные настройки“.
- Перейдите на вкладку “Числа“:
- Измените Десятичный символ на точку.
- Измените “Символ группировки цифр” на пробел.
- Измените “Разделитель списка” на запятую.
- Перейдите на вкладку “Валюта“:
- Измените Десятичный символ на точку.
- Измените “Символ группировки цифр” на пробел.
Я знаю, что ответ уже был принят, но один момент, который стоит проверить, это кодировка CSV-файла. У меня есть скрипт PowerShell, который генерирует CSV-файлы. По умолчанию он кодировал их как UCS-2 Little Endian (по данным Notepad++). Это открывало файл в одном столбце в Excel, и мне приходилось выполнять преобразование Текст в столбцы, чтобы разделить столбцы. Изменение скрипта на кодировку того же вывода как “ASCII” (UTF-8 без BOM по данным Notepad++) позволило мне открыть CSV напрямую с разделенными колонками. Вы также можете изменить кодировку CSV в Notepad++.
- Меню Кодировка > Преобразовать в UTF-8 без BOM
- Сохраните CSV-файл
- Откройте в Excel, колонки должны быть разделены
Изменение десятичного разделителя на . (точка) и разделителя списка на , (запятая) помогло сохранить CSV в нормальном виде в Excel на норвежских компьютерах.
Для моей системы настройки уже были установлены так, как предлагали другие здесь (Десятичный символ установлен на . (точка) и Разделитель списка установлен на , (запятая), НО у меня все равно были проблемы с отображением при импорте CSV-файла, экспортированного из другого приложения.
После небольших проб и ошибок я нашел решение, которое открывает каждый CSV-файл в правильном виде.
Вот что сработало для меня в Excel 2013 с Windows 8:
Панель управления> Часы, язык и регион> Регион> Дополнительные настройки> Разделитель списков установлен на , ; (запятая И точка с запятой) -> нажмите “применить” и затем посмотрите, сработает ли это.
С более новой версией Excel 2010 вы можете открыть (меню: Файл, Открыть или Ctrl-O) файл .CSV как текстовый файл. Затем вы сразу получаете мастер, так же легко, как и в LibreOffice Calc, где вы можете выбрать правильный разделитель полей.
Это работает только с файлами с правильным расширением .CSV. Моя программа предназначалась для создания CSV-выхода с расширением .ACC, и попытка открыть это в Excel с по указанному выше методу приводит вас к совершенно другим уголкам Excel 🙁
Ответ или решение
Самый простой способ открыть CSV с запятыми в Excel
Не редкость столкнуться с ситуацией, когда вы пытаетесь открыть CSV-файл в Excel, и все данные отображаются в одном столбце. Это происходит, потому что Excel иногда неправильно определяет разделитель, используемый в файле. В большинстве случаев Excel ожидает, что данные будут разделены точкой с запятой (в зависимости от региональных настроек системы), а не запятой, что приводит к проблемам при открытии.
Шаги для решения проблемы:
-
Использование функции «Текст по столбцам»:
- Откройте ваш CSV-файл в Excel.
- Выберите весь столбец, где находится ваш текст (обычно это первый), который был неправильно загружен.
- Перейдите на вкладку Данные и выберите Текст по столбцам.
- В открывшемся мастере выберите С разделителями и нажмите Далее.
- Убедитесь, что отмечена опция Запятая как разделитель, и нажмите Готово. Это позволит разделить данные на столбцы.
-
Изменение региональных настроек:
- Если проблема заключается в том, что Excel использует неправильный разделитель по умолчанию, вам необходимо изменить параметры региона:
- Откройте Панель управления.
- Перейдите в раздел Часы, язык и регион -> Регион -> Дополнительные настройки.
- Измените Разделитель списков на запятую
,
. - Нажмите ОК и перезапустите Excel.
- Обратите внимание, что эта настройка может повлиять на другие приложения, использующие CSV-файлы.
- Если проблема заключается в том, что Excel использует неправильный разделитель по умолчанию, вам необходимо изменить параметры региона:
-
Корректировка настроек Excel:
- Если вы используете более новую версию Excel (например, 2013 или 2016):
- Перейдите в Файл -> Параметры -> Дополнительно.
- Убедитесь, что опция Использовать системные разделители активна или деактивируйте её, если она мешает.
- Что касается символов для десятичных разделителей, убедитесь, что метод ввода согласуется с вашим регионом (например, для США точка, для других стран может быть запятая).
- Если вы используете более новую версию Excel (например, 2013 или 2016):
-
Проверка кодировки CSV файла:
- Некоторые файлы CSV могут быть сохранены в неправильной кодировке. Используйте редакторы, такие как Notepad++:
- Откройте файл в Notepad++.
- Перейдите в Кодировка и выберите Преобразовать в UTF-8 без BOM.
- Сохраните файл и попробуйте открыть его снова в Excel.
- Некоторые файлы CSV могут быть сохранены в неправильной кодировке. Используйте редакторы, такие как Notepad++:
-
Обычно используемые альтернативы:
- Если использование Excel вызывает постоянные проблемы, можете рассмотреть использование LibreOffice Calc, который имеет более продвинутые функции для работы с CSV-файлами.
Заключение
Открытие CSV-файлов с запятыми в Excel может показаться сложной задачей, но следуя вышеизложенным шагам, вы сможете легко решить эту проблему. Особенно важно помнить о настройках региона, так как они могут серьезно повлиять на способ обработки данных в CSV. Если у вас часто возникают проблемы с разделителями, адаптация системных и программных настроек может значительно облегчить вашу работу с данными.