При открытии файла csv в excel искажаются данные

Проф-Диалог

Научитесь считывать ключевую информацию о кандидате или сотруднике за минуту общения. 16, 17, 18 мая с 10:30 до 12:30.

Иероглифы при открытии .csv файла с помощью Excel: решение проблемы

При выгрузке .csv таблицы в Excel у многих пользователей неверно отображаются данные. Вместо кириллических символов в документе вы можете увидеть иероглифы. Выглядит это примерно так:

Проблема возникает потому, что кодировка csv файла отличается от той, которая используется MS Excel по умолчанию. В этой статье мы рассмотрим два варианта быстрого решения этой проблемы.

Вариант №1. В самом Excel

Шаг 1. Откройте MS Excel.

Шаг 2. Перейдите во вкладку «Данные».

Шаг 3. Нажмите «Получить данные», затем из файла, затем «Из текстового/CSV файла».

Шаг 4. В открывшемся окне в правом нижнем углу выберите опцию «Все файлы».

Шаг 5. Найдите в этом окне .csv файл, который нужно исправить. Нажмите «Импорт».

Шаг 6. В открывшемся окне нажмите «Загрузить».

Шаг 7. Готово! Создан новый лист, и данные в нем отображаются корректно.

Вариант №2. С помощью Google Таблиц (Google Sheets)

Шаг 1. Убедитесь, что вы авторизованы в своем аккаунте Google.

Шаг 3. В разделе «Создать таблицу» нажмите «Пустой файл».

Шаг 4. Откроется страница с пустой таблицей. Нажмите «Файл», затем «Импортировать».

Шаг 5. В открывшемся окне нажмите «Загрузка», затем «Выбрать файл на устройстве».

Шаг 6. Найдите в новом окне .csv файл, который нужно исправить. Нажмите «Открыть».

Шаг 7. Нажмите «Импортировать данные».

Шаг 8. Готово! Таблица импортирована, данные изображаются корректно.

Вы можете дальше работать с файлом прямо в Google Таблицах, либо экспортировать файл, чтобы работать с ним в другой программе (например, MS Excel).
Чтобы экспортировать файл, нажмите «Файл», затем «Скачать», затем выберите нужный формат (например Microsoft Excel).

CSV или Comma-Separated Values – это текстовый файл с табличными данными, в котором столбцы разделены специальным символом, чаще всего это запятая или точка с запятой. Формат CSV часто используется при экспорте данных с различных программ, устройств или онлайн сервисов. Для дальнейшей обработки данных из CSV обычно используется Excel или другой табличный процессор. В этом материале мы расскажем, как открыть CSV файл в Excel, а также как решить распространенные проблемы, которые могут при этом возникать.

Проверяем кодировку CSV файла

Для того чтобы успешно открыть CSV файл в Excel желательно предварительно проверить его кодировку, и, если это необходимо, выполнить преобразование в ANSI. Дело в том, что при открытии CSV файлов Excel по умолчанию использует кодировку ANSI. Поэтому, если ваш файл закодирован с использованием UTF-8 или какой-то другой кодировки, то при его открытии будут возникать проблемы с отображением кириллицы.

Если ваш CSV файл небольшого размера, то для проверки кодировки и преобразования можно использовать программу «Блокнот», которая идет в комплекте с Windows. Для этого откройте CSV файл в «Блокноте» и обратите внимание на нижний правый угол окна, там будет указана кодировка. Если в качестве кодировки используется «ANSI», то все нормально, можно переходить к открытию CSV файла в Excel. Если же используется другая кодировка (например, UTF-8), то файл нужно сначала преобразовать в ANSI.

кодировка в блокноте

воспользуйтесь меню «Файл – Сохранить как». После этого в окне сохранения файла нужно указать кодировку «ANSI» и сохранить файл.

сохранение в кодировке ANSI

Если же CSV файл большой, то вы не сможете открыть его в обычном «Блокноте». В этом случае придется установить текстовый редактор от стороннего разработчика. Например, вы можете проверить кодировку и выполнить преобразование при помощи AkelPad (скачать) или Notepad++ (скачать).

Открываем CSV файл в Excel

Если с кодировкой текста все нормально, то CSV файл можно открывать в Excel. Это можно сделать разными способами. Самый простой вариант, это просто кликнуть по CSV файлу правой кнопкой мышки и выбрать «Открыть с помощью – Excel».

Открыть с помощью – Excel

Также вы можете сначала открыть Excel, а потом воспользоваться меню «Файл – Открыть».

Файл – Открыть

В большинстве случаев, если у текста правильная кодировка, то это хорошо работает и Excel без проблем открывает CSV таким способом. При этом все данные правильно распределяются по соответствующим им ячейкам.

CSV в Excel

Но, в некоторых случаях подобный способ открытия CSV файлов может сработать не в полной мере. Например, текст загрузится в Excel, но данные не будут распределены по столбцам. Либо данные из CSV будут искажены стандартным форматом ячеек, который используется в таблице. Решение подобных проблем мы рассмотрим ниже.

Данные не распределились по столбцам

В некоторых случаях, после открытия CSV файла в Excel, автоматического распределения данных по столбцам не происходит. Чаще всего такая проблема возникает если в CSV используются какие-либо не стандартные разделители. Также подобная ситуация может возникать на старых версиях программы Excel.

Данные не распределились по столбцам

Для решения этой проблемы нужно выделить столбец с данными (обычно это первый столбец таблицы), перейти на вкладку «Данные» и нажать на кнопку «Текст по столбцам».

кнопка Текст по столбцам

В результате появится «Мастер распределения текста по столбцам». С его помощью можно вручную распределить данные из CSV по столбцам таблицы. На первом шаге просто выбираем вариант «С разделителями» и переходим далее.

вариант С разделителями

На следующем шаге указываем разделитель, который используется в CSV файле, и переходим далее. Если используется какой-либо специфический разделитель, то здесь нужно выбрать вариант «Другой» и указать его вручную.

выбор разделителя для CSV файла

Завершающий шаг – выбор формата ячеек. Здесь можно указать, какой формат ячеек должен использоваться для каждого из столбцов. Данная опция будет полезной, если у вас сложные данные, которые искажаются после импорта из CSV. Более подробно об этом в конце.

выбор формата ячеек

После настройки формата ячеек нажмите на кнопку «Готово» для того, чтобы завершить работу мастера.

данные распределились по столбцам

После завершения работы мастера все данные будут распределены по столбцам таблицы.

Excel искажает данные из CSV-файла

В некоторых случаях, при работе со сложными данными, Excel может искажать исходную информацию из CSV файла. Например, если в вашем CSV присутствуют большие числа, то они могут быть приведены к экспоненциальной форме, то есть число «123123123123» будет преобразовано в «1,23123E+11». Также будут удалены лидирующие нули и значение «000123123» будет преобразовано в «123123». Подобных преобразований в Excel огромное количество, поэтому после открытия CSV файла исходные данные могут быть изменены до не узнаваемости, при этом часть информации будет потеряна безвозвратно.

Чтобы избежать данной проблемы нужно следить, чтобы формат ячеек всегда соответствовал данным, которые в эти ячейки помещаются. Если ни один из стандартных форматов не подходит, то нужно использовать формат «Текстовый», в этом случае данные не будет изменяться вообще никак.

В старых версиях Excel для решения этой проблемы можно было использовать функцию «Получить данные из текстового/CSV-файла», которая доступна на вкладке «Данные». После использования данной функции запускался «Мастер распределения текста по столбцам» в котором можно было задать формат ячеек для каждого из столбцов. Но, к сожалению, в последних версиях Excel это уже не работает.

Получить данные из текстового / CSV-файла

