Почему в CSV-файлах, сформированных MS Excel, не всегда разделители — запятые
Как известно, CSV означает «Comma Separated Values», т.е. «значения, разделённые запятыми». Но не всегда в CSV-файле значения разделены именно запятыми: скорее всего, если вы сделаете экспорт данных из Microsoft Excel в CSV, то получите файл с разделителями в виде «;». В чём же дело?
Для США разделителем целой и дробной части в числах является точка, а разделителем элементов списка — запятая:
"Lisa Simpson",8,156.05 ← 3 элемента, всё понятно
Но в России и Украине (и, думаю, не только в этих странах) запятая не может быть использована для разделения элементов списка, т.к. она уже используется для разделения целой и дробной части числа:
"Иван Петров",17,99,25 ← путаница! сколько элементов?
"Иван Петров";17;99,25 ← порядок: всё таки 3 элемента
Поэтому Microsoft Excel генерирует файл согласно региональных настроек:
Если поставить настройки как в США — будет «правильный» CSV-файл.
Но несмотря на то, что определённая логика в действиях программы есть, это всё же не соответствует стандарту — RFC 4180, и это неправильно — так же неправильно, как при генерации HTML-файла заменять в тэгах <TABLE> на <ТАБЛИЦА>, если установлена русская локаль.
» international wholesale jewelry for body piercing;
» красивый свадебный букет невесты теперь можно заказать в интернет-магазине (более 150 видов!);
» на рядовой и облицовочный кирпич цена не всегда является решающим фактором, качество — важнее, ведь строим на десятки лет.
![]() |
Опубликовать |





Октябрь 28th, 2010 в 17:43
Я менял разделители — мне не помогло..