Когда я дважды щелкаю файл .csv, он открывается в Excel. В csv-файлах есть столбцы, разделенные точкой с запятой (не запятые, но также допустимый формат).
Используя немецкую настройку Windows / Excel, открытый файл отображается правильно, столбцы разделяются там, где в csv-файле существовала точка с запятой.
Но когда я делаю то же самое в английской (Windows-) настройке Windows / Excel, импортируется только один столбец, показывающий все данные, включая точки с запятой в первом столбце.
(У меня нет настройки английского языка для тестов, пользователи сообщили о поведении)
Я пытался изменить значение разделителя списка в региональных настройках Windows, но это ничего не изменило.
Что я могу сделать, чтобы иметь возможность дважды щелкнуть по этим CSV-файлам на английском языке?
РЕДАКТИРОВАТЬ:
Кажется, это лучшее решение не полагаться на CSV-файлы в этом случае. Я надеялся, что есть какой-то формат для CSV-файлов, который позволит использовать их на международном уровне.
Лучшим решением кажется, что я переключусь на создание XLS-файлов.
источник
Ответы:
Эти файлы распространяются? скачал? Локально генерируется?
Я думаю, что единственный способ решить вашу проблему без доступа к ПК пользователя и без него, чтобы сделать что-то отличное от «двойного щелчка» по файлу, - это преобразовать файлы в .xls перед распределением или размещением для загрузки или создания .xls (или другой формат, который работает) вместо файла .csv. Вы можете сделать это с помощью сценария или вручную с рабочим Excel, в зависимости от количества файлов и способа их создания.
источник
Добавьте это в первую строку файла CSV:
или же
Это переопределит системные настройки («символ разделителя списка»), и Excel откроет файл правильно.
источник
sep=
илиsep=;
внутри нее, но некоторые автоматизированные программы или сценарии могут не ожидать дополнительной первой строки, что приводит к тому, что заголовки столбцов или самаsep=;
строка интерпретируются как фактические данные.fwrite($fileHandle, 'sep=,' . "\r\n");
полностью исправленную проблему сfputcsv
PHP.Вы можете использовать Мастер импорта текста. Это не работает при двойном щелчке, но это лучшее, что я могу придумать, это не связано с манипуляциями с настройками языка.
В Excel 2003 в строке меню перейдите
Data
->Import External Data
->Import Data
(не могу сказать, где он находится в 2007 году, сейчас у меня нет этого). Найдите и выберите файл CSV.Когда он открывается, вы получаете
Text Import Wizard
, который позволяет указать разделитель (и) для использования.источник
Смотрите эту статью:
Проблемы с открытием файлов CSV в Excel? Проблема с запятой и точкой с запятой в Excel из-за региональных настроек для Европы
Который предлагает 3 решения:
Поскольку вы изменили только значение разделителя списка в региональных настройках Windows, отмечу, что в статье говорится, что нужно вводить «.» Для
Decimal Symbol
и «,» дляList Separator
.Если вы чувствуете себя комфортно с VBA, то смотрите:
Открытие файла CSV с разделителями точкой с запятой в VBA в Excel 2000
Экспорт и импорт текста в Excel
источник
Лучший способ, которым я пробовал, это установить региональные настройки вашего компьютера, как показано ниже:
Это работает для меня, просто попробуйте.
источник
Если в файле нет других запятых, вы можете просто найти / заменить в текстовом редакторе точки с запятой, чтобы превратить их в запятые. Обрабатывать как обычный CSV-файл после этого.
источник