Сейчас эту проблему можно решить, если изменить расширение CSV-файла на TXT и после этого открыть данный TXT-файл в Excel с помощью меню «Файл – Открыть». В этом случае открывается нужный мастер и позволяет нам правильно импортировать данные.

На первом шаге здесь нужно выбрать вариант «С разделителями» и указать кодировку текста.

вариант С разделителями

Дальше выбираем символ-разделитель, который отделяет данные в разных столбцах.

выбор разделителя

И выбираем подходящий формат ячеек для каждого из столбцов. Для того чтобы данные вообще не изменялись выбираем – «Текстовый».

выбор формата ячеек

Для завершения работы с мастером нажмите на кнопку «Готово» и данные с CSV загрузятся в новый документ Excel.

Время на прочтение
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. Учлись пробелы, окружающие разделители
  2. Последний столбец вообще толком не распознался, несмотря на то, что данные в кавычках. Исключение составляет строка с «Петровым» — там корректно распозналось 1,24.
  3. В поле индекс Excel «опустил» ведущие нули.
  4. в самом правом поле последней строки пробелы перед кавычками перестали указывать на спецсимвол

Если же воспользоваться функционалом импорта (Данные -> Из файла) и обозвать при импорте все поля текстовыми, то будет следующая картина:

С приведением типов сработало, но зато теперь не обрабатываются нормально переводы строк и осталась проблема с ведущими нулями, кавычками и лишними пробелами. Да и пользователям так открывать 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, которым можно было бы пользоваться, пользователю нужно дать возможность сделать следующие настройки перед экспортом:

  1. выбрать кодировку. Как правило, важно UTF-8, UTF-16, Windows-1251, KOI8-R. Чаще всего, других вариантов нет. Одна из них должна идти по умолчанию. В случае, если данные содержат символы, не имеющие аналогов в целевой кодировке, нужно предупреждать пользователя, что данные будут битые;
  2. выбрать разделитель между полями. Варианты — табуляция, запятая, точка с запятой. По умолчанию — точка с запятой. Не забыть, что если разделитель вводится в тексте, то будет очень непросто ввести туда табуляцию, это еще и непечатный символ;
  3. выбрать разделитель между строками (CRLF 0×0D 0×0A или CR 0×0D);
  4. выбрать разделитель целой и дробной части для числовых данных (точка или запятая).
  5. выбрать, выводить ли строку заголовка;
  6. выбрать, каким образом осуществлять квотинг спецсимволов (особенно переводов строк и кавычек). В принципе, можно отступиться от стандарта и квотировать их как n и «, но нужно в этом случае не забыть квотировать сами n, если они встретятся и не забыть сделать это опцией при экспорте-импорте. Но совместимость пойдет лесом, потому что любой RFC-стандартный парсер конструкцию …,»abc«»,… посчитает за ошибку;
  7. совсем в идеале — поставить галочку «для Excel» и учитывать там те нестандартности, которые внесла Майкрософт. К примеру, заменять значения числовых полей, «похожих на дату», на конструкцию =»<значение поля>«.
  8. определиться, нужно ли оставлять «хвост» из пустых разделителей, если он образуется. Например, из 20 полей только первое содержит данные, а остальные пустые. В итоге, в строке можно либо ставить после первого 19 разделителей, либо не ставить. Для больших объемов данных это может спасти миллисекунды обработки и уменьшить размер файла.

Чтобы построить хороший и удобный импортер CSV, необходимо помнить о следующем:

  1. разбор файла нужно делать по лексемам в соответствии с грамматикой выше или пользоваться хорошо зарекомендовавшими себя готовыми библиотеками (Excel работает иначе, потому с импортом проблема);
  2. предоставлять пользователю возможность выбрать кодировку (топ 4 достаточно);
  3. предоставлять пользователю возможность выбрать разделитель между полями (запятая, табуляция, точка с запятой достаточно);
  4. предоставлять пользователю возможность выбрать разделитель между строками, но кроме вариантов CR и CRLF нужно предусмотреть «CR или CRLF». Это связано с тем, что, например, Excel при экспорте таблицы с переводами строк внутри ячеек экспортирует эти переводы строк как CR, а остальные строки разделяет CRLF. При этом при импорте файла ему все равно, CR там или CRLF;
  5. предоставлять пользователю возможность выбрать разделитель между целой и дробной частей (запятая или точка);
  6. определиться с методом разбора — сначала читаем все в память, потом обрабатываем или обрабатываем строку за строкой. В первом случае может понадобиться больше памяти, во втором случае — ошибка в середине вызовет только частичный импорт, что может вызвать проблемы. Предпочительнее первый вариант.

Рауф Алиев,
заместитель технического директора Mail.Ru Group

CSV (Comma-Separated Values

— значения, разделенные запятыми) — это текстовый формат, предназначенный для представления табличных данных. Например, он используется для экспорта данных, если их объемы достаточно велики. Однако при этом нередко возникает проблема: созданный csv-файл может не показывать символы русского алфавита или искажать их. Однако эта проблема легко решаема.

Суть проблемы состоит в следующем. Если версия Excel, в которой работает пользователь, не англоязычная, то она может ожидать другой кодировки CSV-файла, создаваемого для экспорта данных. А именно: кодировки того языка, к которому относится используемая версия Excel. При этом те символы, которые не входят в стандартный набор ASCII, могут искажаться.

Проблема решается следующим несложным путем:

1. Запустите Excel.
2. Откройте страницу “Data → From text” (в локализованом Excel, элементы меню могут называться иначе).
3. Откройте свой CSV файл и в окне “Text Wizard” установите необходимый разделитель и кодировку (use “UTF-8”).

Инструкция по решению той же проблемы для русскоязычного Excel 2007

1. Создайте новый документ (книгу) в Excel

2. В меню «Данные / Получить внешние данные» выберите импортирование «Из текста». В окне выбора файла выберите ваш CSV файл. Excel автоматически запустит Мастер текстов (импорт).

3. В настройке «Формат файла» выберите “Юникод (UTF-8)”:

5. Затем нажмите кнопку “Готово”. При правильном выборе кодировки проблем с адекватным отображением кириллических символов быть не должно.

И еще кое-что важное и нужное…

Наш сайт оказался для вас полезным?

Почему появляются Каракули и иероглифы в Excel? У этой проблемы может быть несколько вариантов, соберу большинство решений в этой статье. Ну и заодно напишу, как добавлять и использовать символы-иероглифы в тексте.

Проблема с кодировкой часто возникает в разных программах. Кто уверен сталкивался с проблемой смены кодировки. Разберем и другие случаи

Если при открытии файла вы видите каракули/иероглифы в Excel, вам может помочь смена кодировки. Пересохраните файл следующим способом:

На вкладке Кодировка выберите Юникод (UTF-8) или Кириллица (Windows)

Пересохраняем файл.

Неверная кодировка при получении данных из внешних источников. Открытие CSV файлов

Если при вставке данных из других файлов или внешних источников получаются каракули/неизвестные символы, тоже рекомендуется уточнить кодировку. Сделать это можно следующим образом:

На ленте управления выберите вкладку Данные, а в разделе Получение внешних данных выберите нужный пункт.

Если вы вставляете обычные данные из файла, т.е. текст или таблицу, выберите Из текста

Укажите файл из которого забираем данные, после выберите формат данных, а главное в разделе Формат файла выберите Юникод (UTF-8).

Что выбрать с разделителем или фиксированной ширины (шаг 1), а так же следующий шаг (шаг 2) подробно описан в этой .

В шаге 3 выбираем «Общий» формат данных.

Открываем не той программой

Так же я рекомендую проверить, какой именно программой вы открываете Excel-файл. Бывает, что книги 2010 формата Excel открываются в Excel 2003 (или более ранние версии) с измененным на иероглифы текстом. Подробнее про форматы Excel .

