CSV в Excel и обратно

Загрузите CSV или вставьте текст: кодировка и разделитель определяются сами, таблица показывается сразу, файл .xlsx скачивается одной кнопкой. Обратное направление делает из Excel аккуратный CSV с нужным разделителем и кодировкой, которую поймёт и Excel, и 1С.

или перетащите сюда: .csv, .txt, .tsv, а в обратном режиме .xlsx, .xls, .ods

Как читать CSV

Вставьте CSV или загрузите файл.

Что ломается при открытии CSV в Excel и как это чинится

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

Что видноПричинаЧто сделать
Кракозябры вместо русских буквфайл в UTF-8 без BOM, Excel читает его как Windows-1251кнопка «Починить кодировку» или открыть через «Данные → Из текста/CSV», кодировка 65001
Вопросы или квадраты вместо буквфайл в Windows-1251 открыт как UTF-8выбрать кодировку Windows-1251 в списке, скачать .xlsx
Все данные в одной колонкеразделитель файла и разделитель локали не совпадаютсменить разделитель в списке; в Excel указать его в мастере импорта
Телефон стал 8,9E+10Excel превратил длинное число в экспоненциальную записьздесь номера остаются текстом; в Excel задать столбцу текстовый формат до импорта
Пропали ведущие нули в артикулахExcel считает 00123 числом 123здесь нули сохраняются; в Excel текстовый формат столбца
Дата 01.02 превратилась в «1 февр»Excel угадал дату там, где был код или дробьтекстовый формат столбца при импорте
Адрес с запятой разъехался на две колонкизначение не взято в кавычкипри сохранении в CSV кавычки ставятся сами

Как открыть CSV в Excel без иероглифов и сохранить обратно

Двойной щелчок по файлу отдаёт разбор на откуп настройкам Windows: кодировка берётся системная, разделитель из региональных параметров. Поэтому один и тот же файл у коллеги открывается ровно, а у вас одной колонкой с кракозябрами. Мастер импорта убирает эту лотерею.

Импорт с выбором кодировки

В Excel 2016 и новее: Данные → Получить данные → Из файла → Из текста/CSV. В окне предпросмотра есть список «Источник файла»: для UTF-8 выберите 65001: Юникод (UTF-8), для файлов из старых программ 1251: Кириллица (Windows). Разделитель подставляется сам, его можно поменять тут же, а после «Загрузить» таблица ложится на лист уже по колонкам.

В старых версиях тот же путь называется Данные → Из текста: мастер из трёх шагов, на первом кодировка, на втором разделитель, на третьем формат каждого столбца. Третий шаг стоит пройти вручную: столбцам с артикулами, телефонами и индексами поставьте «текстовый», иначе нули и длинные номера пострадают.

Сохранить лист в CSV, который откроется у всех

Файл → Сохранить как, тип файла CSV UTF-8 (разделители — запятые). Несмотря на слово «запятые» в названии, на русской Windows Excel поставит точку с запятой, потому что запятая занята под десятичную часть. Этот вариант кладёт в начало файла BOM, и другой Excel откроет его ровно. Тип «CSV (разделители — запятые)» без UTF-8 сохраняет в Windows-1251: такой файл нужен 1С и старым складским программам, зато сайты и скрипты покажут его иероглифами.

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

Windows-1251: Ïðèâåò → так выглядит UTF-8, открытый как cp1251 UTF-8: Привет → так выглядит правильно прочитанный файл BOM: EF BB BF → три байта в начале файла, по которым Excel узнаёт UTF-8

Когда файл нужен один раз и без настроек, быстрее загрузить его в поле выше: кодировка и разделитель определятся сами, а .xlsx откроется двойным щелчком где угодно.

Как конвертер угадывает кодировку и разделитель

Конвертер читает CSV как поток байтов, и в этом главное отличие от простого «открыть в Excel». Сначала он смотрит на метку порядка байтов в начале файла, потом пробует строгий разбор UTF-8, а если тот падает, сравнивает четыре кириллические кодировки, Windows-1251, KOI8-R, CP866 и ISO-8859-5, по тому, сколько строчных русских букв получается в тексте: у верной кодировки слова состоят из строчных с редкими заглавными в начале, у неверной выходит каша из заглавных посреди слова. Разделитель определяется по первым двадцати строкам: побеждает знак, который встречается в каждой строке одинаковое число раз.

