Редактируем CSV-файлы, чтобы не сломать данные
Продукты HFLabs в промышленных объемах обрабатывают данные: адреса, ФИО, реквизиты компаний и еще вагон всего. Естественно, тестировщики ежедневно с этими данными имеют дело: обновляют тест-кейсы, изучают результаты очистки. Часто заказчики дают «живую» базу, чтобы тестировщик настроил сервис под нее.
Первое, чему мы учим новых QA — сохранять данные в первозданном виде. Все по заветам: «Не навреди». В статье я расскажу, как аккуратно работать с CSV-файлами в Excel и Open Office. Советы помогут ничего не испортить, сохранить информацию после редактирования и в целом чувствовать себя увереннее.
Материал базовый, профессионалы совершенно точно заскучают.
Что такое CSV-файлы
Формат CSV используют, чтобы хранить таблицы в текстовых файлах. Данные очень часто упаковывают именно в таблицы, поэтому CSV-файлы очень популярны.
CSV-файл состоит из строк с данными и разделителей, которые обозначают границы столбцов
CSV расшифровывается как comma-separated values — «значения, разделенные запятыми». Но пусть название вас не обманет: разделителями столбцов в CSV-файле могут служить и точки с запятой, и знаки табуляции. Это все равно будет CSV-файл.
У CSV куча плюсов перед тем же форматом Excel: текстовые файлы просты как пуговица, открываются быстро, читаются на любом устройстве и в любой среде без дополнительных инструментов.
Из-за своих преимуществ CSV — сверхпопулярный формат обмена данными, хотя ему уже лет 40. CSV используют прикладные промышленные программы, в него выгружают данные из баз.
Одна беда — текстового редактора для работы с CSV мало. Еще ничего, если таблица простая: в первом поле ID одной длины, во втором дата одного формата, а в третьем какой-нибудь адрес. Но когда поля разной длины и их больше трех, начинаются мучения.
Следить за разделителями и столбцами — глаза сломаешь
Еще хуже с анализом данных — попробуй «Блокнотом» хотя бы сложить все числа в столбце. Я уж не говорю о красивых графиках.
Поэтому CSV-файлы анализируют и редактируют в Excel и аналогах: Open Office, LibreOffice и прочих.
Ветеранам, которые все же дочитали: ребята, мы знаем об анализе непосредственно в БД c помощью SQL, знаем о Tableau и Talend Open Studio. Это статья для начинающих, а на базовом уровне и небольшом объеме данных Excel с аналогами хватает.
Как Excel портит данные: из классики
Все бы ничего, но Excel, едва открыв CSV-файл, начинает свои лукавые выкрутасы. Он без спроса меняет данные так, что те приходят в негодность. Причем делает это совершенно незаметно. Из-за этого в свое время мы схватили ворох проблем.
Большинство казусов связано с тем, что программа без спроса преобразует строки с набором цифр в числа.
Округляет. Например, в исходной ячейке два телефона хранятся через запятую без пробелов: «5235834,5235835». Что сделает Excel? Лихо превратит номера́ в одно число и округлит до двух цифр после запятой: «5235834,52». Так мы потеряем второй телефон.
Приводит к экспоненциальной форме. Excel заботливо преобразует «123456789012345» в число «1,2E+15». Исходное значение потеряем напрочь.
Проблема актуальна для длинных, символов по пятнадцать, цифровых строк. Например, КЛАДР-кодов (это такой государственный идентификатор адресного объекта: го́рода, у́лицы, до́ма).
Удаляет лидирующие плюсы. Excel считает, что плюс в начале строки с цифрами — совершенно лишний символ. Мол, и так ясно, что число положительное, коль перед ним не стоит минус. Поэтому лидирующий плюс в номере «+74955235834» будет отброшен за ненадобностью — получится «74955235834». (В реальности номер пострадает еще сильнее, но для наглядности обойдусь плюсом).
Потеря плюса критична, например, если данные пойдут в стороннюю систему, а та при импорте жестко проверяет формат.
Разбивает по три цифры. Цифровую строку длиннее трех символов Excel, добрая душа, аккуратно разберет. Например, «8 495 5235834» превратит в «84 955 235 834».
Форматирование важно как минимум для телефонных номеров: пробелы отделяют коды страны и города от остального номера и друг от друга. Excel запросто нарушает правильное членение телефона.
Удаляет лидирующие нули. Строку «00523446» Excel превратит в «523446».
А в ИНН, например, первые две цифры — это код региона. Для Республики Алтай он начинается с нуля — «04». Без нуля смысл номера исказится, а проверку формата ИНН вообще не пройдет.
Меняет даты под локальные настройки. Excel с удовольствием исправит номер дома «1/2» на «01.фев». Потому что Windows подсказал, что в таком виде вам удобнее считывать даты.
Побеждаем порчу данных правильным импортом
Если серьезно, в бедах виноват не Excel целиком, а неочевидный способ импорта данных в программу.
По умолчанию Excel применяет к данным в загруженном CSV-файле тип «General» — общий. Из-за него программа распознает цифровые строки как числа. Такой порядок можно победить, используя встроенный инструмент импорта.
Запускаю встроенный в Excel механизм импорта. В меню это «Data → Get External Data → From Text».
Выбираю CSV-файл с данными, открывается диалог. В диалоге кликаю на тип файла Delimited (с разделителями). Кодировка — та, что в файле, обычно определяется автоматом. Если первая строка файла — шапка, отмечаю «My Data Has Headers».
Перехожу ко второму шагу диалога. Выбираю разделитель полей (обычно это точка с запятой — semicolon). Отключаю «Treat consecutive delimiters as one», а «Text qualifier» выставляю в «
На третьем шаге выбираю формат полей, ради него все и затевалось. Для всех столбцов выставляю тип «Text». Кстати, если кликнуть на первую колонку, зажать шифт и кликнуть на последнюю, выделятся сразу все столбцы. Удобно.
Дальше Excel спросит, куда вставлять данные из CSV — можно просто нажать «OK», и данные появятся в открытом листе.
Перед импортом придется создать в Excel новый workbook
Но! Если я планирую добавлять данные в CSV через Excel, придется сделать еще кое-что.
После импорта нужно принудительно привести все-все ячейки на листе к формату «Text». Иначе новые поля приобретут все тот же тип «General».
- Нажимаю два раза Ctrl+A, Excel выбирает все ячейки на листе;
- кликаю правой кнопкой мыши;
- выбираю в контекстном меню «Format Cells»;
- в открывшемся диалоге выбираю слева тип данных «Text».
Чтобы выделить все ячейки, нужно нажать Ctrl+A два раза. Именно два, это не шутка, попробуйте
После этого, если повезет, Excel оставит исходные данные в покое. Но это не самая твердая гарантия, поэтому мы после сохранения обязательно проверяем файл через текстовый просмотрщик.
Альтернатива: Open Office Calc
Для работы с CSV-файлами я использую именно Calc. Он не то чтобы совсем не считает цифровые данные строками, но хотя бы не применяет к ним переформатирование в соответствии с региональными настройками Windows. Да и импорт попроще.
Конечно, понадобится пакет Open Office (OO). При установке он предложит переназначить на себя файлы MS Office. Не рекомендую: хоть OO достаточно функционален, он не до конца понимает хитрое микрософтовское форматирование документов.
А вот назначить OO программой по умолчанию для CSV-файлов — вполне разумно. Сделать это можно после установки пакета.
Итак, запускаем импорт данных из CSV. После двойного клика на файле Open Office показывает диалог.
Заметьте, в OO не нужно создавать новый воркбук и принудительно запускать импорт, все само
- Кодировка — как в файле.
- «Разделитель» — точка с запятой. Естественно, если в файле разделителем выступает именно она.
- «Разделитель текста» — пустой (все то же, что в Excel).
- В разделе «Поля» кликаю в левый-верхний квадрат таблицы, подсвечиваются все колонки. Указываю тип «Текст».
Помимо Calc у нас в HFLabs популярен libreOffice, особенно под «Линуксом». И то, и другое для CSV применяют активнее, чем Excel.
Бонус-трек: проблемы при сохранении из Calc в .xlsx
Если сохраняете данные из Calc в экселевский формат .xlsx, имейте в виду — OO порой необъяснимо и масштабно теряет данные.
/>
Белая пустошь, раскинувшаяся посередине, в оригинальном CSV-файле богато заполнена данными
Поэтому после сохранения я еще раз открываю файл и убеждаюсь, что данные на месте.
Если что-то потерялись, лечение — пересохранить из CSV в .xlsx. Или, если установлен Windows, импортнуть из CSV в Excel и сохранить оттуда.
После пересохранения обязательно еще раз проверяю, что все данные на месте и нет лишних пустых строк.
Если интересно работать с данными, посмотрите на наши вакансии. HFLabs почти всегда нужны аналитики, тестировщики, инженеры по внедрению, разработчики. Данными обеспечим так, что мало не покажется 🙂
Открываем формат CSV
CSV (Comma-Separated Values) представляет собой файл текстового формата, который предназначен для отображения табличных данных. При этом колонки разделяются запятой и точкой с запятой. Узнаем, с помощью каких приложений можно открыть данный формат.
Программы для работы с CSV
Как правило, для корректного просмотра содержимого CSV используются табличные процессоры, а для их редактирования можно применять и текстовые редакторы. Давайте подробнее рассмотрим алгоритм действий при открытии различными программами данного типа файлов.
Способ 1: Microsoft Excel
Рассмотрим, как запустить CSV в популярном текстовом процессоре Эксель, который входит в пакет Microsoft Office.