Точно такая же проблема периодически возникает если открывать сложные Excel-книги с большим набором данных через альтернативные табличные редакторы, такие как LibreOffice.Calc, Apache OpenOffice и другие.

Как добавить символы-иероглифы в тексте?

«С текстом у меня все в порядке, мне нужно вставить иероглиф/символ в Excel» — скажите вы. Чтобы вставить символ перейдите на вкладку Вставка и в разделе Символы выберите Символ.

В таблице символов можно найти почти любой символ

Чтобы добавить его в текст — кликните по нему.

Поделитесь нашей статьей в ваших соцсетях:

У меня есть файл Excel, который имеет некоторые испанские символы(Тильды и т. д.) что мне нужно преобразовать в файл CSV для использования в качестве файла импорта. Однако, когда я сохраняю как CSV, он искажает «специальные» испанские символы, которые не являются символами ASCII. Кажется, что это также происходит с левыми и правыми кавычками и длинными тире, которые, как представляется, исходят от исходного пользователя, создающего файл Excel в Mac.

поскольку CSV — это просто текстовый файл, я уверен, что он может обрабатывать кодировку UTF8, поэтому я предполагая, что это ограничение Excel, но я ищу способ получить из Excel в CSV и сохранить символы, отличные от ASCII.

30
ответов

Примечание: будьте осторожны с конфиденциальными данными с Google листов.

после сохранения в CSV под Excel в командной строке ставим:

Iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv

(Не забудьте заменить cp1250 вашей кодировкой).

работает быстро и отлично подходит для больших файлов, таких как база данных почтовых кодов, которые не могут быть импортированы в GoogleDocs (предел 400.000 ячеек).

предполагая среду Windows, сохраните и работайте с файлом, как обычно, в Excel, но затем откройте сохраненный файл Excel в Gnome Gnumeric (бесплатно). Сохраните таблицу Gnome Gnumeric как CSV, которая-для меня в любом случае-сохраняет ее как UTF-8 CSV.

простой способ сделать это: скачать open office (), загрузите электронную таблицу и откройте файл excel (.xls или.xlsx). Затем просто сохраните его как текстовый CSV-файл, и откроется окно с просьбой сохранить текущий формат или сохранить как.Формат ODF. выберите «Сохранить текущий формат» и в новом окне выберите вариант, который работает лучше для вас, в соответствии с языком, на котором написан ваш файл. Для испанского языка выберите Западная Европа (Windows-1252/ WinLatin 1) и файл работает только штраф. Если выбрать Unicode (UTF-8), он не будет работать с испанским персонажей.

Я также столкнулся с той же проблемой, но для этого есть простое решение.

  1. откройте файл xlsx в Excel 2016 или выше.
  2. В «Сохранить как» выберите эту опцию: «(CSV UTF-8 (с разделителями запятыми)*.csv)»

Он работает отлично, и создается файл csv, который можно импортировать в любое программное обеспечение. Я импортировал этот csv-файл в свою базу данных SQLITE, и он отлично работает со всеми символами unicode.

Я написал небольшой скрипт Python, который может экспортировать листы в UTF-8.

вам просто нужно предоставить файл Excel в качестве первого параметра, а затем листы, которые вы хотите экспортировать. Если листы не предоставлены, сценарий экспортирует все листы, присутствующие в файле Excel.

#!/usr/bin/env python
# export data sheets from xlsx to csv
from openpyxl import load_workbook
import csv
from os import sys
reload(sys)
sys.setdefaultencoding(«utf-8»)
def get_all_sheets(excel_file):
sheets =
workbook = load_workbook(excel_file,use_iterators=True,data_only=True)
all_worksheets = workbook.get_sheet_names()
for worksheet_name in all_worksheets:
sheets.append(worksheet_name)
return sheets
def csv_from_excel(excel_file, sheets):
workbook = load_workbook(excel_file,use_iterators=True,data_only=True)
for worksheet_name in sheets:
print(«Export » + worksheet_name + » …»)
try:
worksheet = workbook.get_sheet_by_name(worksheet_name)
except KeyError:
print(«Could not find » + worksheet_name)
sys.exit(1)
your_csv_file = open(«».join(), «wb»)
wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
for row in worksheet.iter_rows():
lrow =
for cell in row:
lrow.append(cell.value)
wr.writerow(lrow)
print(» … done»)
your_csv_file.close()
if not 2 <= len(sys.argv) <= 3:
print(«Call with » + sys.argv + » «)
sys.exit(1)
else:
sheets =
if len(sys.argv) == 3:
sheets = list(sys.argv.split(«,»))
else:
sheets = get_all_sheets(sys.argv)
assert(sheets != None and len(sheets) > 0)
csv_from_excel(sys.argv, sheets)

CSV
(Comma Separated Values) – распространённый формат для хранения табличных данных (числовых и текстовых) в виде простого текста. Этот формат файлов популярен и живуч благодаря тому, что огромное количество программ и приложений понимают CSV, хотя бы как альтернативный вариант файлового формата для импорта / экспорта. Более того, формат CSV позволяет пользователю заглянуть в файл и немедленно найти проблему с данными, если таковая имеется, изменить разделитель CSV, правила цитирования и так далее. Это возможно потому, что CSV – это простой текст, и даже не очень опытный пользователь, сможет легко его понять без специальной подготовки.

В этой статье мы изучим быстрые и эффективные способы экспорта данных из Excel в CSV и узнаем, как преобразовать файл Excel в CSV, сохранив без искажений все специальные и иностранные символы. Описанные в статье приёмы работают во всех версиях Excel 2013, 2010 и 2007.

Как преобразовать файл Excel в CSV

Если требуется экспортировать файл Excel в какое-либо другое приложение, например, в адресную книгу Outlook или в базу данных Access, предварительно преобразуйте лист Excel в файл CSV, а затем импортируйте файл .csv
в другое приложение. Ниже дано пошаговое руководство, как экспортировать рабочую книгу Excel в формат CSV при помощи инструмента Excel – «Сохранить как
».

Замечание:
Все упомянутые форматы сохраняют только активный лист Excel.

Экспортируем из Excel в CSV с кодировкой UTF-8 или UTF-16

Если на листе Excel содержатся какие-либо специальные или иностранные символы (тильда, ударение и подобные) или иероглифы, то преобразование листа Excel в CSV описанным выше способом не сработает.

Дело в том, что команда Сохранить как
> CSV
(Save as > CSV) исказит все символы, кроме ASCII (American Standard Code for Information Interchange). И если на листе Excel есть парные кавычки или длинные тире (перенесённые в Excel, например, из документа Word при копировании / вставке текста) – такие символы также будут искромсаны.

  • UTF-8
    – это более компактная кодировка, использующая для каждого символа от 1 до 4 байт. Чаще всего рекомендуется использовать этот формат, когда символы ASCII преобладают в файле, т.к. большинство таких символов требует 1 байт памяти. Ещё одно преимущество в том, что кодировка файла UTF-8, содержащего только символы ASCII, ничем не будет отличаться от такого же ASCII-файла.
  • UTF-16
    использует от 2 до 4 байт для хранения каждого символа. Учтите, что не во всех случаях файл UTF-16 требует больше места в памяти, чем файл UTF-8. Например, японские символы занимают от 3 до 4 байт в UTF-8 и от 2 до 4 байт в UTF-16. Таким образом, есть смысл использовать UTF-16, если данные содержат азиатские символы, в том числе Японские, Китайские и Корейские. Существенный недостаток этой кодировки в том, что она не полностью совместима с ASCII-файлами и требуются специальные программы для отображения таких файлов. Помните об этом, если планируете импортировать получившиеся файлы из Excel куда-то ещё.

Как преобразовать файл Excel в CSV UTF-8

Предположим, у нас есть лист Excel с иностранными символами, в нашем примере – это японские имена.