Дальше текст разбирается по правилам RFC 4180: значение в кавычках может содержать разделитель, перенос строки и удвоенную кавычку. Таблица показывается на экране, а в .xlsx уходит с типами: цены и количества числами, артикулы с ведущими нулями и телефоны текстом, чтобы артикул 00123 не потерял нули и телефон не превратился в 8,9E+10. Обратный режим читает .xlsx, .xls и .ods через библиотеку SheetJS, даёт выбрать лист и собирает CSV с нужным разделителем в одной из трёх кодировок; значения с разделителем и кавычками берутся в кавычки сами. Соседний конвертер CSV в JSON делает то же для скриптов и API.

Электронная таблица с данными по колонкам
Табличный процессор раскладывает CSV по колонкам только при верных кодировке и разделителе. Фото: Jasozh, CC BY-SA 4.0.
КодировкаГде встречаетсяКак выглядит ошибка
UTF-8 с BOMExcel «CSV UTF-8», Google Таблицыскрипты видят три лишних байта перед первым заголовком
UTF-8 без BOMсайты, выгрузки из баз и API, LinuxExcel при двойном щелчке показывает «Ïðèâåò»
Windows-12511С, старые склады и банки, русская Windowsпрограммы на UTF-8 показывают знаки вопроса и квадраты
UTF-16экспорт из части CRM и из Excel «Текст Юникод»каждая вторая буква пропадает или файл вдвое больше ожидаемого

История: от Fortran до салфетки с UTF-8

Значения через запятую появились раньше самого термина: в 1972 году компилятор IBM Fortran умел читать числа списком, разделённым запятыми, и такие файлы кочевали между программами без имени. Слово CSV закрепилось в документации к бухгалтерским пакетам начала 1980-х, а стандартом формат обзавёлся только в октябре 2005 года, когда Яков Шафранович описал его в RFC 4180: запятая между полями, кавычки вокруг полей с запятыми и переносами, удвоенная кавычка внутри. Стандарт закрепил практику, которая к тому времени сложилась в Excel и Lotus 1-2-3.

Кодировки развивались отдельно и стали второй половиной проблемы. Windows-1251 Microsoft ввела в начале 1990-х для русских версий Windows, и на ней до сих пор работает часть учётных программ. UTF-8 придумали Кен Томпсон и Роб Пайк в сентябре 1992 года, по легенде набросав схему на салфетке в закусочной; к 2008 году она стала основной кодировкой веба, а Excel научился сохранять «CSV UTF-8» только в 2016 году, добавляя в начало файла метку BOM. Именно эта метка и отличает файл, который откроется двойным щелчком, от файла с кракозябрами.

Разделитель тоже зависит от страны. В локалях, где дробная часть отделяется запятой, Excel разделяет поля точкой с запятой, иначе 3,14 разъезжалось бы на две ячейки. Поэтому один и тот же «CSV» из немецкой, русской и американской версии Excel выглядит по-разному, а библиотеки и сервисы вынуждены угадывать разделитель по содержимому, как это делает конвертер выше.

Перфоратор для карт в вычислительном центре
Перфокарты IBM хранили запись строкой из 80 колонок: предок табличного файла с фиксированной шириной полей. Фото: Викисклад, общественное достояние.
Компьютер Apple II, на котором работала VisiCalc
VisiCalc на Apple II, 1979 год: первая электронная таблица, из которой выросли обмен данными через текстовые файлы. Фото: Rama & Musée Bolo, CC BY-SA 2.0 fr.
Бобина магнитной ленты для хранения данных
Магнитная лента: обмен данными между машинами шёл текстовыми файлами, и вопрос кодировки стоял уже тогда. Фото: Mister rf, CC BY-SA 4.0.

Как открыть проблемный CSV и собрать правильный

Если файл открывается иероглифами, загрузите его в режиме «CSV → Excel»: кодировка определится сама, и кнопка «Скачать .xlsx» отдаст книгу, которая откроется у кого угодно. Когда нужен именно CSV, например для загрузки на сайт или в другую программу, нажмите «Починить кодировку»: тот же файл вернётся в UTF-8 с BOM, и Excel откроет его двойным щелчком. Если данные легли в одну колонку, переключите разделитель в списке справа, таблица перестроится сразу.

Для обратного перевода загрузите книгу или вставьте скопированные клетки, выберите лист, разделитель и кодировку под получателя: UTF-8 с BOM для Excel и веб-сервисов, Windows-1251 для 1С и старых учётных программ, табуляцию для импорта в базы. Галочка «кавычки у всех значений» нужна редким программам, которые требуют строгого формата. Готовый CSV скачивается файлом или копируется в буфер, а для дальнейшей чистки данных рядом есть удаление дубликатов и преобразование текста в таблицу.

Кодировок на входе8, включая автоопределение
Разделителей4 плюс автоопределение
Кодировок на выходеUTF-8 с BOM, UTF-8, Windows-1251
Форматы книги.xlsx, .xls, .xlsm, .ods
Ведущие нулисохраняются текстом
Метка BOMEF BB BF, 3 байта
Стандарт CSVRFC 4180, 2005 год
Строк на экране200, в файл все