-
Запустите Excel. Перейдите во вкладку «Файл».
Существует ещё один метод перехода в «Мастер текстов».
- Переместитесь в раздел «Данные». Нажимайте на объект «Из текста», размещенный в блоке «Получение внешних данных».
- Появляется инструмент «Импорт текстового файла». Так же, как и в окошке «Открытие документа», тут требуется перейти в область расположения объекта и отметить его. Выбирать форматы не нужно, так как при использовании этого инструмента объекты, содержащие текст, будут отображаться. Кликайте «Импорт».
- Запускается «Мастер текстов». В первом его окошке «Укажите формат данных» ставьте радиокнопку в положение «С разделителями». В области «Формат файла» должен стоять параметр «Юникод (UTF-8)». Нажимайте «Далее».
Поэтому пользователь сам должен установить, служит ли в данном случае конкретный символ разделителем или является обычным знаком пунктуации. Это он может сделать, взглянув на текст, который отображается в области «Образец разбора данных» и основываясь на логике.
- пропустить столбец;
- текстовый;
- дата;
- общий.
Способ 2: LibreOffice Calc
Запускать CSV умеет и другой табличный процессор – Calc, входящий в сборку LibreOffice.
-
Запустите LibreOffice. Щелкайте «Открыть файл» или воспользуйтесь Ctrl+O.
Также можете произвести переход через меню, нажав «Файл» и «Открыть…».
Кроме того, в окно открытия можно попасть и непосредственно через интерфейс Calс. Для этого, находясь в LibreOffice Calc, щелкайте по значку в виде папки или наберите Ctrl+O.
Сразу перейдите к группе настроек «Импорт». В области «Кодировка» выбирайте значение «Юникод (UTF-8)», если там отображается иное. В области «Язык» выберите язык текста. В области «Со строки» нужно указать, с какой именно строчки следует начинать импорт содержимого. В большинстве случаев в этот параметр изменение вносить не нужно.
Далее переходим к группе «Параметры разделителя». Прежде всего, необходимо установить радиокнопку в позицию «Разделитель». Далее по такому же принципу, который был рассмотрен при использовании Эксель, нужно указать, установив флажок напротив определенного пункта, что именно будет играть роль разделителя: точка с запятой или запятая.
«Другие параметры» оставляем без изменений.
Способ 3: OpenOffice Calc
Просмотреть CSV можете с помощью ещё одного табличного процессора — OpenOffice Calc.
-
Запустите ОупенОфис. В главном окне нажимайте «Открыть…» или используйте Ctrl+O.
Также можете использовать меню. Для этого перейдите по пунктам «Файл» и «Открыть…».
Как и при использовании метода с предыдущей программой, добраться до окна открытия объекта можно прямо через интерфейс Кальк. В этом случае нужно нажать на иконку в образе папки или применить все то же Ctrl+O.
В блоке «Параметра разделителя» ставьте радиокнопку около пункта «Разделитель», после чего отметьте флажком тот пункт («Точка с запятой» или «Запятая»), который соответствует типу разделителя в документе.
Способ 4: Блокнот
Для редактирования можно применять обычный Блокнот.
- Запустите Блокнот. В меню щелкайте «Файл» и «Открыть…». Или можете применить Ctrl+O.
- Появляется окно открытия. Перейдите в нем в область нахождения CSV. В поле отображения форматов установите значение «Все файлы». Отметьте искомый объект. Затем жмите «Открыть».
- Объект будет открыт, но, конечно, не в табличном виде, который мы наблюдали в табличных процессорах, а в текстовом. Тем не менее, в блокноте очень удобно редактировать объекты данного формата. Нужно просто учесть, что каждой строке таблицы соответствует строка текста в Блокноте, а столбцы разделены разделителями в виде запятых или точек с запятыми. Учитывая эти сведения, можно с легкостью вносить любые коррективы, меня текстовые значения, добавляя строки, убирая или добавляя разделители там, где это нужно.
Способ 5: Notepad++
Открывать можно и с помощью более продвинутого текстового редактора — Notepad++.
-
Включите Notepad++. Щелкните в меню «Файл». Далее выбирайте «Открыть…». Также можете применить Ctrl+O.
Способ 6: Safari
Просмотреть содержимое в текстовом варианте без возможности его редактирования можно в браузере Safari. Большинство других популярных браузеров такую возможность не предоставляют.
- Запустите Сафари. Щелкайте «Файл». Далее жмите на «Открыть файл…».
- Появляется окошко открытия. В нем требуется произвести перемещение в то место, где расположен CSV, который пользователь желает просмотреть. В обязательном порядке переключатель форматов в окошке необходимо установить в положение «Все файлы». Затем произведите выделение объекта с расширением CSV и нажимайте «Открыть».
- Содержимое объекта откроется в новом окошке Сафари в текстовом виде, как это было в Блокноте. Правда, в отличие от Блокнота, редактировать данные в Safari, к сожалению, не получится, так как можно будет только осуществлять просмотр.
Способ 7: Microsoft Outlook
Некоторые объекты CSV представляют собой экспортированные из почтового клиента электронные письма. Их можно просматривать с помощью программы Microsoft Outlook, произведя процедуру импортирования.
- Запустите Аутлук. После открытия программы перейдите во вкладку «Файл». Затем щелкните «Открыть» в боковом меню. Далее жмите «Импорт».
- Запускается «Мастер импорта и экспорта». В представленном перечне выбирайте «Импорт из другой программы или файла». Нажимайте «Далее».
- В следующем окне следует выбрать тип объекта для импорта. Если мы собираемся импортировать CSV, то необходимо выбрать позицию «Значения, разделенные запятыми (Windows)». Жмите «Далее».
- В следующем окошке жмите «Обзор…».
- Появляется окно «Обзор». В нем следует перейти в то место, где находится письмо в формате CSV. Обозначьте этот элемент и нажимайте «OK».
- Происходит возврат в окошко «Мастера импорта и экспорта». Как можете заметить, в области «Файл для импорта» был добавлен адрес на место расположения объекта CSV. В блоке «Параметры» настройки можно оставить по умолчанию. Жмите «Далее».
- Затем нужно отметить ту папку в почтовом ящике, в которую вы хотите поместить импортируемую корреспонденцию.
- В следующем окне отобразится наименование действия, которое будет выполнено программой. Тут достаточно нажать «Готово».
- После этого, чтобы просмотреть импортированные данные переместитесь во вкладку «Отправка и получение». В боковой области интерфейса программы выделите ту папку, куда было импортировано письмо. Затем в центральной части программы появится список писем, находящихся в данной папке. Достаточно щелкнуть по нужному письму дважды левой кнопкой мыши.
- Импортированное из объекта CSV письмо будет открыто в программе Аутлук.
Стоит, правда, заметить, что данным способом можно запустить далеко не все объекты формата CSV, а только письма, структура которых отвечает определенному стандарту, а именно содержащие поля: тема, текст, адрес отправителя, адрес получателя и др.
Как видим, существует довольно много программ для открытия объектов формата CSV. Как правило, лучше всего просматривать содержимое таких файлов в табличных процессорах. Редактирование можно выполнять в виде текста в текстовых редакторах. Кроме того, существуют отдельные CSV с определенной структурой, с которыми работают специализированные программы, например почтовые клиенты.
Как открыть CSV-файл в Excel
Многие сервисы, например, Яндекс Вебмастер или Google Search Console, формируют файлы для скачивания в формате CSV.
Увидеть данные можно в стандартной программе «Блокнот» или в Notepad++, но работать с ними всё же удобнее в Excel. Однако, можно столкнуться с двумя проблемами: 1) csv-файл может открываться как набор символов (кракозябрами); 2) часто данные csv-файла оформлены в виде строк, а не таблицы.
Импорт CSV в EXCEL
Чтобы увидеть данные в нормальной кодировке и в табличном виде, необходимо импортировать файл csv в Excel. Как это сделать?
1. Запускаем Excel. Вкладка «Данные», затем «Получение внешних данных» → «Из текста».
2. В диалоговом окне выбираем csv-файл с кракозябрами → Импорт.
3. В окне мастера на первом шаге устанавливаем формат данных с разделителем и формат файла (кодировку) Юникод (UTF-8) → Далее
4. На втором шаге выбираем символ-разделитель для формирования таблицы. В текущем примере это запятая, но у вас может быть знак табуляции или точка с запятой → Далее
5. Третий шаг позволяет установить свой формат для каждого столбца (рекомендуется общий) → Готово!
Как создать файлы CSV, VCF, DAT для импорта контактов в почтовые клиенты и телефоны
Здравствуйте, друзья. Сегодня поговорим о таких полезных функциях, как импорт и экспорт контактов. Для чего они нужны? Человек в силу разных обстоятельств часто меняет или приобретает новые мобильные устройства, заводит дополнительные аккаунты и электронные почтовые ящики. Каждый раз заполнять адресную книгу вручную – процесс трудоёмкий, утомительный и не очень приятный. Рассматриваемые функции призваны облегчить данную задачу. Экспортировать – это вынести перечень имеющихся адресов в сторонний файл заданного формата, импортировать – это загрузить данные их созданного документа в новую адресную книгу. Ниже я вам расскажу, как создать файл csv для импорта контактов в аккаунт Google, почту от Яндекса и Outlook, а также о том, как перенести адреса в новый смартфон Андроид и телефон Nokia на платформе S30+.
Что такое csv и как создать
CSV – это тот самый документ заданного формата, который используется для переноса адресов между почтовыми службами. Он представляет собой своеобразную табличку — хранилище данных, разделённых запятыми. Создать его можно двумя способами:
- Экспортировать из имеющейся адресной книги почтовой службы.
- Создать вручную посредством программ Microsoft Excel, OpenOffice и других.
Почтовые клиенты
Друзья, чтобы вы воочию увидели, как выглядит файл csv, сначала расскажу, как создать его для экспорта контактов из Google и Яндекс.Почты с помощью функционала самих почтовых сервисов, а также о том, как их из этого файла импортировать обратно.
Начнём с Google, для экспорта сделайте следующее:
- Зайдите в свой аккаунт Google (по умолчанию считаем, что он у вас есть и там имеются адреса).
- Нажмите значок меню приложений сверху справа, который выглядит как 9 точек в три ряда.
- Перейдите в «Контакты».
- Пометьте адреса для импорта галочками (место для постановки галочки появится при наведении на имя).
- С левой стороны в основном меню нажмите на «Ещё».
- Выберите пункт «Экспортировать».
- Установите настройки экспорта – используемые адреса (только выбранные или все), формат будущего файла, в данном случае Google CSV (также там можно выбрать Outlook CSV для переноса данных в одноимённую программу или vCard для создания документа на sd-карте для мобильных устройств). Подтвердите действие нажатием команды «Экспортировать».
- После этих действий CSV будет создан. По умолчанию он сохранится в папке «Загрузки» на вашем ПК. Внизу экрана появится оповещение о его скачивании. Нажмите на стрелочку, чтобы отобразить список возможностей, и выберите пункт «Показать в папке». После чего откроется папка, где нужный документ contacts.csv будет подсвечен системой.
Друзья, вот вы его создали. Если вы его откроете, то увидите, что верхняя строка – это название разделов – Имя, Телефон, Почта и других.
В случае с Google они будут написаны по-английски. Имена, написанные русским языком закодируются, латиницей – останутся как есть. Разделы отделены запятыми. Если какой-то столбец не имеет данных, то вместо них тоже ставится запятая.
Чтобы выполнить импорт контактов в новый аккаунт Google из созданного вами contacts.csv, проделайте следующее:
- Зайдите в нужный аккаунт и, пользуясь всё тем же меню приложений, перейдите в «Контакты».
- Нажмите на «Ещё» справа и выберите команду «Импортировать».
- Нажмите кнопку «Выбрать».
- Найдите на компьютере contacts.csv (чаще всего он так и остаётся в папке «Загрузки») и откройте.
- Название contacts.csv должно отобразиться рядом с синей кнопкой, нажмите команду «Импортировать».
Друзья, вот и вся нехитрая наука. По такому принципу осуществляются импорт и экспорт во все почтовые сервисы. Для закрепления материала опишу ещё, как импортировать контакты пользуясь тем же принципом в адресную строку Яндекс.Почты:
- Зайдите в старый электронный ящик от Яндекса, где нужно скопировать адреса и перейдите в «Контакты».
- Нажмите на «Ещё» и выберите сначала действие «Сохранить…».
- Настройте параметры экспорта, укажите язык и почтового клиента и запустите процесс создания CSV.
- Зайдите в новую почту, куда требуется поместить адреса и перейдите в «Контакты».
- Нажмите на «Ещё» и выберите действие «Загрузить».
- Найдите на ПК созданный ранее документ и запустите процесс импортирования.
Вручную
Друзья, теперь, когда вы представляете, что такое CSV-файл, попробуйте создать его вручную:
- Откройте пустой документ Microsoft Excel или OpenOffice.
- В первую строку поместите заголовки для столбцов сведений – имя, фамилия, телефон, почта и так далее.
- Заполните таблицу (необязательно писать данные в каждый имеющийся столбец, часть ячеек могут быть пустыми, названия удалять нельзя).
- Сохраните документ в формате csv – файл, сохранить как, настройте расположение, задайте имя, выберите нужное расширение из списка («CSV (разделитель — запятая) (*.csv)»), нажмите «Сохранить».
Outlook
Друзья, полученный CSV-файл вы можете использовать для импорта контактов в Outlook:
- Откройте Outlook.
- В списке команд меню «Файл» выберите «Импорт и экспорт».
- Отметьте пункт «… из другой программы или файла».
- Укажите тип «Значения, разделённые запятыми».
- Нажмите на кнопку «Обзор» и найдите созданный ранее документ, определитесь с тем, нужны ли вам дубликаты (одинаковые адреса в CSV и уже имеющиеся в Outlook) и отметьте нужный пункт.
- Укажите папку для импорта «Контакты».
- Нажмите кнопку «Готово».
Посмотреть скопированные значения можно нажатием на значок «Люди» в нижней части окна программы. Импорт также можно сделать не из созданного собственноручно CSV, а экспортированного из почтовых клиентов. При настройке параметров экспорта необходимо установить параметр Outlook CSV (я писал об этом выше).
Телефоны
Вкратце расскажу о том, как перенести контакты из одного телефона на другой.
Андроид
На смартфонах с платформой Андроид сделать это очень просто:
- Зайдите в «Контакты».
- Раскройте содержимое меню (три точки в правом верхнем углу).
- Выберите пункт «Импорт/экспорт».
- Укажите действие «Экспорт в файл VCF».
- Отметьте галочками нужные имена или пункт «Выбрать все».
- Нажмите команду «Готово».
- Выдвиньте варианты мест сохранения нажатием на иконку из трёх горизонтальных полосок в верхнем левом углу и выберите sd-карту.
- Нажмите «Сохранить».
Результатом выполненных действий станет появление на карте памяти документа VCF. Чтобы импортировать адреса в другой смартфон, переставьте в него карту памяти, проделайте те же действия до пункта 4 предыдущего списка, укажите действие «Импорт из файла VCF», наёдите созданный ранее VCF и запустите процесс.
В телефонах Nokia на платформе S30+ импортировать контакты можно следующим образом:
- В контактах, настройках или опциях найдите функцию Backup (резервное копирование).
- Сделайте копию телефонных номеров и сохраните её на карте памяти (она будет выглядеть как backup.dat).
- Переставьте карту памяти в то устройство, куда требуется скопировать данные.
- Запустите импортирование из этого файла.
Друзья, вот и все премудрости, о которых я хотел вам сегодня поведать. Если что-то непонятно, задавайте вопросы в комментариях. До свидания.