Чтобы экспортировать этот лист Excel в файл CSV, сохранив при этом все иероглифы, сделаем следующее:

Замечание:
Не все простые текстовые редакторы полностью поддерживают символы Юникод, поэтому некоторые из них могут отображаться как прямоугольники. В большинстве случаев, это никак не повлияет на итоговый файл, и можно просто не обращать на это внимание или выбрать более продвинутый редактор, например, Notepad++.

  1. Так как в нашем текстовом Юникод файле в качестве разделителей используется символ табуляции, а мы хотим преобразовать его в CSV (разделители – запятые), то необходимо заменить символы табуляции на запятые.

Замечание:
Если нет строгой необходимости получить файл именно с разделителями – запятыми, а нужен любой файл CSV, который Excel сможет понять, то этот шаг можно пропустить, так как Microsoft Excel отлично понимает файлы с разделителем – табуляцией.

Замечание:
Если Ваш файл предназначен для использования за пределами Excel и формат UTF-8 является обязательным требованием, то не совершайте на листе никаких изменений и не сохраняйте его снова в Excel, поскольку это может привести к проблемам с чтением кодировки. Если какая-то часть данных не отображается в Excel, откройте тот же файл в Блокноте и в нём внесите исправления в данные. Не забудьте снова сохранить файл в формате UTF-8.

Как преобразовать файл Excel в CSV UTF-16

Экспортировать в файл CSV UTF-16 намного быстрее и проще, чем в UTF-8. Дело в том, что Excel автоматически применяет формат UTF-16 при сохранении файла как Текст Юникод
(Unicode Text).

Для этого сохраняем файл при помощи инструмента Сохранить как
(Save as) в Excel и затем в Проводнике Windows изменяем расширение созданного файла на .csv
. Готово!

Если нужен файл CSV с запятой или точкой с запятой в качестве разделителя, замените все символы табуляции на запятые или точки с запятой соответственно в Блокноте или в любом другом текстовом редакторе на свой выбор (ранее в этой статье есть подробная инструкция, как это делается).

Другие способы преобразования файлов Excel в CSV

Описанные выше способы экспорта данных из Excel в CSV (UTF-8 и UTF-16) универсальны, т.е. подойдут для работы с любыми специальными символами и в любой версии Excel от 2003 до 2013.

Существует множество других способов преобразования данных из формата Excel в CSV. В отличие от показанных выше решений, эти способы не будут давать в результате чистый UTF-8 файл (это не касается , который умеет экспортировать файлы Excel в несколько вариантов кодировки UTF). Но в большинстве случаев получившийся файл будет содержать правильный набор символов, который далее можно безболезненно преобразовать в формат UTF-8 при помощи любого текстового редактора.

Преобразуем файл Excel в CSV при помощи Таблиц Google

Как оказалось, можно очень просто преобразовать файл Excel в CSV при помощи Таблиц Google. При условии, что на Вашем компьютере уже установлен Google Drive , выполните следующие 5 простых шагов:

Совет:
Если файл Excel относительно небольшой, то для экономии времени можно перенести из него данные в таблицу Google при помощи копирования / вставки.

В завершение откройте созданный CSV-файл в любом текстовом редакторе, чтобы убедиться, что все символы сохранены правильно. К сожалению, файлы CSV, созданные таким способом, не всегда правильно отображаются в Excel.

Сохраняем файл.xlsx как.xls и затем преобразуем в файл CSV

Для этого способа не требуется каких-либо дополнительных комментариев, так как из названия уже всё ясно.

Это решение я нашёл на одном из форумов, посвящённых Excel, уже не помню, на каком именно. Честно говоря, я никогда не использовал этот способ, но, по отзывам множества пользователей, некоторые специальные символы теряются, если сохранять непосредственно из .xlsx
в .csv
, но остаются, если сначала .xlsx
сохранить как .xls
, и затем как .csv
, как мы .

Так или иначе, попробуйте сами такой способ создания файлов CSV из Excel, и если получится, то это будет хорошая экономия времени.

Сохраняем файл Excel как CSV при помощи OpenOffice

OpenOffice – это пакет приложений с открытым исходным кодом, включает в себя приложение для работы с таблицами, которое отлично справляется с задачей экспорта данных из формата Excel в CSV. На самом деле, это приложение предоставляет доступ к большему числу параметров при преобразовании таблиц в файлы CSV (кодировка, разделители и так далее), чем Excel и Google Sheets вместе взятые.

Просто открываем файл Excel в OpenOffice Calc, нажимаем Файл
> Сохранить как
(File > Save as) и выбираем тип файла Текст CSV
(Text CSV).

На следующем шаге предлагается выбрать значения параметров Кодировка
(Character sets) и Разделитель поля
(Field delimiter). Разумеется, если мы хотим создать файл CSV UTF-8 с запятыми в качестве разделителей, то выбираем UTF-8
и вписываем запятую (,) в соответствующих полях. Параметр Разделитель текста
(Text delimiter) обычно оставляют без изменения – кавычки (“). Далее нажимаем ОК
.

Таким же образом для быстрого и безболезненного преобразования из Excel в CSV можно использовать ещё одно приложение – LibreOffice . Согласитесь, было бы здорово, если бы Microsoft Excel предоставил возможность так же настраивать параметры при создании файлов CSV.

В этой статье я рассказал об известных мне способах преобразования файлов Excel в CSV. Если Вам знакомы более эффективные методы экспорта из Excel в CSV, расскажите об этом в комментариях. Благодарю за внимание!

Когда вы открываете текстовый файл в Microsoft Word или другой программе (например, на компьютере, язык операционной системы на котором отличается от того, на котором написан текст в файле), кодировка помогает программе определить, в каком виде нужно вывести текст на экран, чтобы его можно было прочитать.

В этой статье

Общие сведения о кодировке текста

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

Кодировка — это схема нумерации, согласно которой каждому текстовому символу в наборе соответствует определенное числовое значение. Кодировка может содержать буквы, цифры и другие символы. В различных языках часто используются разные наборы символов, поэтому многие из существующих кодировок предназначены для отображения наборов символов соответствующих языков.

Различные кодировки для разных алфавитов

Сведения о кодировке, сохраняемые с текстовым файлом, используются компьютером для вывода текста на экран. Например, в кодировке «Кириллица (Windows)» знаку «Й» соответствует числовое значение 201. Когда вы открываете файл, содержащий этот знак, на компьютере, на котором используется кодировка «Кириллица (Windows)», компьютер считывает число 201 и выводит на экран знак «Й».

Однако если тот же файл открыть на компьютере, на котором по умолчанию используется другая кодировка, на экран будет выведен знак, соответствующий числу 201 в этой кодировке. Например, если на компьютере используется кодировка «Западноевропейская (Windows)», знак «Й» из исходного текстового файла на основе кириллицы будет отображен как «É», поскольку именно этому знаку соответствует число 201 в данной кодировке.

Юникод: единая кодировка для разных алфавитов

Чтобы избежать проблем с кодированием и декодированием текстовых файлов, можно сохранять их в Юникоде. В состав этой кодировки входит большинство знаков из всех языков, которые обычно используются на современных компьютерах.

Так как Word работает на базе Юникода, все файлы в нем автоматически сохраняются в этой кодировке. Файлы в Юникоде можно открывать на любом компьютере с операционной системой на английском языке независимо от языка текста. Кроме того, на таком компьютере можно сохранять в Юникоде файлы, содержащие знаки, которых нет в западноевропейских алфавитах (например, греческие, кириллические, арабские или японские).

Выбор кодировки при открытии файла

