Pull to refresh

Comments 33

Неужели нет каких-то специализированных CSV-редакторов? =)
(Хотя, помню, лет 15 назад коллега сам написал инструмент для бережного редактирования CSV.)
Язык программирования и приложение GAWK (GNU AWK). Разве что для графиков придётся использовать gnuplot/rrdtools или что-то такое.
да уж просто R-Studio тогда (или Jupyter Notebook =)
Люблю комментарии на хабре — можно такие интересные вещи откопать.
Спасибо за програмки, особенно за CSVpad! Давно искал такую
Deleted
Честно говоря, не понял эти дополнительные действия в Excel.
Если вы добавляете файл через встроенный импорт и на 3 шаге все столбцы определите, как текстовые, то уже во вставленной таблице эти ячейки будут иметь текстовый формат. Зачем после этого ещё раз выставлять формат ячеек, не понимаю. И вообще, судя по приложенной гифке, у вас эти вставленные ячейки имеют общий формат (general), хотя казалось бы вы вставили их, как текстовый.

Проверьте, может у вас не обновленная версия или это баг? Проверил у себя: если определить, как текстовый, то и ячейка будет тоже текстовая.

Извиняюсь, честно говоря невнимательно прочёл. Действительно, для новых ячеек формат останется General, а выставляется формат на 3 шаге только для вставляемых. Мой косяк.

Ну а так, конечно стоит поправить, что у вас DSV формат, а не CSV. Я лично предпочитаю TSV (разделенные табуляцией) плюс в том, что запятая, которая может быть в данных не используется, при этом импорт и экспорт такого файла можно производить очень быстро обычным копипастом.
Честно говоря, не понял эти дополнительные действия в Excel.
Если вы добавляете файл через встроенный импорт и на 3 шаге все столбцы определите, как текстовые, то уже во вставленной таблице эти ячейки будут иметь текстовый формат. Зачем после этого ещё раз выставлять формат ячеек, не понимаю.

Вы совершенно правы, импортированные столбцы будут иметь текстовый формат. Дополнительное действие нужно, чтобы привести к текстовому весь лист целиком. Потому что по умолчанию все столбцы, кроме импортированных, выставляются в general.

Пытался объяснить это в тексте, но недостаточно четко, наверное.

И вообще, судя по приложенной гифке, у вас эти вставленные ячейки имеют общий формат (general), хотя казалось бы вы вставили их, как текстовый.

Да, с гифкой я напортачил. Спасибо, что обратили внимание! Заменил ее на правильную.
Ну а так, конечно стоит поправить, что у вас DSV формат, а не CSV.

Строго говоря, вы правы. В статье пишу «CSV», потому что о формальностях почти всегда забывают и называют так все семейство форматов. Лично мой опыт таков.
Excel 2010: «Сохранить как» / «CSV (разделители запятые) (*.csv)»
получается файл csv с разделителями ";" (точка с запятой).

Много проблем c изменением данных, например СНИЛС превращается в тыкву.
Данное сохранение решает только проблему открытия файла с разделителем региональных настроек EU, но совершенно не решает проблемы из раздела Как Excel портит данные (приоритеты автозамены формата: Date > Number > Text). Можно указать Excel открыть CSV с любым разделителем, если в первой строке написать sep=;

Проблемы начинаются с нечёткого описания стандарта RFC 4180 (значения без " Excel читает в формате General), и заканчиваются отсутствием настройки "Текстовый формат ячеек вместо General" в Excel для новой книги; причём с приходом формата XLSX это делается сменой одного атрибута numFmtId="0" на numFmtId="49" в файле xls?\xl\styles.xml. Только непонятно, откуда Excel берёт шаблон?
Чтобы эксель сохранял в CSV с запятой, надо в региональных настройках винды сменить «Разделитель элементов списка» на желаемый, в частности запятую.
О, у нас на сервисе пользователям очень часто объясняем почему открывая CSV в экселе они видят даты вместо цен :)

Ужасное и неизлечимое поведение. Жаль, что короме импорта (который довольно сложен для простых пользователей) нет адекватного решения.
+ хорошо открывает большие файлы, большие возможности по работе со столбцами (сортировка, поиск дубликатов и куча еще всего)
— кириллицу отображает крякозяблами, но в сохраненном файле норм все
>> После этого, если повезет, Excel оставит исходные данные в покое. Но это не самая твердая гарантия, поэтому мы после сохранения обязательно проверяем файл через текстовый просмотрщик.
Можно после всех выполненных действий выполнить еще немного ручной работы, но уже точно быть уверенным, что формат данных не изменится.
Для этого:
1). Выделить один (!!!) столбец
2). Данные -> Тест по столбцам
3). Два раза нажать «Далее»
4). Еще раз принудительно указываем формат данных
5). Нажать «Готово».

После этого никаких проблем с данными уже не возникает :)
Ого, какие пляски с бубном. Я передам ребятам, спасибо!
По кодировке — как Excel ее определяет?
Есть csv. Если его открывать в Excel просто как файл, кодировка определяется неверно (ISO-8859-1). Если же его подгружать через импорт текста, то как правило, сразу выбирает верную кодировку (UTF-8).
awk, perl, python,… эволюция средств работы со структурированными данными.
cut и sed просто с текстовым потоком.
OpenOffice уже не тот. Это уже имя для коммерческого продукта от Oracle. Ранее это был StarOffice от SUN Microsystem.
LibreOffice — вынужденный уход от имени OpenOffice. Функционал очень неплох для свободного продукта.
Еще стоит упомянуть IBM 123 и Supercalc.

На MacOS есть стандартное приложение Numbers из iWork, которое открывает CSV гораздо быстрее маковского Excel, при этом не портя сам файл.

Дык КЛАДР же уже того вроде несколько лет как?
Насчет инструментов — чем Jupyter/Pandas не угодил?

Из подобных примеров: номер полиса ОМС — 16 символов, все цифры. В итоге при невнимательности получаем Е на конце и теряем последнюю цифру.

Еще стоит сказать, что Эксель автоматом меняет линуксовый перенос строки на виндовый, из-за чего файл на линуксовом веб-сервере не распарсится вообще.
Вопрос не по теме. А если ли КДПВ в болшом разрешении? Очень понравилась, хотел бы на фоновый рисунок поставить.
Только 1024x512 px, увы :(

Передал ваш комментарий иллюстратору, ей очень-очень лестно. Спасибо!
Не пробовали Powershell использовать (Import-Csv, Export-Csv)?
Есть гибкие возможности по фильтрации.
6-я версия работает и на Linux.
Я на ардуине генерировал csv с разделителем запятой. Чтобы русифицированный Excel правильно их воспринимал — дописывал в начало каждого файла строку
sep=,
т.е. явно указывал разделитель. Все правильно импортировалось.
Если в ячейке содержится символ такой же как разделитель ";", то все данные в экселе перекашивает. Он не учитывает что ячейка между разделителями экранирована
;"<данные с символом ; как разделитель >";
и обрабатывает все символы разделителя.
Ограничитель строк/Text qualifier не учитывается в csv созданном из php fputcsv(), хотя они есть.

Сегодня столкнулся с непонятным поведением Calc (под Linux) - с группой студентов парсили файл с сайта trudvsem - на одной из машин Calc не хотел увидеть точку с запятой в качестве разделителя, внезапно помог символ *, поставленный в поле "другой разделитель". Что это было? Не знаем... Та база сама по себе "интересная", с табличками, вложенными в ячейки...

Sign up to leave a comment.