Comments 33
Неужели нет каких-то специализированных CSV-редакторов? =)
(Хотя, помню, лет 15 назад коллега сам написал инструмент для бережного редактирования CSV.)
(Хотя, помню, лет 15 назад коллега сам написал инструмент для бережного редактирования CSV.)
Язык программирования и приложение GAWK (GNU AWK). Разве что для графиков придётся использовать gnuplot/rrdtools или что-то такое.
На tcl в свое время каких только CSV-parser-ов ни написали!
Под Windows Ron's Editor / Rons CSV Editor хорош.
DMcsvEditor и CSVpad.exe тоже. Плюс они бесплатные.
UltraEdit (платный)
Deleted
Честно говоря, не понял эти дополнительные действия в Excel.
Если вы добавляете файл через встроенный импорт и на 3 шаге все столбцы определите, как текстовые, то уже во вставленной таблице эти ячейки будут иметь текстовый формат. Зачем после этого ещё раз выставлять формат ячеек, не понимаю. И вообще, судя по приложенной гифке, у вас эти вставленные ячейки имеют общий формат (general), хотя казалось бы вы вставили их, как текстовый.
Проверьте, может у вас не обновленная версия или это баг? Проверил у себя: если определить, как текстовый, то и ячейка будет тоже текстовая.
Если вы добавляете файл через встроенный импорт и на 3 шаге все столбцы определите, как текстовые, то уже во вставленной таблице эти ячейки будут иметь текстовый формат. Зачем после этого ещё раз выставлять формат ячеек, не понимаю. И вообще, судя по приложенной гифке, у вас эти вставленные ячейки имеют общий формат (general), хотя казалось бы вы вставили их, как текстовый.
Проверьте, может у вас не обновленная версия или это баг? Проверил у себя: если определить, как текстовый, то и ячейка будет тоже текстовая.
Извиняюсь, честно говоря невнимательно прочёл. Действительно, для новых ячеек формат останется General, а выставляется формат на 3 шаге только для вставляемых. Мой косяк.
Ну а так, конечно стоит поправить, что у вас DSV формат, а не CSV. Я лично предпочитаю TSV (разделенные табуляцией) плюс в том, что запятая, которая может быть в данных не используется, при этом импорт и экспорт такого файла можно производить очень быстро обычным копипастом.
Честно говоря, не понял эти дополнительные действия в Excel.
Если вы добавляете файл через встроенный импорт и на 3 шаге все столбцы определите, как текстовые, то уже во вставленной таблице эти ячейки будут иметь текстовый формат. Зачем после этого ещё раз выставлять формат ячеек, не понимаю.
Вы совершенно правы, импортированные столбцы будут иметь текстовый формат. Дополнительное действие нужно, чтобы привести к текстовому весь лист целиком. Потому что по умолчанию все столбцы, кроме импортированных, выставляются в general.
Пытался объяснить это в тексте, но недостаточно четко, наверное.
И вообще, судя по приложенной гифке, у вас эти вставленные ячейки имеют общий формат (general), хотя казалось бы вы вставили их, как текстовый.
Да, с гифкой я напортачил. Спасибо, что обратили внимание! Заменил ее на правильную.
Ну а так, конечно стоит поправить, что у вас DSV формат, а не CSV.
Строго говоря, вы правы. В статье пишу «CSV», потому что о формальностях почти всегда забывают и называют так все семейство форматов. Лично мой опыт таков.
Excel 2010: «Сохранить как» / «CSV (разделители запятые) (*.csv)»
получается файл csv с разделителями ";" (точка с запятой).
Много проблем c изменением данных, например СНИЛС превращается в тыкву.
получается файл csv с разделителями ";" (точка с запятой).
Много проблем c изменением данных, например СНИЛС превращается в тыкву.
Данное сохранение решает только проблему открытия файла с разделителем региональных настроек EU, но совершенно не решает проблемы из раздела Как Excel портит данные (приоритеты автозамены формата: Date > Number > Text). Можно указать Excel открыть CSV с любым разделителем, если в первой строке написать
Проблемы начинаются с нечёткого описания стандарта RFC 4180 (значения без " Excel читает в формате General), и заканчиваются отсутствием настройки "Текстовый формат ячеек вместо General" в Excel для новой книги; причём с приходом формата XLSX это делается сменой одного атрибута
sep=;
Проблемы начинаются с нечёткого описания стандарта RFC 4180 (значения без " Excel читает в формате General), и заканчиваются отсутствием настройки "Текстовый формат ячеек вместо General" в Excel для новой книги; причём с приходом формата XLSX это делается сменой одного атрибута
numFmtId="0"
на numFmtId="49"
в файле xls?\xl\styles.xml
. Только непонятно, откуда Excel берёт шаблон?Чтобы эксель сохранял в CSV с запятой, надо в региональных настройках винды сменить «Разделитель элементов списка» на желаемый, в частности запятую.
О, у нас на сервисе пользователям очень часто объясняем почему открывая CSV в экселе они видят даты вместо цен :)
Ужасное и неизлечимое поведение. Жаль, что короме импорта (который довольно сложен для простых пользователей) нет адекватного решения.
Ужасное и неизлечимое поведение. Жаль, что короме импорта (который довольно сложен для простых пользователей) нет адекватного решения.
программа CSVed.
>> После этого, если повезет, Excel оставит исходные данные в покое. Но это не самая твердая гарантия, поэтому мы после сохранения обязательно проверяем файл через текстовый просмотрщик.
Можно после всех выполненных действий выполнить еще немного ручной работы, но уже точно быть уверенным, что формат данных не изменится.
Для этого:
1). Выделить один (!!!) столбец
2). Данные -> Тест по столбцам
3). Два раза нажать «Далее»
4). Еще раз принудительно указываем формат данных
5). Нажать «Готово».
После этого никаких проблем с данными уже не возникает :)
Можно после всех выполненных действий выполнить еще немного ручной работы, но уже точно быть уверенным, что формат данных не изменится.
Для этого:
1). Выделить один (!!!) столбец
2). Данные -> Тест по столбцам
3). Два раза нажать «Далее»
4). Еще раз принудительно указываем формат данных
5). Нажать «Готово».
После этого никаких проблем с данными уже не возникает :)
По кодировке — как Excel ее определяет?
Есть csv. Если его открывать в Excel просто как файл, кодировка определяется неверно (ISO-8859-1). Если же его подгружать через импорт текста, то как правило, сразу выбирает верную кодировку (UTF-8).
Есть csv. Если его открывать в Excel просто как файл, кодировка определяется неверно (ISO-8859-1). Если же его подгружать через импорт текста, то как правило, сразу выбирает верную кодировку (UTF-8).
awk, perl, python,… эволюция средств работы со структурированными данными.
cut и sed просто с текстовым потоком.
OpenOffice уже не тот. Это уже имя для коммерческого продукта от Oracle. Ранее это был StarOffice от SUN Microsystem.
LibreOffice — вынужденный уход от имени OpenOffice. Функционал очень неплох для свободного продукта.
Еще стоит упомянуть IBM 123 и Supercalc.
cut и sed просто с текстовым потоком.
OpenOffice уже не тот. Это уже имя для коммерческого продукта от Oracle. Ранее это был StarOffice от SUN Microsystem.
LibreOffice — вынужденный уход от имени OpenOffice. Функционал очень неплох для свободного продукта.
Еще стоит упомянуть IBM 123 и Supercalc.
Дык КЛАДР же уже того вроде несколько лет как?
Насчет инструментов — чем Jupyter/Pandas не угодил?
Насчет инструментов — чем Jupyter/Pandas не угодил?
Еще стоит сказать, что Эксель автоматом меняет линуксовый перенос строки на виндовый, из-за чего файл на линуксовом веб-сервере не распарсится вообще.
Вопрос не по теме. А если ли КДПВ в болшом разрешении? Очень понравилась, хотел бы на фоновый рисунок поставить.
Не пробовали Powershell использовать (Import-Csv, Export-Csv)?
Есть гибкие возможности по фильтрации.
6-я версия работает и на Linux.
Есть гибкие возможности по фильтрации.
6-я версия работает и на Linux.
Я на ардуине генерировал csv с разделителем запятой. Чтобы русифицированный Excel правильно их воспринимал — дописывал в начало каждого файла строку
т.е. явно указывал разделитель. Все правильно импортировалось.
sep=,
т.е. явно указывал разделитель. Все правильно импортировалось.
Если в ячейке содержится символ такой же как разделитель ";", то все данные в экселе перекашивает. Он не учитывает что ячейка между разделителями экранирована
и обрабатывает все символы разделителя.
Ограничитель строк/Text qualifier не учитывается в csv созданном из php fputcsv(), хотя они есть.
;"<данные с символом ; как разделитель >";
и обрабатывает все символы разделителя.
Ограничитель строк/Text qualifier не учитывается в csv созданном из php fputcsv(), хотя они есть.
Код сохранения диапазона листа Excel в файл CSV с кодировкой UTF-8 with BOM.
Проверил - Битрикс24 облако принимает такие файлы
https://github.com/InExSu/VBA-Excel-CSV-UTF-8-with-BOM/blob/main/CSV_2_UTF8_wBOM
Сегодня столкнулся с непонятным поведением Calc (под Linux) - с группой студентов парсили файл с сайта trudvsem - на одной из машин Calc не хотел увидеть точку с запятой в качестве разделителя, внезапно помог символ *, поставленный в поле "другой разделитель". Что это было? Не знаем... Та база сама по себе "интересная", с табличками, вложенными в ячейки...
Sign up to leave a comment.
Редактируем CSV-файлы, чтобы не сломать данные