Если в открытом файле текст искажен или выводится в виде вопросительных знаков либо квадратиков, возможно, Word неправильно определил кодировку. Вы можете указать кодировку, которую следует использовать для отображения (декодирования) текста.

    Откройте вкладку Файл
    .

    Выберите пункт Параметры
    .

    Выберите пункт Дополнительно
    .

    Перейдите к разделу Общие
    и установите флажокПодтверждать преобразование формата файла при открытии
    .

    Примечание:
    Если установлен этот флажок, Word отображает диалоговое окно Преобразование файла
    при каждом открытии файла в формате, отличном от формата Word (то есть файла, который не имеет расширения DOC, DOT, DOCX, DOCM, DOTX или DOTM). Если вы часто работаете с такими файлами, но вам обычно не требуется выбирать кодировку, не забудьте отключить этот параметр, чтобы это диалоговое окно не выводилось.

    Закройте, а затем снова откройте файл.

    В диалоговом окне Преобразование файла
    выберите пункт Кодированный текст
    .

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

    В области Образец

Если почти весь текст выглядит одинаково (например, в виде квадратов или точек), возможно, на компьютере не установлен нужный шрифт. В таком случае можно установить дополнительные шрифты.

Чтобы установить дополнительные шрифты, сделайте следующее:

    Нажмите кнопку Пуск
    и выберите пункт Панель управления
    .

    Выполните одно из указанных ниже действий.

    В Windows 7

    1. Удаление программы
      .

      Изменить
      .

    В Windows Vista

      На панели управления выберите раздел Удаление программы
      .

      В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить
      .

    В Windows XP

      На панели управления щелкните элемент Установка и удаление программ
      .

      В списке Установленные программы
      щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить
      .

    В группе Изменение установки Microsoft Office
    нажмите кнопку Добавить или удалить компоненты
    и затем нажмите кнопку Продолжить
    .

    В разделе Параметры установки
    разверните элемент Общие средства Office
    , а затем — Многоязыковая поддержка
    .

    Выберите нужный шрифт, щелкните стрелку рядом с ним и выберите пункт Запускать с моего компьютера
    .

Совет:
При открытии текстового файла в той или иной кодировке в Word используются шрифты, определенные в диалоговом окне Параметры веб-документа
. (Чтобы вызвать диалоговое окно Параметры веб-документа
, нажмите кнопку Microsoft Office
, затем щелкните Параметры Word
и выберите категорию Дополнительно
. В разделе Общие
нажмите кнопку Параметры веб-документа
.) С помощью параметров на вкладке Шрифты
диалогового окна Параметры веб-документа
можно настроить шрифт для каждой кодировки.

Выбор кодировки при сохранении файла

Если не выбрать кодировку при сохранении файла, будет использоваться Юникод. Как правило, рекомендуется применять Юникод, так как он поддерживает большинство символов большинства языков.

Если документ планируется открывать в программе, которая не поддерживает Юникод, вы можете выбрать нужную кодировку. Например, в операционной системе на английском языке можно создать документ на китайском (традиционное письмо) с использованием Юникода. Однако если такой документ будет открываться в программе, которая поддерживает китайский язык, но не поддерживает Юникод, файл можно сохранить в кодировке «Китайская традиционная (Big5)». В результате текст будет отображаться правильно при открытии документа в программе, поддерживающей китайский язык (традиционное письмо).

Примечание:
Так как Юникод — это наиболее полный стандарт, при сохранении текста в других кодировках некоторые знаки могут не отображаться. Предположим, например, что документ в Юникоде содержит текст на иврите и языке с кириллицей. Если сохранить файл в кодировке «Кириллица (Windows)», текст на иврите не отобразится, а если сохранить его в кодировке «Иврит (Windows)», то не будет отображаться кириллический текст.

Если выбрать стандарт кодировки, который не поддерживает некоторые символы в файле, Word пометит их красным. Вы можете просмотреть текст в выбранной кодировке перед сохранением файла.

При сохранении файла в виде кодированного текста из него удаляется текст, для которого выбран шрифт Symbol, а также коды полей.

Выбор кодировки

    Откройте вкладку Файл
    .

    В поле Имя файла
    введите имя нового файла.

    В поле Тип файла
    выберите Обычный текст
    .

    Если появится диалоговое окно Microsoft Office Word — проверка совместимости
    , нажмите кнопку Продолжить
    .

    В диалоговом окне Преобразование файла
    выберите подходящую кодировку.

    • Чтобы использовать стандартную кодировку, выберите параметр Windows (по умолчанию)
      .

      Чтобы использовать кодировку MS-DOS, выберите параметр MS-DOS
      .

      Чтобы задать другую кодировку, установите переключатель Другая
      и выберите нужный пункт в списке. В области Образец
      можно просмотреть текст и проверить, правильно ли он отображается в выбранной кодировке.

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

    Если появилось сообщение «Текст, выделенный красным, невозможно правильно сохранить в выбранной кодировке», можно выбрать другую кодировку или установить флажок Разрешить подстановку знаков
    .

    Если разрешена подстановка знаков, знаки, которые невозможно отобразить, будут заменены ближайшими эквивалентными символами в выбранной кодировке. Например, многоточие заменяется тремя точками, а угловые кавычки — прямыми.

    Если в выбранной кодировке нет эквивалентных знаков для символов, выделенных красным цветом, они будут сохранены как внеконтекстные (например, в виде вопросительных знаков).

    Если документ будет открываться в программе, в которой текст не переносится с одной строки на другую, вы можете включить в нем жесткие разрывы строк. Для этого установите флажок Вставлять разрывы строк
    и укажите нужное обозначение разрыва (возврат каретки (CR), перевод строки (LF) или оба значения) в поле Завершать строки
    .

Поиск кодировок, доступных в Word

Word распознает несколько кодировок и поддерживает кодировки, которые входят в состав системного программного обеспечения.

Ниже приведен список письменностей и связанных с ними кодировок (кодовых страниц).

Система письменности

Кодировки

Используемый шрифт

Многоязычная

Юникод (UCS-2 с прямым и обратным порядком байтов, UTF-8, UTF-7)

Стандартный шрифт для стиля «Обычный» локализованной версии Word

Арабская

Windows 1256, ASMO 708

Китайская (упрощенное письмо)

GB2312, GBK, EUC-CN, ISO-2022-CN, HZ

Китайская (традиционное письмо)

BIG5, EUC-TW, ISO-2022-TW

Кириллица

Windows 1251, KOI8-R, KOI8-RU, ISO8859-5, DOS 866

Английская, западноевропейская и другие, основанные на латинице

Windows 1250, 1252-1254, 1257, ISO8859-x

Греческая

Японская

Shift-JIS, ISO-2022-JP (JIS), EUC-JP

Корейская

Wansung, Johab, ISO-2022-KR, EUC-KR

Вьетнамская

Индийские: тамильская

Индийские: непальская

ISCII 57002 (деванагари)

Индийские: конкани

ISCII 57002 (деванагари)

Индийские: хинди

ISCII 57002 (деванагари)

Индийские: ассамская

Индийские: бенгальская

Индийские: гуджарати

Индийские: каннада

Индийские: малаялам

Индийские: ория

Индийские: маратхи

ISCII 57002 (деванагари)

Индийские: панджаби

Индийские: санскрит

ISCII 57002 (деванагари)

Индийские: телугу

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

    Для непальского, ассамского, бенгальского, гуджарати, малаялам и ория доступна только ограниченная поддержка.

Это происходит потому что кодировка файла отличается от используемой Excel’ем по умолчанию.

В таких случаях можно действовать через функцию импорт данных из текста в экселе. Тогда идет автоматическое определение кодировки.

1. Открываем новый документ Excel

2. Выбираем «Данные» → «из текста»:

3. Выбираем файл для открытия:

4. Выбираем формат данных С разделителями, жмем далее:

5. В зависимости от того, что за файл, выбираем разделитель. Если файл был выгружен из панеил администратора inSales, то разделителем является табуляция.

