Комментарии 42
забавно, значит мне везло и проблем не было :)
0
Так тут специальный пример на проверку соответствия стандарту по RFC, поэтому и проблемы. Микрософт даже свой собственный OpenXML не соблюдает, а тут всего лишь какой-то RFC.
+4
В TAoUP есть глава про CSV. Там вывод, что все плохо и по-хорошему оставить нужно только 2 специальных знака — разделитель полей и квотирование (следующий символ оставлять как есть).
-1
А разделитель строк?
0
\n или \r\n как и все остальное на платформе (к кодировке тоже относится).
Вообще, удивительно, читаем там же:
Вообще, удивительно, читаем там же:
Microsoft имеет несовместимые версии CSV-файлов между собственными приложениями, а в некоторых случаях между различными версиями одного приложения (очевидный пример — программа Excel).
-1
Ну что за привычка отвечать на вопрос вне контекста? :(
Вы пишете: «вывод, что все плохо и по-хорошему оставить нужно только 2 специальных знака — разделитель полей и квотирование».
Я спрашиваю: «а разделитель строк?»
Вы пишете: «вывод, что все плохо и по-хорошему оставить нужно только 2 специальных знака — разделитель полей и квотирование».
Я спрашиваю: «а разделитель строк?»
-1
www.faqs.org/docs/artu/ch05s02.html
Дословно: «one record per line», т.е. да, разделитель записей тоже нужен, но как разделять строки все же не наше дело.
Дословно: «one record per line», т.е. да, разделитель записей тоже нужен, но как разделять строки все же не наше дело.
-1
Для преобразования «автопреобразованных» колонок назад помогает указать формат ячейки «Дополнительный». По крайней мере для «длинных» чисел работает.
0
«CSV является стандартом де-факто» и «стандарта CSV как такового, к сожалению, нет» — как-то грустно вместе звучит. Избегаю CSV везде, где могу.
-1
Получилась статья не про CSV, а про то, какие плохие продукты Microsoft. Но ведь можно ими просто не пользоваться! Им есть менее кривые (хотя бы в деле работы с CSV) аналоги.
+2
НЛО прилетело и опубликовало эту надпись здесь
На мой взгляд офис для виндов майкрософта — это шедевр, который еще никто не повторил. Старофисы и опенофисы, как и маковский воркс — это все сильно слабее, даже не функционально, а вкупе с удобством, в деталях… Просто у него есть минусы и нужно понимать, как с ними жить. Раз приходится с ними жить.
+2
Хех, OpenOffice.org и тут рулит: при импорте/экспорте можно явно задать настройки кодировки, разделителей и экранирования, а в MS Office разделитель запросто может взяться из локали, сколько бубнов уже порвали на эту тему :(
0
Это все просто от незнания продукта :) В Office это тоже есть :)
-1
Это не очень помогает, когда CSV-файл генерируется сайтом, а клиенты с MS Office'ом находятся в разных странах…
0
что не помогает? при экспорте из текстового файла, мастере выбрать разделитель и тут же в окне предпросмотра понять что вы выбрали неправильный разделитель?
-1
Ничего, что я сейчас про импорт?
0
Сори, я оговорился — при ИМПОРТЕ из текстового файла. Ведь Сайт экспортирует файл CSV, а потом клиент в MS Office Excel ИМПОРТирует его через мастер. В мастере при импорте можно сразу до открытия файла выбрать разделитель полей, и увидеть в предпросмотре результат импорта при указанном разделителе.
0
Понятно. Теперь объяснить бы то же самое современному пользователю. Бизнес-пользователю. Они выше всего этого :(
0
Ну вообще решения тут как минимум два. С одной стороны при выгрузке можно посмотреть User Agent и выбрать соответствующий разделитель. С другой стороны, на странице загрузки или в файле архиве вложить инструкцию по экспорту.
Но к слову, если ваши клиенты вче равно читают файл в Excel выгружайте им в Excel (HTML + правильные свойства у ячеек в таблице)
Но к слову, если ваши клиенты вче равно читают файл в Excel выгружайте им в Excel (HTML + правильные свойства у ячеек в таблице)
0
Не подскажете название продукта (а такой есть), который позволяет понизить «безопасность» Outlook путем разрешения макросам доступа к контактам и отсылке писем. Можно было бы тогда написать «костыль» для переброски контактов туда-сюда (в Excel «причесывать» контакты сподручнее…
0
Вообще что бы не устраивать танцев с бубнами при импорте CSV файла в Excel линейке инструментов, есть таб «Данные» (Data), и в ней кнопка — «из текстового файла» (From text). При этом поднимается Мастер который по шагам вам поможет импортировать файл. Где в том числе спрашивается какой знак является разделителем. Все остальное — от не знания :)
-2
Если вы немножко внимательнее посмотрите на статью, там про это написано. И написано, какая недоработка есть в этом импорте. Например, он не понимает переводов строк внутри полей. Проблема с ведущими нулями и кавычками также остается.
+3
Мы помним, что Microsoft Excel умеет работать с текстовыми файлами, импортировать данные из CSV, но в версии 2007 он делает это очень странно. Например, если просто открыть файл через меню, то он откроется без какого-либо распознавания формата, просто как текстовый файл, целиком помещенный в первую колонку. В случае, если сделать дабл-клик на CSV, Excel получает другую команду и импортирует CSV как надо, не задавая лишних вопросов. Третий вариант — вставка файла на текущий лист. В этом интерфейсе можно настраивать разделители, сразу же смотреть, что получилось. Но одно но: работает это плохо. Например, Excel при этом не понимает закавыченных переводов строк внутри полей.
…
…
…
Ошибки Excel-я при импорте:
1.Учлись пробелы, окружающие разделители
2.Последний столбец вообще толком не распознался, несмотря на то, что данные в кавычках. Исключение составляет строка с «Петровым» — там корректно распозналось 1,24.
3.В поле индекс Excel «опустил» ведущие нули.
4.в самом правом поле последней строки пробелы перед кавычками перестали указывать на спецсимвол
Если же воспользоваться функционалом импорта (Данные -> Из файла) и обозвать при импорте все поля текстовыми, то будет следующая картина:
и дальше идет текст где вы называете все это "импорт". Когда вы все это разобрали, вы потом вспоминаете что еще есть «еще один способ» которые тоже назывется импортом. Как то все в кучу смешано, вы не находите?
…
…
…
Ошибки Excel-я при импорте:
1.Учлись пробелы, окружающие разделители
2.Последний столбец вообще толком не распознался, несмотря на то, что данные в кавычках. Исключение составляет строка с «Петровым» — там корректно распозналось 1,24.
3.В поле индекс Excel «опустил» ведущие нули.
4.в самом правом поле последней строки пробелы перед кавычками перестали указывать на спецсимвол
Если же воспользоваться функционалом импорта (Данные -> Из файла) и обозвать при импорте все поля текстовыми, то будет следующая картина:
и дальше идет текст где вы называете все это "импорт". Когда вы все это разобрали, вы потом вспоминаете что еще есть «еще один способ» которые тоже назывется импортом. Как то все в кучу смешано, вы не находите?
0
отдел Системной интеграции нашей компании разделяет вашу боль :)
+3
В англоязычной версии Excel разделителями являются именно запятые.
0
забавные вещи эксплуатируют свободные память и другие ресурсы зам-CTO Mail.ru Group )
-1
Спасибо за решение проблемы с 11-12-ти значными числами…
Excel превращал число в запись вида 3.1E+11))
Теперь собственно пишу так: =«12312313313»;=«123123434233434»;…
Excel превращал число в запись вида 3.1E+11))
Теперь собственно пишу так: =«12312313313»;=«123123434233434»;…
+1
Office 2013, проблемы так и остались. Где написано «разделители — запятые» будет точка с запятой, двойной клик по CSV откроет его в Excel, не разделяя на колонки и ни о чём не спрашивая.
0
Еще несколько хинтов, коллеги:
1) Чтобы Excel начал спрашивать о параметрах CSV — переименуйте предварительно файл с расширением .txt
2) При импорте из Excel в CSV — если вам нужны разделители в качестве ",", а не ";" как это делается по-умолчанию — то нужно временно изменить региональные настройки:
а) В операционной системе Microsoft Windows нажмите кнопку Пуск и выберите пункт Панель управления.
б) Откройте диалоговое окно изменения региональных и языковых параметров.
в) Введите новый разделитель в поле Разделитель элементов списка. Кстати в этом же окне можно изменить и дробную часть с запятой на точку.
г) Дважды нажмите кнопку ОК.
Теперь при импортировании будут учитываться новые значения разделителей.
1) Чтобы Excel начал спрашивать о параметрах CSV — переименуйте предварительно файл с расширением .txt
2) При импорте из Excel в CSV — если вам нужны разделители в качестве ",", а не ";" как это делается по-умолчанию — то нужно временно изменить региональные настройки:
а) В операционной системе Microsoft Windows нажмите кнопку Пуск и выберите пункт Панель управления.
б) Откройте диалоговое окно изменения региональных и языковых параметров.
в) Введите новый разделитель в поле Разделитель элементов списка. Кстати в этом же окне можно изменить и дробную часть с запятой на точку.
г) Дважды нажмите кнопку ОК.
Теперь при импортировании будут учитываться новые значения разделителей.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Язвы и грабли CSV и Excel: проблемы и решения