Как правильно преобразовать файл Excel (XLSX/XLS) в CSV: 5 проверенных способов

При попытке сохранить таблицу Excel в формате CSV пользователи часто сталкиваются с проблемами: искажаются кириллические символы, теряются формулы, а числа с ведущими нулями (например, артикулы) превращаются в обычные цифры. Эти ошибки возникают из-за неверно выбранной кодировки (ANSI вместо UTF-8), неправильного разделителя столбцов или игнорирования особенностей формата CSV. В 90% случаев проблема решается выбором параметра CSV UTF-8 (разделитель — запятая) в меню Файл → Сохранить как, но есть нюансы для разных версий Excel (2010, 2016, 2019, 365) и альтернативных программ.

CSV (Comma-Separated Values) — это текстовый формат, где данные разделяются запятыми или другими символами, а не хранятся в ячейках, как в Excel. Именно поэтому при конвертации теряются цветовые схемы, объединённые ячейки и сложные формулы. Однако CSV остаётся самым универсальным форматом для импорта в базы данных, Google Таблицы, или аналитические системы. Далее — пошаговые инструкции с учётом типичных «подводных камней».

1. Стандартный экспорт через «Сохранить как» в Excel

Самый быстрый способ — использовать встроенную функцию Excel. Он подходит для большинства задач, но требует внимания к настройкам кодировки и разделителей. Вот как это сделать правильно:

  1. Откройте файл в Excel и перейдите в меню Файл → Сохранить как.
  2. В поле Тип файла выберите CSV UTF-8 (разделитель — запятая) (*.csv). Если такого пункта нет (в старых версиях), используйте CSV (разделитель — запятая), но затем придётся вручную исправить кодировку.
  3. Нажмите Сохранить. Появится предупреждение о потере функциональности — подтвердите его.

⚠️ Внимание: В Excel 2010–2016 по умолчанию используется кодировка ANSI, которая искажает русские буквы. Чтобы этого избежать, после сохранения откройте файл в Блокноте и выберите Файл → Сохранить как → Кодировка: UTF-8.

- Удалите объединённые ячейки (CSV их не поддерживает)

- Преобразуйте формулы в значения (Ctrl+C → Специальная вставка → Значения)