6. Задаем столбцам текстовый формат:

И получаем файл, который далее можем читать и форматировать в экселе:

Оценки: 13

Комментарий

Не понял, как импортировать из xls.

Комментарий

Спасибо, этот метод сработал!

Комментарий

ладно, беру слова обратно, если выбрать добыть данные из файла CSV? то они откроются, но этот ответ в вашей статье все таки больше похож на разбивку из текста

Комментарий

кодировка это когда ты открываешь выгруженный файл, а там моджибейки вместо кирилицы.
а разбивка текста на с

Комментарий

Честно . Я не разобралась , мне тут не понятно как из таких данных выйти на нормальные слова , попробую разобраться

Комментарий

Спасибо огромное!

Комментарий

Супер! Разобралась, все работает!

Комментарий

Работает!!!! Спасибо!

Комментарий

Очень помогли!!!

Комментарий

Спасибо большое!

 

Vsevolod

Пользователь

Сообщений: 485
Регистрация: 31.03.2016

Приветствую
Когда открываешь csv фаил то эксель автоматом переводит содержание  
1096537315697073570 в 1,09654E+18
4.50 в апр.50
Можно ли как-то отключить авто преобразование типов либо сделать, чтобы по умолчанию все было текст?
Благодарю!
PS: Сейчас импортировать CSV файлы приходится через импорт. В 4 раза кликов больше
PS2: А еще хуже, когда вставляешь номера заказов в эксель 1096537315697073570 номер заказа, а он автоматически трансормирует в 1,09654E+18 и иногда когда косячно преобразовываешь обратно он конец в виде 0000 оставляет.

 

Импортируйте файл через мастер импорта данных (например, Power Query или старым Imoprt from text, а не простым открытием файла. Тогда все будет в ваших руках

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

Или открывайте не в Экселе :)

 

Vsevolod

Пользователь

Сообщений: 485
Регистрация: 31.03.2016

Максим Зеленский, благодарю именно так и делаю) но это на столько дольше:( Кстати например в PQ можно запретить АВТО название типов, в экселе такое нельзя сделать?
Hugo, А какая альтернатива, если нужна таблица?)

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

#5

08.07.2020 16:17:37

Цитата
Vsevolod написал:
но это на столько дольше:(

Поделитесь, на сколько? Я не заметил особой разницы, при этом через PQ лично мне гораздо удобнее чем через мастер импорта текстовых файлов.

Вот горшок пустой, он предмет простой…

 

sokol92

Пользователь

Сообщений: 4446
Регистрация: 10.09.2017

#6

08.07.2020 16:28:54

Цитата
Vsevolod написал:
чтобы по умолчанию все было текст?

Можно до начала импорта выделить все ячейки листа и присвоить им текстовый формат. Тогда не надо будет проставлять тип для отдельных полей.
Если Вы выложите пример файла, то можно написать макрос, который сразу будет импортировать файл, интерпретируя все поля как текст.

Владимир

 

Vsevolod

Пользователь

Сообщений: 485
Регистрация: 31.03.2016

#7

08.07.2020 17:53:19

PooHkrd, 1 клик по файлу .csv либо открыть эксель — дата — импорт из файла — выбрать разделить ; — выделить все столбцы- поставить формат Text:)
PQ сам и юзаю когда постоянные загрузки. А тут чаще все скачал открыл.

sokol92,

Цитата
Можно до начала импорта выделить все ячейки листа и присвоить им текстовый формат

Как вариант. Вопрос, а нельзя экселю сказать — по умочланию формат Text? Типа как в PQ — если отключить авто установку типов, то все текст)

Про макрос — Вы имеет ввиду написать кнопку в эксель, которая из файла считывает и вставляет в текстомо формате да?

Тут я думал просто, что есть какая-то хитрая настройка:)

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

#8

08.07.2020 18:28:24

Цитата
Vsevolod написал:
какая альтернатива, если нужна таблица?

— не помню точно какая, но у меня на работе девчонки что-то делали с таблицей из csv в альтернативной программе, их (спецпрограмм для csv) гугл пару тройку точно даёт.
P.S. кажется вот этой работали:

https://csved.sjfrancke.nl/

Изменено: Hugo08.07.2020 18:37:29

 

sokol92

Пользователь

Сообщений: 4446
Регистрация: 10.09.2017

#9

08.07.2020 20:41:46

Цитата
Vsevolod написал:
Вопрос, а нельзя экселю сказать — по умочланию формат Text?

Я такой возможности в Импорте текста не знаю.

Владимир

 

Vsevolod

Пользователь

Сообщений: 485
Регистрация: 31.03.2016

Hugo, ну это еще напряжней вариант!
Спасибо Всем! Все понял
1 — дата импорт
2 — pq
СПАСИБО!  

 

Vsevolod

Пользователь

Сообщений: 485
Регистрация: 31.03.2016

Ребят, все таки вопрос остался.
Копирую(из буфера) значение в ячейку 1096541251323070000 эксель приравнивает тип GENERAL и конвертирует в такой вид 1,09654E+18
Я меняю ячейки тип на Text преобразование не происходит. Получается надо ставить курсор в ячейку и жать Enter
Вопрос — а если уже так вставил, можно ли как-то пакетко преобразовать?

 

Максим Зеленский

Пользователь

Сообщений: 4646
Регистрация: 11.06.2014

Microsoft MVP

#12

10.07.2020 10:51:09

Vsevolod, надо наоборот, сначала формат ячейки, потом вставка, потом трюк
 

F1 творит чудеса

Фон проблемы

Файл csv, сгенерированный python, сохраняется в формате utf-8. Когда офис Excel открывается под окнами, некоторые языки, например немецкий, будут отображать искаженные символы.
(изображение будет добавлено)

причины проблемы

Windows excel по умолчанию открывает csv в формате ANSI, а не в utf-8
 Любой вновь созданный файл является файлом ANSI по умолчанию, откройте его в Блокноте и нажмите «Сохранить как», чтобы увидеть его.

Решения

1. Измените формат кодировки файла. Откройте сгенерированный csv в кодировке utf8 с помощью Блокнота, щелкните правой кнопкой мыши и сохраните как, выберите кодировку ANSI и откройте его снова.
2. Измените метод кодировки по умолчанию для операций с файлом Windows на utf8. Теоретически это основная причина, но решения не было найдено, был виден только txt.
3. Укажите код перед открытием файла в Excel. Вы можете выбрать метод импорта файла. В мастере импорта измените File_Origin на «65001 UTF» и замените разделитель на запятую, но это слишком хлопотно. Ссылки по теме:https://cloud.tencent.com/developer/ask/50049

Фактический план

Компания — office2007, а дом — wps2019.
Вариант 1. Используйте WPS2019. Фактический тест WPS2019 может напрямую открыть файл CSV в кодировке utf8. Предполагается, что может быть решение. Новая версия офиса не тестировалась, а компания 2007 искажена. (WPS также имеет режим защиты глаз, хвала)
Вариант 2. Измените формат кодировки на ANSI перед каждым открытием файла CSV. Или рассмотрите файл CSV, созданный сценарием, как дополнительный шаг перекодирования.

Содержимое баз данных обычно извлекается в виде файла с расширением .csv. Однако, это просто текстовый файл, не слишком удобный для чтения. Для работы с содержимым базы необходимо представить её в другом формате – зачастую удобнее всего листы Excel. О том, какие существуют способы это сделать, какой из них лучше, и какие бывают ошибки при переносе данных, будет рассказано в этой статье.

Содержание

  1. Как конвертировать CSV в формат Excel
  2. Открытие CSV-документа в Excel
  3. Открытие CSV-документа через Windows Explorer
  4. Импорт CSV в Excel
  5. Проблемы при конвертации и их решения
  6. Файл открывается неправильно
  7. Исчезают нули в начале чисел
  8. Часть значений выглядит как даты
  9. Как импортировать в Excel множественные CSV-файлы

