Outlook csv что это
CSV является стандартом де-факто для связи между собой разнородных систем, для передачи и обработки объемных данных с «жесткой», табличной структурой. Во многих скриптовых языках программирования есть встроенные средства разбора и генерации, он хорошо понятен как программистам, так и рядовым пользователям, а проблемы с самими данными в нем хорошо обнаруживаются, как говорится, на глаз.
История этого формата насчитывает не менее 30 лет. Но даже сейчас, в эпоху повального использования XML, для выгрузки и загрузки больших объемов данных по-прежнему используют CSV. И, несмотря на то, что сам формат довольно неплохо описан в RFC, каждый его понимает по-своему.
В этой статье я попробую обобщить существующие знания об этом формате, указать на типичные ошибки, а также проиллюстрировать описанные проблемы на примере кривой реализации импорта-экспорта в Microsoft Office 2007. Также покажу, как обходить эти проблемы (в т.ч. автоматическое преобразование типов Excel-ом в DATETIME и NUMBER) при открытии .csv.
Начнем с того, что форматом CSV на самом деле называют три разных текстовых формата, отличающихся символами-разделителями: собственно сам CSV (comma-separated values — значения, разделенные запятыми), TSV (tab-separated values — значения, разделенные табуляциями) и SCSV (semicolon separated values — значения, разделенные точкой с запятой). В жизни все три могут называться одним CSV, символ-разделитель в лучшем случае выбирается при экспорте или импорте, а чаще его просто «зашивают» внутрь кода. Это создает массу проблем в попытке разобраться.
Как иллюстрацию возьмем казалось бы тривиальную задачу: импортировать в Microsoft Outlook данные из таблицы в Microsoft Excel.
В Microsoft Excel есть средства экспорта в CSV, а в Microsoft Outlook — соответствующие средства импорта. Что могло быть проще — сделал файлик, «скормил» почтовой программе и — дело сделано? Как бы не так.
Создадим в Excel тестовую табличку:
… и попробуем экспортировать ее в три текстовых формата:
«Текст Unicode» | Кодировка — UTF-16, разделители — табуляция, переводы строк — 0×0D, 0×0A, объем файла — 222 байт |
«CSV (разделители — запятые)» | Кодировка — Windows-1251, разделители — точка с запятой (не запятая!), во второй строке значение телефонов не взято в кавычки, несмотря на запятую, зато взято в кавычки значение «01;02», что правильно. Переводы строк — 0×0D, 0×0A. Объем файла — 110 байт |
«Текстовые файлы (с разделителями табуляции)» | Кодировка — Windows-1251, разделители — табуляция, переводы строк — 0×0D, 0×0A. Значение «01;02» помещено в кавычки (без особой нужды). Объем файла — 110 байт |
Какой вывод мы делаем из этого. То, что здесь Microsoft называет «CSV (разделители — запятые)», на самом деле является форматом с разделителями «точка с запятой». Формат у Microsoft — строго Windows-1251. Поэтому, если у вас в Excel есть Unicode-символы, они на выходе в CSV отобразятся в вопросительные знаки. Также то, что переводами строк является всегда пара символов, то, что Microsoft тупо берет в кавычки все, где видит точку с запятой. Также то, что если у вас нет Unicode-символов вообще, то можно сэкономить на объеме файла. Также то, что Unicode поддерживается только UTF-16, а не UTF-8, что было бы сильно логичнее.
Теперь посмотрим, как на это смотрит Outlook. Попробуем импортировать эти файлы из него, указав такие же источники данных. Outlook 2007: Файл -> Импорт и экспорт… -> Импорт из другой программы или файла. Далее выбираем формат данных: «Значения, разделенные запятыми (Windows)» и «Значения, разделенные табуляцией (Windows)».
«Значения, разделенные табуляцией(Windows)» | Скармливаем аутлуку файл tsv, с разделенными табуляцией значениями и. — чтобы вы думали. Outlook склеивает поля и табуляцию не замечает. Заменяем в файле табуляцию на запятые и, как видим, поля уже разбирает, молодец. |
«Значения, разделенные запятыми (Windows)» | А вот аутлук как раз понимает все верно. Comma — это запятая. Поэтому ожидает в качестве разделителя запятую. А у нас после экселя — точка с запятой. В итоге аутлук распознает все неверно. |
Два майкрософтовских продукта не понимают друг друга, у них напрочь отсутствует возможность передать через текстовый файл структурированные данные. Для того, чтобы все заработало, требуются «пляски с бубном» программиста.
Мы помним, что Microsoft Excel умеет работать с текстовыми файлами, импортировать данные из CSV, но в версии 2007 он делает это очень странно. Например, если просто открыть файл через меню, то он откроется без какого-либо распознавания формата, просто как текстовый файл, целиком помещенный в первую колонку. В случае, если сделать дабл-клик на CSV, Excel получает другую команду и импортирует CSV как надо, не задавая лишних вопросов. Третий вариант — вставка файла на текущий лист. В этом интерфейсе можно настраивать разделители, сразу же смотреть, что получилось. Но одно но: работает это плохо. Например, Excel при этом не понимает закавыченных переводов строк внутри полей.
Более того, одна и та же функция сохранения в CSV, вызванная через интерфейс и через макрос, работает по-разному. Вариант с макросом не смотрит в региональные настройки вообще.
Стандарта CSV как такового, к сожалению, нет, но, между тем, существует т.н. memo. Это RFC 4180 года, в котором описано все довольно толково. За неимением ничего большего, правильно придерживаться хотя бы RFC. Но для совместимости с Excel следует учесть его собенности.
Вот краткая выжимка рекомендаций RFC 4180 и мои комментарии в квадратных скобках:
- между строками — перевод строки CRLF [на мой взгляд, им не стоило ограничивать двумя байтами, т.е. как CRLF (0×0D, 0×0A), так и CR 0×0D]
- разделители — запятые, в конце строки не должно быть запятой,
- в последней строке CRLF не обязателен,
- первая строка может быть строкой заголовка (никак не помечается при этом)
- пробелы, окружающие запятую-разделитель, игнорируются.
- если значение содержит в себе CRLF, CR, LF (символы-разделители строк), двойную кавычку или запятую (символ-разделитель полей), то заключение значения в кавычки обязательно. В противном случае — допустимо.
- т.е. допустимы переводы строк внутри поля. Но такие значения полей должны быть обязательно закавычены,
- если внутри закавыченной части встречаются двойные кавычки, то используется специфический квотинг кавычек в CSV — их дублирование.
Вот в нотации ABNF описание формата:
Также при реализации формата нужно помнить, что поскольку здесь нет указателей на число и тип колонок, поскольку нет требования обязательно размещать заголовок, здесь есть условности, о которых необходимо не забывать:
- строковое значение из цифр, не заключенное в кавычки может быть воспринято программой как числовое, из-за чего может быть потеряна информация, например, лидирующие нули,
- количество значений в каждой строке может отличаться и необходимо правильно обрабатывать эту ситуацию. В одних ситуациях нужно предупредить пользователя, в других — создавать дополнительные колонки и заполнять их пустыми значениями. Можно определиться, что количество колонок задается заголовком, а можно добавлять их динамически, по мере импорта CSV,
- Квотить кавычки через «слэш» не по стандарту, делать так не надо.
- Поскольку типизации полей нет, нет и требования к ним. Разделители целой и дробной частей в разных странах разные, и это приводит к тому, что один и тот же CSV, сгенрированный приложением, в одном экселе «понимается», в другом — нет. Потому что Microsoft Office ориентируется на региональные настройки Windows, а там может быть что угодно. В России там указано, что разделитель — запятая,
- Если CSV открывать не через меню «Данные», а напрямую, то Excel лишних вопросов не задает, и делает как ему кажется правильным. Например, поле со значением 1.24 он понимает по умолчанию как «24 января»
- Эксель убивает ведующие нули и приводит типы даже тогда, когда значение указано в кавычках. Делать так не надо, это ошибка. Но чтобы обойти эту проблему экселя, можно сделать небольшой «хак» — значение начать со знака «равно», после чего поставить в кавычках то, что необходимо передать без изменения формата.
- У экселя есть спецсимвол «равно», который в CSV рассматривается как идентификатор формулы. То есть, если в CSV встретится =2+3, он сложит два и три и результат впишет в ячейку. По стандарту он это делать не должен.
Пример валидного CSV, который можно использовать для тестов:
точно такой же SCSV:
Первый файлик, который реально COMMA-SEPARATED, будучи сохраненным в .csv, Excel-ом не воспринимается вообще.
Второй файлик, который по логике SCSV, экселом воспринимается и выходит вот что:
- Учлись пробелы, окружающие разделители
- Последний столбец вообще толком не распознался, несмотря на то, что данные в кавычках. Исключение составляет строка с «Петровым» — там корректно распозналось 1,24.
- В поле индекс Excel «опустил» ведущие нули.
- в самом правом поле последней строки пробелы перед кавычками перестали указывать на спецсимвол
Если же воспользоваться функционалом импорта (Данные -> Из файла) и обозвать при импорте все поля текстовыми, то будет следующая картина:
С приведением типов сработало, но зато теперь не обрабатываются нормально переводы строк и осталась проблема с ведущими нулями, кавычками и лишними пробелами. Да и пользователям так открывать CSV крайне неудобно.
Есть эффективный способ, как заставить Excel не приводить типы, когда это нам не нужно. Но это будет CSV «специально для Excel». Делается это помещением знака «=» перед кавычками везде, где потенциально может возникнуть проблема с типами. Заодно убираем лишние пробелы.
И вот что случаеся, если мы открываем этот файлик в экселе:
CSV-файлы (файлы данных с разделителями-запятыми) — это файлы особого типа, которые можно создавать и редактировать в Excel. В CSV-файлах данные хранятся не в столбцах, а разделенные запятыми. Текст и числа, сохраненные в CSV-файле, можно легко переносить из одной программы в другую. Например, вы можете экспортировать контакты из Google в CSV-файл, а затем импортировать их в Outlook.
Сведения о том, как импортировать список записей календаря в Outlook, см. в статье Импорт и экспорт электронной почты, контактов и календаря Outlook.
Создание CSV-файла из другой программы или службы электронной почты другого поставщика
При экспорте контактов из другой программы, например Gmail, обычно можно выбрать один из нескольких форматов. В Gmail на выбор предлагаются CSV-файл Google, CSV-файл Outlook и файлы vCard. При экспорте данных из профиля Outlook для последующего импорта в другой профиль можно выбрать CSV-файл или файл данных Outlook (PST).
Скачивание и открытие образца CSV-файла для импорта контактов в Outlook
Вы можете создать CSV-файл вручную одним из двух способов.
Создание файла Excel и его сохранение в формате CSV
Если сведения о контактах хранятся в программе, из которой их невозможно экспортировать, вы можете ввести их вручную.
Создайте новый документ в Excel.
Добавьте заголовок столбца для каждого фрагмента сведений, который вы хотите записать (например, для имени, фамилии, адреса электронной почты, номера телефона и дня рождения), а затем введите данные в соответствующие столбцы.
Когда вы закончите, файл Excel должен выглядеть примерно так:
Выберите Файл > Сохранить как.
В раскрывающемся списке выберите пункт "CSV (разделитель — запятая) (*.csv)", присвойте имя файлу и нажмите кнопку Сохранить.
Теперь вы можете использовать этот CSV-файл для импорта контактов в Outlook.
Скачивание шаблона CSV-файла
Если вы хотите начать с пустого CSV-файла, то можете скачать образец ниже.
Скачайте этот образец CSV-файла на свой компьютер. При появлении запроса нажмите кнопку Сохранить и сохраните файл на своем компьютере в формате CSV. Если сохранить файл в формате Excel (XLS или XLSM) все данные будет добавлены в один столбец.
Откройте Excel на компьютере.
В Excel выберите Файл > Открыть и перейдите к CSV-файлу, скачанному на компьютер. Чтобы найти CSV-файл, выберите Все файлы. Щелкните CSV-файл, чтобы открыть его.
При работе с этим CSV-файлом нужно помнить о нескольких вещах.
Для Outlook необходимо, чтобы в первой строке находились заголовки столбцов, поэтому не заменяйте их другими данными.
Язык заголовков столбцов должен совпадать с языком Outlook, используемым по умолчанию. Например, если в качестве языка Outlook по умолчанию настроен португальский, требуется изменить заголовки столбцов, чтобы они отображались на португальском языке.
Вы можете удалить данные из строк 2–6 (например, имена, телефонные номера, адреса электронной почты и т. д).
Вводить данные во всех столбцах необязательно. Укажите только необходимые сведения.
Сохраните файл в формате CSV под другим именем. Если вы работаете с этим файлом в Excel, то при его сохранении получите несколько запросов такого типа: "Вы действительно хотите сохранить файл в формате CSV?" Всегда выбирайте ответ "Да". Если вы выберете "Нет", файл будет сохранен в собственном формате Excel (XLSX) и его нельзя будет использовать для импорта данных в Outlook.
Попробуйте импортировать CSV-файл с несколькими контактами, чтобы убедиться в получении правильных результатов. После этого можно удалить импортированные контакты, добавить все нужные контакты в CSV-файл и снова импортировать его.
Если вы импортируете данные из образца CSV-файла, вот как это будет выглядеть в Outlook в Интернете для Microsoft 365:
Изменение CSV-файла с контактами, которые нужно импортировать в Outlook
Предположим, вы хотите изменить CSV-файл, экспортированный из Outlook, а затем снова импортировать его в это приложение или другую почтовую службу. Вы можете легко сделать это с помощью Excel.
При изменении CSV-файла учитывайте перечисленные ниже моменты.
Заголовки столбцов должны оставаться в первой строке.
При сохранении файла в Excel несколько раз появятся запросы такого типа: "Вы действительно хотите сохранить файл в формате CSV?" Всегда выбирайте ответ "Да". Если вы выберете "Нет", файл будет сохранен в собственном формате Excel (XLSX) и его нельзя будет использовать для импорта в Outlook.
Проблема: все данные выводятся в первом столбце
Это могло произойти по нескольким причинам, поэтому можно попробовать несколько решений.
Если вы сохраните CSV-файл в другом формате, например XLS, XLSX или XLM, все данные будут отображаться в первом столбце. Вернитесь к исходному CSV-файлу и сохраните его в формате CSV.
Возможно, программа, в которой был создан CSV-файл, добавляет к данным дополнительные кавычки, из-за чего Excel считает их одной строкой. Предположим, например, что у вас такие данные:
a, b, c, d — Excel поместит каждую букву в отдельный столбец.
"a, b, c, d", e — Excel поместит a, b, c, d в один столбец, а e — в другой.
Чтобы проверить, не в этом ли проблема, откройте файл в Блокноте: Щелкните CSV-файл правой кнопкой мыши, выберите Открыть с помощью > Блокнот. Выполните поиск дополнительных кавычек.
Откройте CSV-файл в Excel. Все данные будут добавлены в столбец A без кавычек.
С помощью мастера распределения текста по столбцам разделите данные столбца A на отдельные столбцы: в строке меню выберите Данные > Текст по столбцам.
Выберите С разделителями > Далее. Выберите запятая > Готово.
Сохраните файл в формате CVS, чтобы можно было импортировать его в Outlook.
Здравствуйте, друзья. Сегодня поговорим о таких полезных функциях, как импорт и экспорт контактов. Для чего они нужны? Человек в силу разных обстоятельств часто меняет или приобретает новые мобильные устройства, заводит дополнительные аккаунты и электронные почтовые ящики. Каждый раз заполнять адресную книгу вручную – процесс трудоёмкий, утомительный и не очень приятный. Рассматриваемые функции призваны облегчить данную задачу. Экспортировать – это вынести перечень имеющихся адресов в сторонний файл заданного формата, импортировать – это загрузить данные их созданного документа в новую адресную книгу. Ниже я вам расскажу, как создать файл csv для импорта контактов в аккаунт Google, почту от Яндекса и Outlook, а также о том, как перенести адреса в новый смартфон Андроид и телефон Nokia на платформе S30+.
Что такое 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.
- В первую строку поместите заголовки для столбцов сведений – имя, фамилия, телефон, почта и так далее.
- Заполните таблицу (необязательно писать данные в каждый имеющийся столбец, часть ячеек могут быть пустыми, названия удалять нельзя).
Outlook
Друзья, полученный CSV-файл вы можете использовать для импорта контактов в Outlook:
- Откройте Outlook.
- В списке команд меню «Файл» выберите «Импорт и экспорт».
- Отметьте пункт «… из другой программы или файла».
- Нажмите на кнопку «Обзор» и найдите созданный ранее документ, определитесь с тем, нужны ли вам дубликаты (одинаковые адреса в CSV и уже имеющиеся в Outlook) и отметьте нужный пункт.
Посмотреть скопированные значения можно нажатием на значок «Люди» в нижней части окна программы. Импорт также можно сделать не из созданного собственноручно CSV, а экспортированного из почтовых клиентов. При настройке параметров экспорта необходимо установить параметр Outlook CSV (я писал об этом выше).
Телефоны
Вкратце расскажу о том, как перенести контакты из одного телефона на другой.
Андроид
На смартфонах с платформой Андроид сделать это очень просто:
- Зайдите в «Контакты».
- Раскройте содержимое меню (три точки в правом верхнем углу).
- Выберите пункт «Импорт/экспорт».
- Укажите действие «Экспорт в файл VCF».
- Отметьте галочками нужные имена или пункт «Выбрать все».
- Нажмите команду «Готово».
- Выдвиньте варианты мест сохранения нажатием на иконку из трёх горизонтальных полосок в верхнем левом углу и выберите sd-карту.
- Нажмите «Сохранить».
Результатом выполненных действий станет появление на карте памяти документа VCF. Чтобы импортировать адреса в другой смартфон, переставьте в него карту памяти, проделайте те же действия до пункта 4 предыдущего списка, укажите действие «Импорт из файла VCF», наёдите созданный ранее VCF и запустите процесс.
В телефонах Nokia на платформе S30+ импортировать контакты можно следующим образом:
- В контактах, настройках или опциях найдите функцию Backup (резервное копирование).
- Сделайте копию телефонных номеров и сохраните её на карте памяти (она будет выглядеть как backup.dat).
- Переставьте карту памяти в то устройство, куда требуется скопировать данные.
- Запустите импортирование из этого файла.
Друзья, вот и все премудрости, о которых я хотел вам сегодня поведать. Если что-то непонятно, задавайте вопросы в комментариях. До свидания.
Ваша таблица контактов в Excel может быть добавлена в несколько шагов
Контактные данные, хранящиеся в базе данных или электронной таблице, легко импортируются в Outlook. Outlook предоставляет простой метод.
Импорт контактов из файла CSV в Outlook
В базе данных или программе электронных таблиц экспортируйте данные контактов в файл CSV (значения, разделенные запятыми). Убедитесь, что столбцы имеют значимые заголовки, хотя они не должны точно соответствовать полям, используемым в адресной книге Outlook. Вы можете вручную сопоставить столбцы с полями во время процесса импорта.
Снимки экрана ниже для Outlook 2016. Экраны в других версиях Outlook могут незначительно отличаться, но шаги те же. Любые варианты для более старых версий будут отмечены.
Перейдите в Файл .
Выберите Открыть и экспортировать . В Outlook 2010 выберите Открыть .
Выберите Импорт/Экспорт . В Outlook 2010 нажмите Импорт .
В мастере импорта и экспорта выберите Импорт из другой программы или файла , затем выберите Далее .
Выберите Значения, разделенные запятыми , затем выберите Далее .
Выберите Обзор , а затем найдите файл CSV, содержащий контакты, которые вы хотите импортировать.
Если вы используете Gmail, экспортируйте свои контакты Gmail в файл CSV, а затем импортируйте свои контакты Gmail в Outlook.
Выберите один из следующих:
- Не импортируйте дублирующиеся элементы .
- Замените дубликаты импортированными элементами . Если данные в CSV-файле более поздние или более полные, это может быть лучшим выбором.
- Разрешить создание дубликатов . Если дубликаты созданы, вы всегда можете найти и удалить их, например, с помощью утилиты удаления дубликатов.
Выберите Далее .
Выберите папку Outlook, в которую вы хотите импортировать контакты. Это может быть ваша папка «Контакты», или это может быть папка «Контакты» в любой другой вашей папке. Вы также можете создать папку Outlook только для импортированных элементов.
Выберите Далее .
Выберите Карта пользовательских полей .
Сопоставьте все столбцы из CSV-файла с нужными полями адресной книги Outlook. Outlook автоматически сопоставляет некоторые поля; измените их, если они не отображаются правильно.
Чтобы сопоставить поле, перетащите Значение в нужное поле .
Выберите ОК , а затем выберите Готово , чтобы начать процесс импорта.
Откройте Панель запуска приложений и выберите Люди .
Выберите Управление > Импорт контактов .
Выберите Обзор .
Выберите файл CSV, затем выберите Открыть .
В диалоговом окне Импорт контактов выберите Импорт .
Читайте также: