Excel не поддерживает настройку разделителя для чтения или записи файлов CSV

18701
Sandra

При сохранении / открытии файлов CSV в Excel разделителем по умолчанию является точка с запятой (;), так как мне нужно, чтобы это была запятая (,) Я попытался изменить его, изменив настройки языка и региональных параметров после нескольких других сообщений об этой проблеме ( т.е. как заставить Excel интерпретировать запятую как разделитель по умолчанию в файлах CSV? ).

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

Заранее спасибо.

19
Проблема в чтении существующих файлов CSV или создании файла с использованием запятой в качестве разделителя? fixer1234 9 лет назад 0
Оба, я уже сделал то, что упомянул @Raystafarian перед сохранением нового файла. Мои региональные настройки правильные. Затем я открываю Excel и сохраняю как CSV, и когда я открываю файл в блокноте, я вижу, что он использовал точку с запятой. Если я открою в Excel, он загрузится правильно, потому что Excel все еще использует; для разделения столбцов. Sandra 9 лет назад 0

3 ответа на вопрос

33
Sandra

I found the problem. My decimal symbol in the Regional settings was also a comma (European) so, even when my List separator was a comma, the CSV was saved with semicolons. Now I changed my decimal symbol to a point and now the CSV file is created correctly with commas as separators. I tested this twice and now know that there must be an exception: if the decimal symbol is a comma, then the list separator will be a semicolon even is set otherwise.

Спасибо, что нашли время, чтобы обновить пост с ответом. Gary's Student 9 лет назад 12
5
Raystafarian

Для сохранения

Вам необходимо настроить разделитель списка в языковых и региональных настройках перед сохранением файла -

enter image description here


Для открытия

Перейти к данным - получить внешние данные - из текста

enter image description here

выберите файл

Выберите разделитель, нажмите Далее enter image description here

и выберите разделитель запятая

enter image description here

Нажмите Готово

enter image description here


Или, потяните его, а затем используйте текст для столбцов, см. Здесь

Если я правильно прочитал вопрос, похоже, проблема заключается в создании (сохранении) файла с разделителями, используя запятые для разделителя (2-й абзац). fixer1234 9 лет назад 0
@ fixer1234 да, я так и прочитал. Но потом я подумал, что первый абзац был важным. Я понятия не имею, что является правильным. В любом случае, у меня нет решения для создания, кроме того, о котором упоминал ОП, который они уже попробовали. Raystafarian 9 лет назад 0
Да, перед сохранением файла я изменил региональные настройки. Это не помогло. Когда я получаю файлы CSV от других людей, разделенных запятой, я использую ваш метод для правильного импорта данных, затем сохраняю их, и они переходят в точку с запятой. Это раздражает, потому что каждый раз, когда мне нужно перейти в блокнот и заменить все точки с запятой перед использованием моего CSV в качестве файла импорта. Sandra 9 лет назад 0
0
yo_haha

Вот очень хороший макрос, который работает довольно хорошо:

Sub saveCSV() File = Application.GetSaveAsFilename(InitialFileName:="file.csv", FileFilter:="CSV (*.csv), *.csv") ActiveWorkbook.SaveAs Filename:=File, FileFormat:=xlCSV, CreateBackup:=False, local:=False End Sub