Как конвертировать CSV в формат Excel

Существуют различные пути, которыми документ формата CSV, скачанный из базы данных, может быть перенесён в Excel. Мы обсудим три из них:

  1. Прямое открытие в Excel.
  2. Открытие через Windows Explorer.
  3. Импорт документа со сменой формата.

Открытие CSV-документа в Excel

Excel может открывать документы с расширением .csv напрямую, без конвертации. Формат после открытия указанным способом не меняется, сохраняется расширение .csv – хотя после редактирования расширение можно поменять.

  1. Запустите Excel, кликните на «Файл«, затем «Открыть«.
  2. В появившемся окне выберите опцию «Текстовые файлы» из развернувшегося перечня.

Конвертировать CSV в Excel в виде таблицы

  1. Найдите необходимый Вам документ и нажмите на него двойным кликом мыши.

Документы .csv открываются в Excel сразу, без дополнительных манипуляций. А вот файлы .txt потребуют конвертации – возникнет окошко «Мастера импорта текста«.

Есть случаи, когда документ лучше не открывать напрямую, а вызвать Мастер. Такой подход оправдан в следующих случаях:

  • разделительный знак, применяемый в документе, нестандартный, или их содержится несколько разновидностей;
  • в документе записаны даты в разных форматах;
  • вы конвертируете числа, начинающиеся с нулей, и хотите оставить их в таком виде;
  • перед тем, как перенести данные, вы хотите увидеть, как будет выглядеть конечный результат;
  • вам в целом нужна большая гибкость при переносе.

Мастер запустится, если поменять расширение документа на .txt. Также импорт файла можно начать иначе, о чём пойдёт речь далее, после описания второго способа открытия.

Если после открытия документа в него внести изменения, Excel предложит сохранить его в формате .xls (или .xlsx), поскольку иначе часть форматирования будет потеряна. Потом всегда останется возможность сменить формат обратно, однако, может утратиться другая часть содержимого – в начале чисел могут исчезнуть нули, часть записей может поменять свой вид.

Открытие CSV-документа через Windows Explorer

Этот путь принципиально не отличается от предыдущего. Чтобы открыть документ, достаточно два раза кликнуть на него в Windows Explorer.

Перед открытием убедитесь, что рядом с именем документа находится значок программы Excel, а не какой-то другой – это означает, что именно Excel выбран как программа, которой следует открывать подобные файлы. Иначе откроется какая-либо иная программа. Сменить её на Excel можно так:

  1. Вызовите кликом правой кнопки мыши на любой файл .csv контекстное меню и в нём примените Открыть с помощью… > Выбрать программу.
  2. Выберите Excel (desktop) из Рекомендованных программ, обозначьте его как программу, которую следует применять для подобных файлов всегда (поставьте галочку внизу), и закройте окошко нажатием ОК.

Конвертировать CSV в Excel в виде таблицы

Импорт CSV в Excel

Также возможно превратить открываемый документ в книгу Excel. Формат сменится на .xls для ранних версий Excel (2000, 2003) и на .xlsx — для всех остальных. Всё содержимое будет отображено на одном листе.

  1. Нажмите на ячейку в листе, куда должен начаться импорт. Обычно это самая первая ячейка в таблице, А1. Начиная с неё, будет заполнено столько строк, сколько есть в открываемом файле, и столько столбцов, сколько имеется значений в каждом столбце.
  2. Во вкладке “Данные” в группе “Получение внешних данных” выберите “Из текста”.

Конвертировать CSV в Excel в виде таблицы

  1. В возникшем окне найдите требуемый документ и кликните на него два раза (также можно использовать кнопку Импорт внизу окна).

Конвертировать CSV в Excel в виде таблицы

  1. Далее нужно следовать пошаговой инструкции открывшегося Мастера импорта текста.

На изображении ниже видны изначальный документ и результат, который предполагается получить. Чтобы после импорта всё выглядело именно так, нужно применить различные настройки, о которых пойдёт речь далее.

Конвертировать CSV в Excel в виде таблицы

Шаг 1. Мастер предложит Вам выбрать тип файла – как нетрудно догадаться, это будет «с разделителями» (по-английски — delimited), и строку, с которой начнётся перенос содержимого — скорее всего, нужно начать со строки 1, если вы не хотите переносить только часть содержимого. В окне ниже будут показаны первые строки из выбранного документа.

Конвертировать CSV в Excel в виде таблицы

Шаг 2. Теперь требуется понять, какой используется разделитель (их может быть больше одного) в файле, и указать этот знак в Мастере. В нём есть опции выбора из стандартных разделителей, но если в документе применён нетипичный символ, можно выбрать Другой и ввести требуемый знак. В используемом для демонстрации файле разделители — Запятая и Таб. Запятые разделяют ячейки с характеристиками продуктов, такими как порядковый номер и количество проданных экземпляров, а табуляция отделяет один продукт от другого — информация о каждом должна начинаться с новой строки.

Также нужно определить и указать ограничитель текста. Это символ, поставленный перед и после каждого отрезка текста, который должен располагаться в одной ячейке. Благодаря ограничителю, каждый подобный отрезок воспринимается как отдельное значение, даже если внутри него присутствуют символы, выбранные для разделения значений. В нашем документе каждое значение обрамлено кавычками — потому, даже если в нём присутствует запятая (например «начало, потом продолжение»), весь его текст будет помещён в одну ячейку, а не в две последовательные.

Конвертировать CSV в Excel в виде таблицы

Шаг 3. Здесь достаточно взглянуть на превью и, если на нём не видно недопустимых огрехов, нажать Готово. Может случиться так, что некоторые из значений будут разделены не одним разделителем, а несколькими, в результате между ними возникнут ячейки без значений. Чтобы такого не происходило, выберите флажок Считать последовательные разделители одним.

  1. Выберите путь назначения (это может быть новый или уже существующий лист) и нажмите ОК, чтобы закончить процесс импорта.

Конвертировать CSV в Excel в виде таблицы

Также можно нажать Свойства — там содержатся другие возможности. Например, можно форматировать содержимое, настроить разметку и то, как информация будет обновляться.

Конвертировать CSV в Excel в виде таблицы

Иногда результат конвертации оказывается далёким от ожидаемого. О том, как этот результат можно изменить, пойдёт речь в следующем разделе статьи.

Проблемы при конвертации и их решения

За всё время, которое существует формат CSV, никто не удосужился официально задокументировать его. Потому, хотя и предполагается, что для разделения значений должны использоваться запятые, на самом деле в разных базах данных используются различные разделительные знаки — точка с запятой, знак табуляции и другие.

Ограничители текста также могут варьироваться – чаще всего это либо кавычки, либо метка порядка байтов. Ограничителей может и вовсе не быть – тогда символ, используемый как разделитель, всегда воспринимается как таковой (тогда это обычно не запятая – она слишком часто применяется в тексте — а иной, менее распространённый символ).

Нестандартные файлы могут открываться неправильно — чтобы они отображались так, как надо, приходится менять настройки компьютера или открывающей программы. Давайте посмотрим, какие бывают затруднения, и какие для них существуют решения.

Файл открывается неправильно

Признаки. Всё содержимое документа помещается в первый столбец.

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

Решения. Есть разные способы решить эту проблему:

  1. Сменить разделяющий знак в самом документе. Откройте его в Notepad или подобном редакторе, и в начальную строку (пустую, все данные должны быть в строках ниже) внесите указанный ниже текст:
  • для смены разделителя на запятую: sep=,
  • для смены на точку с запятой: sep=;