Как пользоваться

  1. В режиме «CSV → Excel» подойдёт .csv, .txt или .tsv любого размера до пары сотен тысяч строк. Кодировка читается по байтам: UTF-8, Windows-1251, KOI8-R и UTF-16 распознаются сами, если угадано неверно, выберите свою в списке.
  2. Под полем показаны найденная кодировка, разделитель и размер таблицы, а ниже сама таблица. Если данные легли одной колонкой, смените разделитель; если вместо букв кракозябры, кодировку.
  3. Числа станут числами, даты и коды с ведущими нулями останутся текстом. Кнопка «Починить кодировку» отдаёт тот же CSV в UTF-8 с BOM: такой файл Excel открывает двойным щелчком без иероглифов.
  4. Загрузите .xlsx, .xls или .ods либо вставьте скопированные клетки. Выберите лист, разделитель и кодировку: UTF-8 с BOM для Excel и сайтов, Windows-1251 для 1С и старых программ, табуляцию для импорта в базы.

Частые вопросы

Почему CSV открывается в Excel иероглифами

Файл сохранён в UTF-8, а Excel при двойном щелчке читает CSV в кодировке системы, для русской Windows это Windows-1251. Русские буквы в UTF-8 занимают два байта, и каждый показывается отдельным символом. Лечится метка порядка байтов в начале файла: три байта EF BB BF, по которым Excel понимает UTF-8. Кнопка «Починить кодировку» добавляет её.

Почему всё легло в одну колонку

Excel в русской локали ждёт точку с запятой, а файл разделён запятой, или наоборот. Здесь разделитель определяется по первым строкам и переключается вручную, а в самом Excel файл открывают через «Данные → Из текста/CSV» с выбором разделителя.

Что происходит с ведущими нулями и длинными номерами

Артикулы вроде 00123 и номера телефонов остаются текстом, поэтому нули не пропадают и число не превращается в 8,9E+10. В число переводится только то, что выглядит как число без ведущего нуля: цены, количества, проценты.

Какой разделитель выбрать при сохранении в CSV

Для Excel на русской Windows и для 1С точку с запятой, для программ и сервисов, которые ждут стандартный CSV по RFC 4180, запятую, для импорта в базы данных и Google Таблицы подойдёт табуляция. Значения с разделителем, кавычками или переносом внутри берутся в кавычки по стандарту.

Чем UTF-8 с BOM отличается от просто UTF-8

Содержимое одинаковое, разница в трёх служебных байтах в начале файла. Excel по ним распознаёт кодировку, а часть программ, наоборот, на них спотыкается: скрипты на Python и PHP видят лишние символы перед первым заголовком. Для Excel выбирайте вариант с BOM, для программ без него.

Можно ли перевести CSV с несколькими листами

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

Куда уходит файл

Никуда: файл читается и переводится на вашем устройстве, ничего не отправляется и не сохраняется.

Похожие инструменты

ВПР онлайн

Объединить две таблицы по ключевому столбцу без формул: подтянуть столбцы из второй таблицы к первой, показать совпадения и строки без пары. Ключи сравниваются без регистра, пробелов и буквы ё, режим «только цифры» для телефонов; XLSX и CSV.

Открыть
XML в Excel и обратно

Любой XML в таблицу: сам находит повторяющийся элемент, раскладывает теги и атрибуты по колонкам, отдаёт .xlsx, CSV и JSON; обратно собирает XML из книги Excel с вашими именами тегов.

Открыть
Таблица онлайн

Конструктор таблицы в браузере: шапка, строки и столбцы, вставка из Excel по клеткам, сортировка, суммы, транспонирование, шаблоны для заполнения. Выгрузка в XLSX, CSV, Word, Markdown, HTML, PNG и печать на А4.

Открыть
Подсчёт и частотность

Сколько строк всего, уникальных и как часто повторяется каждая. Сортировка по частоте.

Открыть
Список литературы по ГОСТ

Конструктор библиографических записей по ГОСТ Р 7.0.100-2018 и краткой форме 7.0.5-2008: книга, статья, сайт, диссертация, закон, стандарт. Инициалы и «[и др.]» сами, заполнение статьи по DOI, сортировка, нумерация, копирование для Word и .docx.

Открыть
Убрать переносы строк

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

Открыть

Ещё инструменты для списков

Удаление дубликатов и сравнение двух списков, сортировка, столбец в строку и обратно, нумерация, частотность и шаблонизатор — в разделе 29 инструментов.