Как конвертировать CSV в XLSX (и обратно): разделитель, кодировка, кракозябры

CSV — простой формат: строки текста, поля разделены запятой или точкой с запятой. Но стоит открыть такой файл двойным кликом в Excel — и начинается: вся строка в первом столбце, кириллица превратилась в кракозябры, а артикул 0123 стал числом 123. Разберём, почему так происходит, как конвертировать CSV в XLSX (и наоборот) и как не терять данные по дороге.

Почему Excel «ломает» CSV

Три типовые причины:

  • Разделитель. В русской локали Windows Excel ждёт точку с запятой, а поставщик, банк или 1С выгружает с запятой (или наоборот). Итог — вся строка попадает в одну ячейку.
  • Кодировка. Файл сохранён в UTF-8, а Excel по умолчанию читает как Windows-1251. Кириллица превращается в Товар.
  • Автоопределение типов. Excel молча превращает 01.03 в дату, а артикул 0123 — в число 123, срезая ведущий ноль. Обратно нули уже не вернуть.

Способ 1. Импорт через «Данные → Из текстового/CSV-файла»

Встроенный в Excel инструмент, который решает две проблемы из трёх:

  1. Откройте пустую книгу Excel.
  2. Вкладка Данные → Получить данные → Из текстового/CSV-файла.
  3. В окне предпросмотра выберите кодировку (обычно 65001: Юникод (UTF-8)) и разделитель (запятая или точка с запятой).
  4. Нажмите «Загрузить».

Минусы: настройки не запоминаются — десять файлов в неделю это десять одинаковых проходов по меню. И типы колонок придётся перепроверять каждый раз: ведущие нули Excel откусывает молча.

Способ 2. Power Query

Тот же импорт, но с сохранением цепочки обработки: один раз настроили запрос — дальше жмёте «Обновить», подставив новый файл. Подходит, если файлы однотипные и регулярные. Порог входа выше: редактор запросов, типы данных, и когда поставщик поменяет структуру файла, запрос придётся чинить руками.

Способ 3. Конвертер: файл → готовый XLSX

Если нужен рабочий файл, а не новый навык — загрузите CSV в конвертер. Он сам определяет разделитель и кодировку, показывает, как разложились данные, и отдаёт XLSX:

Лендинг конвертера CSV в XLSX с зоной загрузки файла
Загрузка CSV — файл можно просто перетащить на страницу

После загрузки видно, как файл разобрался по колонкам — до конвертации, а не после:

Предпросмотр CSV, разобранного по колонкам
Превью: данные разложены по колонкам, заголовки определены

Дальше можно ничего не настраивать — импортировать все колонки как есть:

Импорт всех колонок CSV при сопоставлении
«Импорт всех» переносит колонки без изменений

И на последнем шаге выбрать формат XLSX:

Выбор формата XLSX на шаге экспорта
Экспорт в XLSX — файл откроется в Excel без танцев

А если нужно наоборот: XLSX в CSV

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

Какой способ когда подходит

СпособКогда братьКогда нет
Импорт через «Данные»Разовый файл, вы уже в ExcelФайлы приходят регулярно
Power QueryОдин и тот же файл каждую неделю, готовы разбиратьсяСтруктура файла плавает от поставщика к поставщику
КонвертерНужен результат за минуту, файл чужой и незнакомыйНужны формулы/несколько листов на выходе

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

Как поменять кодировку в CSV?

Откройте файл в «Блокноте» → «Сохранить как» → внизу выберите кодировку UTF-8. Или загрузите в конвертер и скачайте XLSX: внутри XLSX кодировок нет в принципе, проблема исчезает навсегда.

Весь CSV попадает в один столбец

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

Как поменять разделитель в CSV массово?

Вручную — никак: «Найти и заменить» сломает поля, где разделитель встречается внутри текста (например, в названии товара). Правильный путь — распарсить файл с исходным разделителем и сохранить с нужным, что и делает конвертер.

Артикулы вида 0123 превращаются в 123

Excel считает значение числом и отбрасывает ведущие нули. При импорте задайте такому столбцу текстовый формат на шаге предпросмотра. В конвертере колонки переносятся как текст без авто-преобразований — нули остаются на месте.

А если внутри текста есть кавычки или сам разделитель?

Тогда CSV-поле должно быть обёрнуто в кавычки, а внутренние кавычки — удвоены. Часть выгрузок (особенно самописных) этого не делает, и такой файл не читается корректно нигде. В конвертере включён терпимый парсер: он вытащит максимум даже из «кривого» CSV.

Файл больше 2 МБ

Бесплатно и без регистрации обрабатываются файлы до 2 МБ — большинству прайсов хватает. Зарегистрированным — до 5 МБ, на платных тарифах до 100 МБ с потоковой обработкой.