Иной символ, написанный после sep= в начальной строке, также станет разделителем.

  1. Разделительный знак, используемый в файле, можно указать и в самой программе Excel. В версиях 2016, 2013 или 2010 года для этого нужно открыть вкладку Данные и выбрать “Текст по столбцам” в группе “Работа с данными”.

Конвертировать CSV в Excel в виде таблицы

После этого откроется окно “Мастера распределения текста по столбцам”. Там из предложенных форматов данных нужно выбрать те, что с разделителями. Потом нужно нажать Далее и, после выбора разделителя, Готово.

Конвертировать CSV в Excel в виде таблицы

  1. Чтобы документ автоматически открывался через Мастер импорта, а не просто в листе Excel, расширение можно сменить с .csv на .txt. В Мастере есть возможность указать любой символ как разделяющий — каким образом это сделать, в статье объяснено ранее.
  2. Используйте VBA. Воспользоваться можно, например, — он подойдёт для Excel 2000 или 2003. Код можно изменить так, чтобы он подходил для других версий.

Решения, представленные выше, рассчитаны на отдельные документы, настройки которых отличаются от обычных. Указанные последовательности действий нужно будет применять для каждого файла, который открывается неправильно. Если неправильно открывается большая часть документов, возможно, лучшим решением будет смена настроек компьютера – об этом сказано в пятом решении.

  1. Измените разделитель и знак десятичной дроби в настройках компьютера

В Панели управления, вызываемой кнопкой Пуск, выберите “Дополнительные параметры” из перечня “Региональные Стандарты”. После клика возникнет окошко “Настройка формата” – в нём можно выбрать “Разделитель элементов списка” и разделитель целой и дробной части числа. Если в качестве разделительного знака в файлах требуется запятая, сначала установите точку как знак для дроби. Может оказаться и наоборот – нужна точка с запятой как разделительный символ. Тогда для дробей можно оставить любой знак, это не вызовет конфликта.

Конвертировать CSV в Excel в виде таблицы

Когда все настройки завершены, нажмите ОК на обоих из двух открытых окон — они закроются, и изменения сохранятся. Имейте в виду, что теперь они работают для всех программ в компьютере.

Исчезают нули в начале чисел

Признак. Некоторые из значений в исходном документе – числа, которые начинаются нулями, не отделёнными знаком дроби (например, шифры и коды с фиксированным количеством цифр, логины и пароли, показания счётчиков и приборов). В Excel нули в начале таких чисел исчезают. Если отредактировать файл и потом сохранить его как книгу Excel, в этой книге уже нельзя будет найти, где были те числа с нулями.

Причина. Excel имеет раздельные форматы для текста и чисел. В текстовых файлах подобного разделения нет, и потому Excel присваивает всем значениям Общий формат. Он означает, что текст отображается как текст, а цифры без алфавитных символов отображают как число, которое не может начинаться с нулей.

Решение. Смените расширение на .txt, чтобы при открытии документа включился Мастер импорта. Когда дойдёте до Шага 3, смените формат столбцов с числами, которые начинаются нулями, на текстовый.

Конвертировать CSV в Excel в виде таблицы

Часть значений выглядит как даты

Признак. В виде дат отображаются значения, в оригинале представляющие собой обычный текст или числа.

Причина. Общий формат предполагает превращение в даты значений, напоминающих таковые для Excel. Если в CSV-документе будет отдельное значение вроде may12, то в Excel-листе оно отобразится как дата.

Решение. Сходно с таковым в предыдущем случае. Смените расширение на .txt, в Мастере смените формат значений, конвертируемых в даты, на текстовый.

Конвертировать CSV в Excel в виде таблицы

Если же, напротив, нужно показывать содержимое определённого столбца как даты, установите для него формат Дата. Есть несколько разновидностей формата даты, потому выберите требуемую из перечня.

Как импортировать в Excel множественные CSV-файлы

В Excel возможно открыть сразу несколько CSV-файлов.

  1. Нажмите Файл > Открыть и выберите опцию Текстовые файлы из выпадающего листа внизу.
  2. Чтобы выбрать несколько файлов, расположенных рядом, сначала выберите первый из них, затем нажмите Shift и кликните на последний. Кроме выбранных файлов, выделятся все файлы между ними.
  3. Кликните Открыть.

Конвертировать CSV в Excel в виде таблицы

Недостаток этого метода в том, что каждый выбранный файл будет открыт в Excel отдельно. Переход от одного документа к другому может увеличивать временные затраты. Однако, затем возможно скопировать содержимое их всех в листы одной книги.

Объяснение было долгим, однако, теперь у Вас получится без особых затруднений открыть любой файл CSV в Excel. Если что-то кажется непонятным на первый взгляд, просто следуйте указанным шагам — и всё прояснится.

Оцените качество статьи. Нам важно ваше мнение:

Почему появляются Каракули и иероглифы в Excel? У этой проблемы может быть несколько вариантов, соберу большинство решений в этой статье. Ну и заодно напишу, как добавлять и использовать символы-иероглифы в тексте.

Проблема с кодировкой часто возникает в разных программах. Кто выгружает данные из ИТ систем, уверен сталкивался с проблемой смены кодировки. Разберем и другие случаи

Иероглифы в Excel4

Иероглифы в Excel8

Содержание

  • Каракули и иероглифы в Excel. Неверная кодировка
  • Неверная кодировка при получении данных из внешних источников. Открытие CSV файлов
  • Открываем не той программой
  • Как добавить символы-иероглифы в тексте?
  • Похожие статьи

Каракули и иероглифы в Excel. Неверная кодировка

Если при открытии файла вы видите каракули/иероглифы в Excel, вам может помочь смена кодировки. Пересохраните файл следующим способом:

Нажав «Сохранить как», нажмите на кнопку Сервис и выберите Параметры веб-документа

Иероглифы в Excel2

На вкладке Кодировка выберите Юникод (UTF-8) или Кириллица (Windows)

Иероглифы в Excel3

Пересохраняем файл.

Неверная кодировка при получении данных из внешних источников. Открытие CSV файлов

Если при вставке данных из других файлов или внешних источников получаются каракули/неизвестные символы, тоже рекомендуется уточнить кодировку. Сделать это можно следующим образом:

На ленте управления выберите вкладку Данные, а в разделе Получение внешних данных выберите нужный пункт.

Если вы вставляете обычные данные из файла, т.е. текст или таблицу, выберите Из текста

Иероглифы в Excel5

Укажите файл, из которого забираем данные, после выберите формат данных, а главное в разделе Формат файла выберите Юникод (UTF-8).

Иероглифы в Excel6

Что выбрать с разделителем или фиксированной ширины (шаг 1), а так же следующий шаг (шаг 2) подробно описан в этой статье.

В шаге 3 выбираем «Общий» формат данных.

Открываем не той программой

Так же я рекомендую проверить, какой именно программой вы открываете Excel-файл. Бывает, что книги 2010 формата Excel открываются в Excel 2003 (или более ранние версии) с измененным на иероглифы текстом. Подробнее про форматы Excel здесь.

Точно такая же проблема периодически возникает, если открывать сложные Excel-книги с большим набором данных через альтернативные табличные редакторы, такие как LibreOffice.Calc, Apache OpenOffice и другие.

Как добавить символы-иероглифы в тексте?

«С текстом у меня все в порядке, мне нужно вставить иероглиф/символ в Excel» — скажете вы. Чтобы вставить символ, перейдите на вкладку Вставка и в разделе Символы выберите Символ.

В таблице символов можно найти почти любой символ

Иероглифы в Excel7

Чтобы добавить его в текст, кликните по нему.

Понравилась статья? Поделить с друзьями:
  • При открытии нового документа в программе ms word 2010 на листе отображается сетка
  • При открытии нового документа word предыдущий закрывается
  • При открытии нескольких файлов excel происходит зависание программы
  • При открытии документов в word непонятные символы
  • При открытии документа открывается только excel