- Проверьте числа с ведущими нулями (добавьте апостроф перед ними: '00123)

- Убедитесь, что в данных нет запятых (или используйте другой разделитель)

-->

2. Выбор правильной кодировки: UTF-8 vs ANSI

Основная причина «кракозябров» (нечитаемых символов вместо кириллицы) — неверная кодировка. Формат CSV не хранит информацию о шрифтах, поэтому текст должен быть закодирован в UTF-8 для корректного отображения в большинстве систем. Сравните варианты:

Кодировка Поддержка кириллицы Совместимость Как сохранить
UTF-8 ✅ Корректно отображает все символы ✅ Подходит для импорта в базы данных, Google Таблицы, В Excel 2019+: выбрать CSV UTF-8. В старых версиях: сохранить как CSV, затем конвертировать в Блокноте.
ANSI (Windows-1251) ❌ Искажает символы при открытии в Linux/macOS или веб-сервисах ⚠️ Только для локального использования в Windows Выбрать CSV (разделитель — запятая) без UTF-8.
Unicode ✅ Поддерживает кириллицу ⚠️ Может добавлять лишние символы (BOM) В Excel: выбрать Текст Unicode (*.txt), затем переименовать в .csv.

Если после экспорта в CSV кириллица отображается как Работа, значит файлу присвоена кодировка ANSI, а открываете вы его в программе, ожидающей UTF-8. Исправить это можно:

  • 🔄 Пересохранить файл в Блокноте с кодировкой UTF-8.
  • 📋 Использовать Excel 2019+, где есть опция CSV UTF-8.
  • 🌐 Открыть в Google Таблицах и экспортировать оттуда (автоматически конвертирует в UTF-8).

UTF-8|ANSI (Windows-1251)|Unicode|Не знаю, какая у меня кодировка-->

3. Альтернативные способы конвертации

Если стандартный экспорт не подходит (например, из-за большого объёма данных или специфических разделителей), используйте эти методы:

Способ 1: Через Google Таблицы

Этот метод гарантирует корректную кодировку UTF-8 и поддерживает большие файлы:

  1. Загрузите файл .xlsx в Google Таблицы.
  2. Выберите Файл → Скачать → Значения, разделенные запятыми (.csv).

Способ 2: С помощью LibreOffice Calc

LibreOffice предлагает больше опций для CSV, включая выбор разделителя и кодировки:

  1. Откройте файл в LibreOffice Calc.
  2. Выберите Файл → Сохранить как.
  3. Укажите тип Текстовый CSV (.csv) и нажмите Сохранить.
  4. В окне экспорта выберите:
    • 📋 Кодировку: UTF-8
    • 🔄 Разделитель полей: запятая или точка с запятой
    • 🔒 Текстовый разделитель: кавычки (если в данных есть запятые)

Способ 3: Командная строка (для продвинутых)

Если нужно автоматизировать процесс, используйте PowerShell (Windows) или ssconvert (Linux):

# PowerShell (конвертация XLSX в CSV с UTF-8)

Import-Module ImportExcel

$file = "C:\path\to\file.xlsx"

Export-Csv -Path "C:\path\to\output.csv" -InputObject (Import-Excel $file) -Encoding UTF8 -NoTypeInformation

Что делать, если CSV открывается в одной строке?

Это означает, что программа не распознаёт разделители. Решения

1. В Excel при открытии CSV выберите Данные → Текст по столбцам и укажите разделитель.

2. Откройте файл в Блокноте и замените запятые на точки с запятой (если разделитель неверный).

3. Используйте LibreOffice Calc — он автоматически определяет формат.

4. Типичные ошибки и как их избежать

Даже при правильном экспорте в CSV могут возникнуть проблемы. Вот самые распространённые и способы их решения:

  • 🔢 Числа с ведущими нулями становятся числами без нулей
    Решение: Перед экспортом отформатируйте столбец как Текстовый или добавьте апостроф перед числом ('00123).
  • 📊 Формулы пропадают
    Решение: Преобразуйте формулы в значения (Ctrl+C → Специальная вставка → Значения). CSV не поддерживает вычисления.
  • 🧩 Объединённые ячейки разбиваются
    Решение: Разъедините ячейки перед экспортом или дублируйте данные в каждой из них.
  • 🌍 Дата/время отображается в неверном формате
    Решение: Преобразуйте даты в текстовый формат (Формат ячеек → Текстовый).
⚠️ Внимание: Если ваш CSV предназначен для загрузки в или банк-клиент, уточните требуемый разделитель (часто это точка с запятой ;, а не запятая). Некоторые системы также требуют обязательное наличие заголовков столбцов.

5. Оптимизация CSV для импорта в другие системы

CSV часто используется для переноса данных между программами. Чтобы избежать ошибок при импорте, следуйте этим рекомендациям:

  • 📌 Для :

    - Разделитель: точка с запятой (;)

    - Кодировка: Windows-1251 (если не поддерживается UTF-8)

    - Первая строка должна содержать названия полей

  • 📈 Для Google Analytics или Yandex Metrica:

    - Разделитель: запятая (,)

    - Кодировка: UTF-8

    - Числа без разделителей тысяч (например, 1000, а не 1 000)

  • 🏦 Для банк-клиентов (Сбербанк, Тинькофф):

    - Формат даты: ДД.ММ.ГГГГ

    - Разделитель: обычно ;

    - Без пустых строк в конце файла

Перед отправкой CSV в критически важную систему (например, для платежных ведомостей) обязательно проверьте первые 5–10 строк в текстовом редакторе. Это поможет выявить скрытые символы, неверные разделители или проблемы с кодировкой.

Откройте файл в Блокноте или Notepad++ и включите отображение всех символов (в Notepad++: Вид → Отображать символы → Показать все символы). Это поможет увидеть лишние пробелы, табуляции или неверные разделители.

-->

6. Автоматизация конвертации: макросы и скрипты

Если вам регулярно приходится конвертировать файлы из Excel в CSV, автоматизируйте процесс с помощью макросов или скриптов. Например, этот макрос для Excel VBA сохраняет все листы книги в отдельные CSV-файлы с кодировкой UTF-8:

Sub SaveSheetsAsCSV()

Dim ws As Worksheet

Dim csvPath As String

csvPath = "C:\Output\" ' Укажите папку для сохранения

For Each ws In ThisWorkbook.Worksheets

ws.Copy

ActiveWorkbook.SaveAs csvPath & ws.Name & ".csv", xlCSVUTF8

ActiveWorkbook.Close False

Next ws

End Sub

Для Python можно использовать библиотеку pandas:

import pandas as pd

df = pd.read_excel('input.xlsx')

df.to_csv('output.csv', index=False, encoding='utf-8', sep=',')

⚠️ Внимание: При использовании макросов отключите антивирус на время выполнения — некоторые программы блокируют автоматизированное сохранение файлов, воспринимая это как подозрительную активность.

7. Проверка результата: как убедиться, что CSV корректен

Перед отправкой CSV проверьте его на:

  1. Корректность данных: откройте файл в Блокноте и убедитесь, что:

    - Текст читаем (нет Работа).

    - Числа с ведущими нулями сохранены (00123, а не 123).

    - Даты в нужном формате.

  2. Структуру: импортируйте CSV обратно в Excel через Данные → Из текста и проверьте, что данные распределились по столбцам правильно.
  3. Совместимость: если CSV предназначен для другой системы (например, ), протестируйте загрузку на тестовом экземпляре.

Формат CSV не хранит форматирование, формулы или структуру данных — только сырые значения. Все преобразования (даты в текст, формулы в числа) нужно сделать ДО экспорта.

-->

Часто задаваемые вопросы

Можно ли сохранить в CSV несколько листов Excel одновременно?

Нет, стандартный экспорт в CSV сохраняет только активный лист. Чтобы сохранить все листы, используйте:

  • Макрос VBA (см. раздел 6).
  • Скрипт на Python с библиотекой pandas.
  • Ручной экспорт каждого листа по отдельности.
Почему после экспорта в CSV русские буквы отображаются как кракозябры?

Это происходит из-за несовпадения кодировок. Решения:

  1. Сохраните файл в UTF-8Excel 2019+ или через Блокнот).
  2. При открытии CSV в Excel выберите кодировку UTF-8 вручную.
  3. Используйте Google Таблицы или LibreOffice для экспорта — они автоматически выбирают правильную кодировку.
Как сохранить в CSV формулы, а не их значения?

Невозможно. Формат CSV не поддерживает формулы — только статические данные. Альтернативы:

  • Сохраните оригинальный файл .xlsx с формулами.
  • Экспортируйте значения в CSV, а формулы документируйте отдельно.
  • Используйте формат XML или JSON для переноса данных с формулами.
Какой разделитель лучше использовать: запятую или точку с запятой?

Выбор зависит от системы, куда вы загружаете CSV:

  • Запятая (,): стандарт для международных систем (Google Ads, Facebook Ads).
  • Точка с запятой (;): распространён в Европе и России (например, для или банковских систем).
  • Табуляция (\t): используется, если в данных есть запятые или точки с запятой.

В Excel при сохранении можно выбрать разделитель вручную (в LibreOffice — больше гибкости).

Можно ли вернуть CSV обратно в Excel без потерь?

Да, но с оговорками:

  1. Откройте CSV в Excel через Данные → Из текста.
  2. Укажите правильный разделитель и кодировку.
  3. Форматирование, формулы и объединённые ячейки восстановить не удастся — их придётся настраивать заново.