CSV – популярное расширение файлов, которые используются, в основном, для обмена данными между различными компьютерными программами. Чаще всего необходимости в открытии и редактировании таких документов нет. Однако в некоторых случаях перед пользователями может встать такая задача. Программа Excel позволяет это сделать, но в отличие от стандартных файлов в формате XLS и XLSX, простое открытие документа двойным щелчком мыши не всегда дает качественный результат, что может выражаться в некорректном отображении информации. Давайте посмотрим, каким образом можно открыть файлы с расширением CSV в Экселе.
-
Открываем CSV-файлы
- Метод 1: двойным щелчком или через контекстное меню
- Метод 2: применяем Мастер текстов
- Метод 3: через меню “Файл”
- Заключение
Для начала давайте разберемся, что из себя представляют документы в данном формате.
CSV – аббревиатура, которая расшифровывается как “Comma-Separated Values” (на русском языке означает “значения, разделенные запятыми”).
Как следует из названия, в таких документах используются разделители:
- запятая – в англоязычных версиях;
- точка с запятой – в русскоязычных версиях программы.
Во время открытия документа в Excel основная задача (проблема) заключается в выборе способа кодировки, примененного при сохранении файла. Если будет выбрана не та кодировка, скорее всего, пользователь увидит множество нечитаемых символов, и полезность информации будет сведена к минимуму. Помимо этого, ключевое значение имеет используемый разделитель. Например, если документ был сохранен в англоязычной версии, а затем его пытаются открыть в русскоязычной, скорее всего, качество отображаемой информации пострадает. Причина, как мы ранее отметили, заключается в том, что в разных версиях используются разные разделители. Давайте посмотрим, как избежать этих проблем и как правильно открывать файлы CSV.
Прежде, чем приступить к более сложным методам, давайте рассмотрим самый простой. Он применим только в тех случаях, когда файл был создан/сохранен и открывается в одной и той же версии программы, а значит, проблем с кодировкой и разделителями быть не должно. Здесь возможно два варианта, опишем их ниже.
Excel установлена как программа по умолчанию для открытия CSV-файлов
Если это так, открыть документ можно как и любой другой файл – достаточно просто дважды щелкнуть по нему.
Для открытия CSV-фалов назначена другая программа или не назначена вовсе
Алгоритм действия в таких ситуациях следующий (на примере Windows 10):
- Щелкаем правой кнопкой мыши по файлу и в открывшемся контекстном меню останавливаемся на команде “Открыть с помощью”.
- Во вспомогательном меню система может сразу предложить программу Excel. В этом случае кликаем по ней, в результате чего файл откроется (как и при двойном щелчке по нему). Если нужной нам программы нет в списке, кликаем по пункту “Выбрать другое приложение”.
- Появится окно, в котором мы можем выбрать программу (чтобы раскрыть весь список доступных вариантов, требуется нажать кнопку “Еще приложения”), с помощью которой требуется открыть документ. Ищем то, что нам нужно и жмем OK. Чтобы назначить Excel приложением по умолчанию для данного типа файлов, предварительно ставим соответствующую галочку.
- В некоторых случаях, когда и в этом окошке не удается найти Эксель, щелкаем по кнопке “Найти другое приложение на этом компьютере” в конце списка.
- На экране отобразится окно, в котором мы переходим к расположению программы на ПК, отмечаем исполняемый файл с расширением EXE и жмем кнопку “Открыть”.
Независимо от того, какой из описанных выше способов был выбран, результатом будет открытие CSV-файла. Как мы упомянули выше, корректно отображаться содержимое будет только при соответствии кодировки и разделителей.
В остальных случаях может показываться нечто подобное:
Поэтому описанный метод подходит не всегда, и мы переходим к следующим.
Метод 2: применяем Мастер текстов
Воспользуемся интегрированным в программу инструментом – Мастером текстов:
- Открыв программу и создав новый лист, чтобы получить доступ ко всем функциям и инструментам рабочей среды, переключаемся во вкладку “Данные”, где щелкаем по кнопке “Получение внешних данных”. Среди раскрывшихся вариантов выбираем “Из текста”.
- Откроется окно, в котором нам нужно перейти к расположению файла, который требуется импортировать. Отметив его жмем кнопку “Импорт”.
- Появится Мастер текстов. Проверяем, чтобы была выбрана опция “с разделителями” для параметра “Формат данных”. Выбор формата зависит от кодировки, которая была использована при его сохранении. Среди самых популярных форматов можно отметить “Кириллицу (DOS)” и “Юникод (UTF-8)”. Понять, что сделан правильный выбор можно, ориентируясь на предварительный просмотр содержимого в нижней части окна. В нашем случае подходит “Юникод (UTF-8)”. Остальные параметры чаще всего не требует настройки, поэтому жмем копку “Далее”.
- Следующим шагом определяемся с символом, который служит в качестве разделителя. Так как наш документ был создан/сохранен в русскоязычной версии программы, выбираем “точку с запятой”. Здесь у нас, как и в случае с выбором кодировки, есть возможность попробовать различные варианты, оценивая результат в области предпросмотра (можно, в том числе, указать свой собственный символ, выбрав опцию “другой”). Задав требуемые настройки снова нажимаем кнопку “Далее”.
- В последнем окне, чаще всего, вносить какие-либо изменения в стандартные настройки не нужно. Но если требуется изменить формат какого-то столбца, сначала кликаем по нему в нижней части окна (поле “Образец”), после чего выбираем подходящий вариант. По готовности жмем “Готово”.
- Появится окошко, в котором выбираем способ импорта данных (на имеющемся или на новом листе) и жмем OK.
- Все готово, нам удалось импортировать данные CSV-файла. В отличие от первого метода, мы можем заметить, что была соблюдена ширина столбцов с учетом содержимого ячеек.
И последний метод, которым можно воспользоваться заключается в следующем:
- Запустив программу выбираем пункт “Отрыть”.Если программа уже ранее была открыта и ведется работа на определенном листе, переходим в меню “Файл”.Щелкаем по команде “Открыть” в списк команд.
- Жмем кнопку “Обзор”, чтобы перейти к окну Проводника.
- Выбираем формат “Все файлы”, переходим к месту хранения нашего документа, отмечаем его и щелкаем кнопку “Открыть”.
- На экране появится уже знакомый нам Мастер импорта текстов. Далее руководствуемся шагами, описанными в Методе 2.
Заключение
Таким образом, несмотря на кажущуюся сложность, программа Эксель вполне позволяет открывать и работать с файлами в формате CSV. Главное – определиться с методом реализации. Если при обычном открытии документа (двойным щелчком мыши или через контекстное меню) его содержимое содержит непонятные символы, можно воспользоваться Мастером текста, который позволяет выбрать подходящую кодировку и знак разделителя, что напрямую влияет на корректность отображаемой информации.
Although CSV stands for comma-separated values, it has become a common file type to define simple text files including delimiter-separated data. Thus, a CSV file can use a semicolon or tab character as a delimiter as well. In this guide, we’re going to show you how to change CSV delimiter in Excel.
Changing the delimiter in Excel Options
The first approach in our article is about changing how Excel evaluates CSV files including saving. You can make Excel using semicolon (;) as the delimiter.
- Open Advanced Options by following File > Options > Advanced.
- In the Editing options section, find Use system operators
- Uncheck it to override the system settings.
- Set Decimal separator to comma (,) and Thousands separator to period (.).
- Clicking OK ensures that Excel uses semicolon (;) as the delimiter.
This setting allows Excel to save CSV files with semicolons (;).
If you are using a computer with European version, your settings may already be like above. You can change the operators to convert the delimiter from a semicolon to a comma.
Changing the CSV delimiter when importing files
Excel also allows you to change the delimiter while opening files. This is a more convenient way if you do not want to alter Excel’s entire behavior. Because Excel’s data import features have been updated vastly beginning with 2016, we divided this section into two parts.
Power Query — Excel 2016 and newer
Disclaimer: Power Query has been part of Excel 2010 and Excel 2013 as well. However, Microsoft released it as an add-in. Excel 2016 has the Power Query features by default. You can learn more about Power Query at Power Query 101.
Power Query allows you to choose the delimiter when creating a connection. You can find the option in the Preview dialog. You can create the connection by using From Text/CSV command in Data > Get & Transform Data.
Selecting the file opens the Preview window. Probably, the Power Query guessed the delimiter correctly. However, you can change CSV delimiter easily at a dropdown option.
Use Load or Transform Data buttons to load the data directly into your workbook or modify it in the Power Query window respectively.
Excel 2013 or older
If you are using Excel 2013 or a previous version without the Power Query add-in, you can use Text Import Wizard which shares a similar user interface with Text to Columns wizard.
- Click Data > Get External Data > From Text to select a file and open the Text Import Wizard.
- In the first step of the wizard, make sure to select Delimited
- Click Next button to continue.
- Select one or more delimiters that fits your data. You can see if the data is separated correctly in the Data preview section.
- You can modify data types for columns at the next step. Click Next to continue the third step or click the Finish button to populate the separated data in your worksheet.
Время на прочтение
11 мин
Количество просмотров 366K
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
2005-го
года, в котором описано все довольно толково. За неимением ничего большего, правильно придерживаться хотя бы RFC. Но для совместимости с Excel следует учесть его собенности.
Вот краткая выжимка рекомендаций RFC 4180 и мои комментарии в квадратных скобках:
- между строками — перевод строки CRLF [на мой взгляд, им не стоило ограничивать двумя байтами, т.е. как CRLF (0×0D, 0×0A), так и CR 0×0D]
- разделители — запятые, в конце строки не должно быть запятой,
- в последней строке CRLF не обязателен,
- первая строка может быть строкой заголовка (никак не помечается при этом)
- пробелы, окружающие запятую-разделитель, игнорируются.
- если значение содержит в себе CRLF, CR, LF (символы-разделители строк), двойную кавычку или запятую (символ-разделитель полей), то заключение значения в кавычки обязательно. В противном случае — допустимо.
- т.е. допустимы переводы строк внутри поля. Но такие значения полей должны быть обязательно закавычены,
- если внутри закавыченной части встречаются двойные кавычки, то используется специфический квотинг кавычек в CSV — их дублирование.
Вот в нотации ABNF описание формата:
file = [header CRLF] record *(CRLF record) [CRLF] header = name *(COMMA name) record = field *(COMMA field) name = field field = (escaped / non-escaped) escaped = DQUOTE *(TEXTDATA / COMMA / CR / LF / 2DQUOTE) DQUOTE non-escaped = *TEXTDATA COMMA = %x2C DQUOTE = %x22 LF = %x0A CRLF = CR LF TEXTDATA = %x20-21 / %x23-2B / %x2D-7E
Также при реализации формата нужно помнить, что поскольку здесь нет указателей на число и тип колонок, поскольку нет требования обязательно размещать заголовок, здесь есть условности, о которых необходимо не забывать:
- строковое значение из цифр, не заключенное в кавычки может быть воспринято программой как числовое, из-за чего может быть потеряна информация, например, лидирующие нули,
- количество значений в каждой строке может отличаться и необходимо правильно обрабатывать эту ситуацию. В одних ситуациях нужно предупредить пользователя, в других — создавать дополнительные колонки и заполнять их пустыми значениями. Можно определиться, что количество колонок задается заголовком, а можно добавлять их динамически, по мере импорта CSV,
- Квотить кавычки через «слэш» не по стандарту, делать так не надо.
- Поскольку типизации полей нет, нет и требования к ним. Разделители целой и дробной частей в разных странах разные, и это приводит к тому, что один и тот же CSV, сгенрированный приложением, в одном экселе «понимается», в другом — нет. Потому что Microsoft Office ориентируется на региональные настройки Windows, а там может быть что угодно. В России там указано, что разделитель — запятая,
- Если CSV открывать не через меню «Данные», а напрямую, то Excel лишних вопросов не задает, и делает как ему кажется правильным. Например, поле со значением 1.24 он понимает по умолчанию как «24 января»
- Эксель убивает ведующие нули и приводит типы даже тогда, когда значение указано в кавычках. Делать так не надо, это ошибка. Но чтобы обойти эту проблему экселя, можно сделать небольшой «хак» — значение начать со знака «равно», после чего поставить в кавычках то, что необходимо передать без изменения формата.
- У экселя есть спецсимвол «равно», который в CSV рассматривается как идентификатор формулы. То есть, если в CSV встретится =2+3, он сложит два и три и результат впишет в ячейку. По стандарту он это делать не должен.
Пример валидного CSV, который можно использовать для тестов:
Фамилия, Имя, Адрес, Город/штат, индекс, просто строка Иванов,Иван, Ленина 20, Москва, 08075, "1/3" Tyler, John,110 terrace, PA,20121, "1.24" "Петров ""Кул""", Петя,120 Hambling St., NJ,08075, "1,24" Смирнов,Вася,"7452 Street ""Near the Square"" road", York, 91234, "3-01" ,Миша,,Ленинград, 00123, "03-01" "Джон ""Черная голова"", Клод",Рок,"", Маями бич,00111, "0000" Сергей,,
точно такой же SCSV:
Фамилия; Имя; Адрес; Город/штат; индекс; просто строка Иванов;Иван; Ленина 20; Москва; 08075;"1/3" Tyler; John;110 terrace; PA; 20121;"1.24" "Петров ""Кул"""; Петя;120 Hambling St.; NJ;08075;"1,24" Смирнов;Вася;"7452 Street ""Near the Square"" road"; York; 91234;"3-01" ;Миша;;Ленинград; 00123;"03-01" "Джон ""Черная голова""; Клод";Рок;""; Маями бич;00111; "0000" Сергей;;
Первый файлик, который реально COMMA-SEPARATED, будучи сохраненным в .csv, Excel-ом не воспринимается вообще.
Второй файлик, который по логике SCSV, экселом воспринимается и выходит вот что:
Ошибки Excel-я при импорте:
- Учлись пробелы, окружающие разделители
- Последний столбец вообще толком не распознался, несмотря на то, что данные в кавычках. Исключение составляет строка с «Петровым» — там корректно распозналось 1,24.
- В поле индекс Excel «опустил» ведущие нули.
- в самом правом поле последней строки пробелы перед кавычками перестали указывать на спецсимвол
Если же воспользоваться функционалом импорта (Данные -> Из файла) и обозвать при импорте все поля текстовыми, то будет следующая картина:
С приведением типов сработало, но зато теперь не обрабатываются нормально переводы строк и осталась проблема с ведущими нулями, кавычками и лишними пробелами. Да и пользователям так открывать CSV крайне неудобно.
Есть эффективный способ, как заставить Excel не приводить типы, когда это нам не нужно. Но это будет CSV «специально для Excel». Делается это помещением знака «=» перед кавычками везде, где потенциально может возникнуть проблема с типами. Заодно убираем лишние пробелы.
Фамилия;Имя;Адрес;Город/штат;индекс;просто строка Иванов;Иван;Ленина 20;Москва;="08075";="1/3" Tyler; John;110 terrace;PA;="20121";="1.24" "Петров ""Кул""";Петя;120 Hambling St.;NJ;="08075";="1,24" Смирнов;Вася;"7452 Street ""Near the Square"" road";York;="91234";="3-01" ;Миша;;Ленинград;="00123";="03-01" "Джон ""Черная голова"";Клод";Рок;"";Маями бич;="00111";="0000" Сергей;;
И вот что случаеся, если мы открываем этот файлик в экселе:
Резюмирую.
Чтобы сгенерировать такой CSV, которым можно было бы пользоваться, пользователю нужно дать возможность сделать следующие настройки перед экспортом:
- выбрать кодировку. Как правило, важно UTF-8, UTF-16, Windows-1251, KOI8-R. Чаще всего, других вариантов нет. Одна из них должна идти по умолчанию. В случае, если данные содержат символы, не имеющие аналогов в целевой кодировке, нужно предупреждать пользователя, что данные будут битые;
- выбрать разделитель между полями. Варианты — табуляция, запятая, точка с запятой. По умолчанию — точка с запятой. Не забыть, что если разделитель вводится в тексте, то будет очень непросто ввести туда табуляцию, это еще и непечатный символ;
- выбрать разделитель между строками (CRLF 0×0D 0×0A или CR 0×0D);
- выбрать разделитель целой и дробной части для числовых данных (точка или запятая).
- выбрать, выводить ли строку заголовка;
- выбрать, каким образом осуществлять квотинг спецсимволов (особенно переводов строк и кавычек). В принципе, можно отступиться от стандарта и квотировать их как n и «, но нужно в этом случае не забыть квотировать сами n, если они встретятся и не забыть сделать это опцией при экспорте-импорте. Но совместимость пойдет лесом, потому что любой RFC-стандартный парсер конструкцию …,»abc«»,… посчитает за ошибку;
- совсем в идеале — поставить галочку «для Excel» и учитывать там те нестандартности, которые внесла Майкрософт. К примеру, заменять значения числовых полей, «похожих на дату», на конструкцию =»<значение поля>«.
- определиться, нужно ли оставлять «хвост» из пустых разделителей, если он образуется. Например, из 20 полей только первое содержит данные, а остальные пустые. В итоге, в строке можно либо ставить после первого 19 разделителей, либо не ставить. Для больших объемов данных это может спасти миллисекунды обработки и уменьшить размер файла.
Чтобы построить хороший и удобный импортер CSV, необходимо помнить о следующем:
- разбор файла нужно делать по лексемам в соответствии с грамматикой выше или пользоваться хорошо зарекомендовавшими себя готовыми библиотеками (Excel работает иначе, потому с импортом проблема);
- предоставлять пользователю возможность выбрать кодировку (топ 4 достаточно);
- предоставлять пользователю возможность выбрать разделитель между полями (запятая, табуляция, точка с запятой достаточно);
- предоставлять пользователю возможность выбрать разделитель между строками, но кроме вариантов CR и CRLF нужно предусмотреть «CR или CRLF». Это связано с тем, что, например, Excel при экспорте таблицы с переводами строк внутри ячеек экспортирует эти переводы строк как CR, а остальные строки разделяет CRLF. При этом при импорте файла ему все равно, CR там или CRLF;
- предоставлять пользователю возможность выбрать разделитель между целой и дробной частей (запятая или точка);
- определиться с методом разбора — сначала читаем все в память, потом обрабатываем или обрабатываем строку за строкой. В первом случае может понадобиться больше памяти, во втором случае — ошибка в середине вызовет только частичный импорт, что может вызвать проблемы. Предпочительнее первый вариант.
Рауф Алиев,
заместитель технического директора Mail.Ru Group
В этой статье Вы найдёте 2 простых способа преобразовать файл CSV в Excel. Кроме того, Вы узнаете, как импортировать в Excel несколько файлов CSV и как справиться с ситуациями, когда часть данных из файла CSV не отображается корректно на листе Excel.
Недавно мы начали изучать особенности формата CSV (Comma-Separated Values – значения, разделённые запятой) и различные способы преобразования файла Excel в CSV. Сегодня мы займёмся обратным процессом – импортом CSV в Excel.
Эта статья покажет Вам, как открывать CSV в Excel и как импортировать одновременно несколько файлов CSV. Мы также обозначим возможные подводные камни и предложим наиболее эффективные решения.
- Как преобразовать CSV в Excel
- Преобразование CSV в Excel: проблемы и решения
Содержание
- Как преобразовать CSV в Excel
- Как открыть файл CSV в Excel
- Как открыть файл CSV при помощи Проводника Windows
- Как импортировать CSV в Excel
- Преобразование CSV в Excel: проблемы и решения
- Файл CSV отображается в Excel неправильно
- Первые нули теряются при открытии файла CSV в Excel
- Excel преобразует некоторые значения в даты при открытии файла CSV
- Как импортировать в Excel несколько файлов CSV
Как преобразовать CSV в Excel
Если Вам нужно вытащить какую-то информацию на лист Excel из базы данных Вашей компании, то первая же идея, что приходит на ум, – экспортировать базу данных в файл CSV, а затем импортировать файл CSV в Excel.
Существует 3 способа преобразования CSV в Excel: Вы можете открыть файл с расширением .csv непосредственно в Excel, дважды кликнуть по файлу в Проводнике Windows либо импортировать CSV в Excel, как внешний источник данных. Далее я подробно расскажу об этих трёх способах и укажу преимущества и недостатки каждого из них.
- Способ 1: Открываем файл CSV в Excel
- Способ 2: Открываем файл CSV в Excel при помощи Проводника Windows
- Способ 3: Импортируем CSV в Excel
Как открыть файл CSV в Excel
Даже если файл CSV создан в другой программе, Вы всегда можете открыть его как книгу Excel при помощи команды Open (Открыть).
Замечание: Открытие файла CSV в Excel не изменяет формат файла. Другими словами, файл CSV при этом не будет преобразован в файл Excel (формат .xls или .xlsx), он сохранит свой изначальный тип (.csv или .txt).
- Запустите Microsoft Excel, на вкладке Home (Главная) нажмите Open (Открыть).
- Появится диалоговое окно Open (Открытие документа), в выпадающем списке в нижнем правом углу выберите Text Files (Текстовые файлы).
- Найдите в Проводнике Windows файл CSV и откройте его, дважды кликнув по нему.
Если Вы открываете файл CSV, то Excel откроет его сразу же вставив данные в новую книгу Excel. Если Вы открываете текстовый файл (.txt), то Excel запустит Мастер импорта текстов. Подробнее об этом читайте в разделе Импортируем CSV в Excel.
Замечание: Когда Microsoft Excel открывает файл CSV, то для того, чтобы понять, как именно импортировать каждый столбец данных, он использует настройки форматирования, заданные по умолчанию.
Если данные соответствуют хотя бы одному из следующих пунктов, то воспользуйтесь Мастером импорта текстов:
- В файле CSV использованы различные разделители;
- В файле CSV использованы различные форматы даты;
- Вы преобразуете данные, среди которых есть числа с нулём в начале, и Вы хотите сохранить этот ноль;
- Вы хотите предварительно просмотреть, как будут импортированы данные из файла CSV в Excel;
- Вам хочется большей гибкости в работе.
Чтобы заставить Excel запустить Мастер импорта текстов, Вы можете либо изменить расширение фала с .csv на .txt (прежде чем открывать файл), либо импортировать CSV в Excel так, как это будет описано далее.
Как открыть файл CSV при помощи Проводника Windows
Это самый быстрый способ открыть CSV в Excel. В Проводнике Windows дважды кликните по файлу .csv, и он откроется как новая книга Excel.
Однако, этот способ сработает только в том случае, если приложение Microsoft Excel установлено как программа, заданная по умолчанию, для открытия файлов .csv. Если это так, то Вы будете видеть знакомую иконку в Проводнике Windows рядом с именем файла.
Если Excel не является программой по умолчанию, вот как Вы можете это исправить:
- Кликните правой кнопкой мыши по любому файлу .csv в Проводнике Windows и в открывшемся контекстном меню нажмите Open with (Открыть с помощью) > Choose default program (Выбрать программу).
- Выберите Excel в списке рекомендованных программ, убедитесь, что стоит галочка для параметра Always use the selected program to open this kind of file (Всегда использовать выбранное приложение для такого типа файлов) и нажмите ОК.
Как импортировать CSV в Excel
Этим способом Вы можете импортировать данные из файла .csv в существующий или в новый лист Excel. В отличие от предыдущих двух способов, он не просто открывает CSV в Excel, а именно конвертирует формат .csv в .xlsx (если Вы используете Excel 2007, 2010 или 2013) или .xls (в версиях Excel 2003 и более ранних).
- Откройте нужный лист Excel и кликните по ячейке, куда нужно импортировать данные из файла .csv или .txt.
- На вкладке Data (Данные) в разделе Get External Data (Получение внешних данных) кликните From Text (Из текста).
- Найдите файл .csv, который требуется импортировать, выберите его и нажмите кнопку Import (Импорт), или просто дважды кликните по нужному CSV файлу.
- Откроется Мастер импорта текстов, Вам нужно просто выполнить его шаги.
Прежде, чем мы двинемся дальше, пожалуйста, посмотрите на снимок экрана ниже, на нем показан исходный файл CSV и желаемый результат в Excel. Надеюсь, это поможет Вам лучше понять, почему мы выбираем те или иные параметры настроек в последующем примере.
-
- Шаг 1. Выберите формат данных и номер строки, с которой нужно начинать импорт. Чаще всего выбирают Delimited (С разделителями) и со строки 1. Область предварительного просмотра в нижней части диалогового окна мастера показывает первые несколько записей импортируемого файла CSV.
- Шаг 2. На этом шаге нужно выбрать разделители и ограничитель строк. Delimiter (Разделитель) – это символ, который разделяет значения в файле CSV. Если в Вашем файле CSV использован какой-то символ, которого нет в предложенном списке, то поставьте галочку в варианте Other (Другой) и введите нужный символ. В нашем примере мы указали Tab (Знак табуляции) и Comma (Запятая), чтобы каждый товар (они разделены табуляцией) начинался с новой строки, а информация о товаре, например, ID и данные о продажах (они разделены запятыми), были помещены в разные ячейки.Text qualifier (Ограничитель строк) – это символ, в который заключены отдельные значения. Весь текст, заключённый между такими символами, например, «текст1, текст2», будет импортирован как одно значение, даже если в этом тексте содержится символ, указанный Вами как разделитель.В этом примере мы указали запятую как разделитель, и кавычки как ограничитель строк. В результате, все числа с разделителем десятичных разрядов (которым тоже в нашем случае служит запятая!) будут импортированы в одну ячейку, как это видно в области предпросмотра на рисунке ниже. Если мы не укажем кавычки как ограничитель строк, то все числа будут импортированы в разные ячейки.
- Шаг 3. Посмотрите в область Data preview (Образец разбора данных). Если Вы довольны тем, как выглядят Ваши данные, тогда жмите кнопку Finish (Готово).
Совет: Если в Вашем файле CSV используется последовательно более одной запятой или другого символа-разделителя, то поставьте галочку для параметра Treat consecutive delimiters as one (Считать последовательные разделители одним), чтобы избежать появления пустых ячеек.
- Выберите, куда вставлять импортированные данные, на существующий или на новый лист, и нажмите ОК, чтобы завершить импорт файла CSV в Excel.
Совет: Вы можете нажать кнопку Properties (Свойства), чтобы настроить дополнительные параметры, такие как обновление, разметка и форматирование для импортированных данных.
Замечание: Если Ваш файл CSV содержит численные данные или даты, Excel может преобразовать их с ошибками. Чтобы изменить формат импортированных данных, выберите столбец (столбцы), в которых возникли ошибки, кликните по ним правой кнопкой мыши и в контекстном меню выберите Format cells (Формат ячеек).
Преобразование CSV в Excel: проблемы и решения
Формат CSV используется уже более 30 лет, но несмотря на его длительную историю, он никогда не был официально задокументирован. Название CSV (Comma-Separated Values) возникло из-за использования запятых для разделения полей данных. Но это в теории. На самом деле, множество так называемых CSV-файлов используют другие символы для разделения данных, например:
- Табуляция – TSV-файлы (tab-separated values)
- Точка с запятой – SCSV-файлы (semicolon separated values)
Некоторые вариации файлов CSV разделяют поля данных одинарными или двойными кавычками, другие требуют маркер последовательности байтов из Юникода (BOM), например, UTF-8, для корректной интерпретации Юникода.
Это отсутствие стандартов порождает разнообразные проблемы, с которыми Вы можете столкнуться, пытаясь преобразовать файл Excel в CSV, и особенно, когда импортируете файл CSV в Excel. Давайте разберёмся с известными проблемами, начиная с самой распространённой.
- Файл CSV отображается в Excel неправильно (все данные помещены в первый столбец)
- Первые нули потеряны при открытии файла CSV в Excel
- Значения преобразованы в даты при импорте файла CSV в Excel
Файл CSV отображается в Excel неправильно
Признаки: Вы пытаетесь открыть файл CSV в Excel, и все данные попадают в первый столбец.
Причина: Корень проблемы кроется в том, что в Ваших региональных и языковых настройках Windows и в Вашем файле CSV установлены различные разделители. В Северной Америке и некоторых других странах разделителем полей списка по умолчанию является запятая. В то время как в Европейских странах запятая используется как разделитель десятичных разрядов, а разделителем полей списка является точка с запятой.
Решение: Есть несколько возможных решений этой проблемы. Вы можете быстро просмотреть приведённые ниже рекомендации и выбрать наиболее подходящие для конкретно Вашей задачи.
- Укажите правильный разделитель непосредственно в файле CSV. Откройте файл CSV в любом текстовом редакторе (подойдёт даже обычный блокнот) и в первой строке вставьте следующий текст. Обратите внимание, что это должна быть отдельная строка перед любыми другими данными:
- Чтобы установить разделитель запятую: sep=,
- Чтобы установить разделитель точку с запятой: sep=;
Как Вы уже догадались, таким образом можно установить в качестве разделителя любой другой символ, просто указав его сразу после знака равенства.
- Выберите нужный разделитель в Excel. В Excel 2013 или 2010 на вкладке Data (Данные) в разделе Data Tools (Работа с данными) нажмите Text To Columns (Текст по столбцам).Когда запустится Мастер распределения текста по столбцам, на первом шаге выберите формат данных Delimited (С разделителями) и нажмите Next (Далее). На втором шаге выберите нужный разделитель и нажмите Finish (Готово).
- Измените расширение с .csv на .txt. Открытие файла .txt в Excel приведёт к запуску Мастера импорта текстов, и Вы сможете выбрать нужный разделитель, как это было описано в разделе Как импортировать CSV в Excel.
- Откройте файл CSV с точкой с запятой в качестве разделителя при помощи VBA. Вот пример кода VBA, который открывает в Excel файл CSV, где в качестве разделителя используется точка с запятой. Код был написан несколько лет назад для более ранних версий Excel (2000 и 2003), но если Вы достаточно хорошо знакомы с VBA, то у Вас не должно возникнуть проблем с его обновлением или изменением для работы с файлами CSV с запятой в качестве разделителя.
Замечание: Все показанные решения изменяют разделитель только для данного файла CSV. Если Вы хотите раз и навсегда изменить разделитель, заданный по умолчанию, то Вам подойдёт следующее решение.
- Изменяем разделители в настройках региональных стандартов. Нажмите кнопку Start (Пуск) и запустите Control Panel (Панель управления), кликните пункт Region and Language (Региональные стандарты) > Additional Settings (Дополнительные параметры). Откроется диалоговое окно Customize Format (Настройка формата), в котором Вам нужно выбрать точку (.) для параметра Decimal symbol (Разделитель целой и дробной части), и установить запятую (,) для параметра List separator (Разделитель элементов списка).
Примечание переводчика: Данные настройки приведены для английской локализации Excel (и ряда других стран). Для русской локализации привычнее будет использовать запятую в качестве разделителя целой и дробной части и точку с запятой для разделения элементов списка.
- Дважды нажмите ОК, чтобы закрыть диалоговые окна – всё готово! С этого момента Microsoft Excel будет открывать и отображать все файлы CSV (с разделителем запятой) корректно.
Замечание: Установка в Панели управления Windows символов-разделителей целой и дробной части и элементов списка изменит настройки символов, заданные по умолчанию, для всех программ на Вашем компьютере, а не только в Microsoft Excel.
Первые нули теряются при открытии файла CSV в Excel
Признаки: Ваш файл CSV содержит значения с первыми нулями, и эти нули теряются при открытии файла CSV в Excel.
Причина: По умолчанию, Microsoft Excel отображает файл CSV в формате General (Общий), в котором первые нули отсекаются.
Решение: Вместо того, чтобы открывать файл .csv в Excel, запустите, как мы это делали ранее, Мастер импорта текстов, чтобы конвертировать файл CSV в Excel.
На шаге 3 мастера выберите столбцы, содержащие значения с первыми нулями и измените формат этих столбцов на текстовый. Так Вы конвертируете Ваш файл CSV в Excel, сохранив нули на своих местах.
Excel преобразует некоторые значения в даты при открытии файла CSV
Признаки: Некоторые значения в Вашем файле CSV похожи на даты, и Excel автоматически преобразует такие значения из текстового формата в формат даты.
Причина: Как упоминалось выше, Excel открывает файл CSV в формате General (Общий), при этом значения, похожие на даты, преобразует из текстового формата в формат даты. Например, если Вы открываете файл CSV, содержащий логины пользователей, то запись «апр23» будет преобразована в дату.
Решение: Преобразуйте файл CSV в Excel при помощи Мастера импорта текстов. На шаге 3 мастера выберите столбцы с записями, похожими на даты, и измените формат столбца на текстовый.
Если Вам нужно достичь противоположного результата, то есть в определённом столбце преобразовать значения в даты, тогда установите формат Date (Дата) и выберите подходящий формат даты в выпадающем списке.
Как импортировать в Excel несколько файлов CSV
Думаю, Вы знаете, что Microsoft Excel позволяет открывать несколько файлов CSV при помощи команды Open (Открыть).
- На вкладке File (Файл) нажмите Open (Открыть) и в выпадающем списке в нижней правой части диалогового окна выберите Text Files (Текстовые файлы).
- Чтобы выделить несколько файлов подряд, кликните по первому файлу, затем нажав и удерживая клавишу Shift, кликните по крайнему файл. Оба эти файла, а также все, что находятся между ними, будут выделены.Чтобы выделить файлы, расположенные не подряд, удерживайте клавишу Ctrl и щелкайте по каждому файлу .csv, который хотите открыть.
- Когда выделены все нужные файлы CSV, нажмите кнопку Open (Открыть).
Этот способ простой и быстрый, и мы могли бы назвать его отличным, если бы не одно обстоятельство – каждый файл CSV открывается таким образом как отдельная книга Excel. На практике переключение туда-сюда между несколькими открытыми файлами Excel может быть крайне неудобным и обременительным.
Надеюсь, теперь Вы легко сможете преобразовать любой файл CSV в Excel. Если у Вас возникают какие-либо вопросы или сложности, смело пишите мне в комментариях. И благодарю за терпение каждого, кто осилил чтение этой длинной статьи до самого конца! 🙂
Оцените качество статьи. Нам важно ваше мнение:
- Remove From My Forums
-
Вопрос
-
Текстовый файл сохранен в формате Symbol Delimited (TXT), символом разделения является ТОЧКА С ЗАПЯТОЙ.
Если открывать данный файл с помощью Open with… и выбрать Excel, то возможны 2 варианта:
1. Версии Excel ниже 2003 открывают файл в виде норм таблицы.
2. Версии Excel начиная с 2003 не разделяют данные в файле. Получаем одну сплошную строку.Если делать Импорт внешних данных в эксель — то формат указывает вручную и ессно открываем норм таблицу.
Отсюда вопрос — как сделать так, чтобы все версии эксель правильно разделяли данные в файле? Может быть есть какие-либо настройки экселя?
В региональных стандартах винды разделить по умолчанию тоже ТОЧКА С ЗАПЯТОЙ. В настройках Excel — Сервис — Параметры — закладка «Международные» стоит галка Использовать системные. Почему эксель не берет дефолтные настройки винды?
Содержание
- Открытие документов CSV
- Способ 1: Обычное открытие файла
- Способ 2: использование Мастера текстов
- Способ 3: открытие через вкладку «Файл»
- Вопросы и ответы
Текстовые документы формата CSV применяются многими компьютерными программами для обмена данными между друг другом. Казалось бы, что в Экселе можно произвести запуск такого файла стандартным двойным кликом по нему левой кнопкой мыши, но далеко не всегда в таком случае данные отображаются корректно. Правда, есть другой способ просмотреть информацию, содержащуюся в файле CSV. Давайте узнаем, как это можно сделать.
Название формата CSV является аббревиатурой наименования «Comma-Separated Values», что переводится на русский язык, как «значения, разделенные запятыми». Действительно, в этих файлах в качестве разделителей выступают запятые, хотя в русскоязычных версиях, в отличие от англоязычных, все-таки принято применять точку с запятой.
При импорте файлов CSV в Эксель актуальной является проблема воспроизведения кодировки. Зачастую документы, в которых присутствует кириллица, запускаются с текстом изобилующим «кракозябрами», то есть, нечитаемыми символами. Кроме того, довольно частой проблемой является вопрос несоответствия разделителей. В первую очередь, это касается тех ситуаций, когда мы пытаемся открыть документ, сделанный в какой-то англоязычной программе, Экселем, локализованном под русскоязычного пользователя. Ведь в исходнике разделителем является запятая, а русскоязычный Excel воспринимает в этом качестве точку с запятой. Поэтому опять получается некорректный результат. Мы расскажем, как решить и эти проблемы при открытии файлов.
Способ 1: Обычное открытие файла
Но вначале мы остановимся на варианте, когда документ CSV создан в русскоязычной программе и уже готов для открытия в Эксель без дополнительных манипуляций над содержимым.
Если программа Excel уже является установленной для открытия документов CSV на вашем компьютере по умолчанию, то в этом случае достаточно кликнуть по файлу двойным щелчком левой кнопки мыши, и он откроется в Экселе. Если же связь ещё не установлена, то в этом случае нужно выполнить ряд дополнительных манипуляций.
- Находясь в Проводнике Windows в той директории, где расположен файл, кликаем правой кнопкой мыши по нему. Запускается контекстное меню. Выбираем в нем пункт «Открыть с помощью». Если в дополнительном открывшемся списке имеется наименование «Microsoft Office», то кликаем по нему. После этого документ просто запустится в вашем экземпляре Экселя. Но, если данного пункта вы не обнаружите, то щелкайте по позиции «Выбрать программу».
- Открывается окно выбора программ. Тут, опять же, если в блоке «Рекомендуемые программы» вы увидите наименование «Microsoft Office», то выделите его и нажмите на кнопку «OK». Но перед этим, если вы желаете, чтобы файлы CSV всегда автоматически открывались в Экселе при выполнении двойного щелчка мыши по наименованию программы, то проследите за тем, чтобы около параметра «Использовать выбранную программу для всех файлов такого типа» стояла галочка.
Если же наименования «Microsoft Office» в окне выбора программы вы не обнаружили, то кликайте по кнопке «Обзор…».
- После этого запустится окно Проводника в директории размещения установленных на вашем компьютере программ. Как правило, данная папка называется «Program Files» и находится она в корне диска C. Вы должны совершить переход в Проводнике по следующему адресу:
C:Program FilesMicrosoft OfficeOffice№
Где вместо символа «№» должен находиться номер версии установленного на вашем компьютере офисного пакета Microsoft. Как правило, такая папка одна, поэтому выбирайте каталог Office, какой бы там номер не стоял. Переместившись в указанную директорию, ищите файл под названием «EXCEL» или «EXCEL.EXE». Вторая форма наименования будет в том случае, если у вас включено отображений расширений в Проводнике Windows. Выделите этот файл и жмите на кнопку «Открыть…».
- После этого программа «Microsoft Excel» будет добавлена в окно выбора программ, о котором мы говорили уже ранее. Вам необходимо будет только выделить нужное наименование, проследить за наличием галочки около пункта привязки к типам файлов (если вы желаете постоянно открывать документы CSV в Экселе) и нажать на кнопку «OK».
После этого содержимое документа CSV будет открыто в Экселе. Но данный способ подойдет исключительно в том случае, если не будет проблем с локализацией или с отображением кириллицы. К тому же, как мы видим, придется выполнить некоторое редактирование документа: так как информация не во всех случаях вмещается в текущий размер ячеек, их нужно расширять.
Способ 2: использование Мастера текстов
Импортировать данные из документа формата CSV можно при помощи встроенного инструмента Excel, который называется Мастер текстов.
- Запускаем программу Эксель и переходим во вкладку «Данные». На ленте в блоке инструментов «Получение внешних данных» щелкаем по кнопке, которая называется «Из текста».
- Запускается окно импорта текстового документа. Перемещаемся в директорию расположения целевого файла CVS. Выделяем его наименование и жмем на кнопку «Импорт», размещенную в нижней части окна.
- Активируется окно Мастера текстов. В блоке настроек «Формат данных» переключатель должен стоять в позиции «С разделителями». Чтобы гарантировать корректное отображение содержимого выбранного документа, особенно если оно содержит кириллицу, обратите внимание, чтобы в поле «Формат файла» было установлено значение «Юникод (UTF-8)». В обратном случае требуется установить его вручную. После того, как все вышеуказанные настройки установлены, жмите на кнопку «Далее».
- Затем открывается второе окно Мастера текстов. Вот тут очень важно определить, какой символ является разделителем в вашем документе. В нашем случае в этой роли выступает точка с запятой, так как документ русскоязычный и локализован именно для отечественных версий ПО. Поэтому в блоке настроек «Символом-разделителем является» мы устанавливаем галочку в позицию «Точка с запятой». Но если вы импортируете файл CVS, который оптимизирован под англоязычные стандарты, и в роли разделителя в нем выступает запятая, то вам следует установить галочку в позицию «Запятая». После того, как вышеуказанные настройки произведены, жмем на кнопку «Далее».
- Открывается третье окно Мастера текстов. Как правило, никаких дополнительных действий в нем производить не нужно. Единственное исключение, если один из представленных в документе наборов данных имеет вид даты. В этом случае требуется пометить данный столбец в нижней части окна, а переключатель в блоке «Формат данных столбца» установить в позицию «Дата». Но в подавляющем большинстве случаев достаточно настроек по умолчанию, при которых установлен формат «Общий». Так что можно просто жать на кнопку «Готово» внизу окна.
- После этого открывается небольшое окошко импорта данных. В нем следует указать координаты левой верхней ячейки области, в которой будут располагаться импортируемые данные. Это можно сделать, просто установив курсор в поле окна, а затем кликнув левой кнопкой мышки по соответствующей ячейке на листе. После этого её координаты будут занесены в поле. Можно жать на кнопку «OK».
- После этого содержимое файла CSV будет вставлено на лист Excel. Причем, как мы можем видеть, отображается оно более корректно, чем при использовании Способа 1. В частности, не требуется дополнительного расширения размеров ячеек.
Урок: Как поменять кодировку в Excel
Способ 3: открытие через вкладку «Файл»
Существует также способ открыть документ CSV через вкладку «Файл» программы Excel.
- Запускаем Excel и перемещаемся во вкладку «Файл». Щелкаем по пункту «Открыть», расположенному в левой части окна.
- Запускается окно Проводника. Следует переместиться в нем в ту директорию на жестком диске ПК или на съемном носителе, в которой расположен интересующий нас документ формата CSV. После этого нужно переставить переключатель типов файла в окне в позицию «Все файлы». Только в этом случае документ CSV будет показан в окне, так как он не является типичным файлом Excel. После того, как наименование документа отобразилось, выделяем его и жмем на кнопку «Открыть» в нижней части окна.
- После этого запустится окно Мастера текстов. Все дальнейшие действия выполняем по тому же алгоритму, что и в Способе 2.
Как видим, несмотря на некоторые проблемы с открытием документов формата CSV в Экселе, решить их все-таки можно. Для этого нужно воспользоваться встроенным инструментом Excel, который называется Мастер текстов. Хотя, для многих случаев вполне достаточно и применения стандартного метода открытия файла двойным щелчком левой кнопки мыши по его наименованию.
Еще статьи по данной теме: