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

Формат CSV (Comma-Separated Values) стал стандартом де-факто для обмена табличными данными между программами. Его поддерживают , базы данных (MySQL, PostgreSQL), аналитические системы (Google Analytics, Power BI) и даже веб-приложения. Однако при конвертации из Excel (.xlsx/.xls) в .csv пользователи часто сталкиваются с проблемами: сбивается кодировка, теряются формулы, даты превращаются в числа. Эта статья поможет избежать типичных ошибок и выбрать оптимальный метод экспорта.

Многие ошибочно считают, что достаточно просто сохранить файл через Файл → Сохранить как. На практике же требуется учитывать региональные настройки системы, формат разделителей (запятая или точка с запятой), а также особенности данных — например, ячейки с переносами строк или специальными символами. Мы разберём все нюансы, включая скрытые настройки Excel, которые влияют на результат.

В отличие от .xlsx, формат .csv не поддерживает:

  • 📊 Многостраничные книги — сохраняется только активный лист
  • 🔢 Формулы — остаются только рассчитанные значения
  • 🎨 Форматирование (цвета, шрифты, границы)
  • 📅 Условное форматирование и диаграммы
📊 Какой формат CSV вам нужен чаще всего?
UTF-8 с запятыми
Windows-1251 с точкой с запятой
Для импорта в 1С
Для загрузки в Google Sheets

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

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

Откройте файл в Excel и выполните:

  1. Перейдите в Файл → Сохранить как
  2. В выпадающем списке Тип файла выберите CSV (разделители — запятые) (*.csv)
  3. Нажмите Сохранить

На этом этапе Excel может выдать предупреждения:

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

По умолчанию Excel в русской версии использует точку с запятой (;) как разделитель, а не запятую. Это связано с региональными настройками Windows. Если вам нужен именно CSV с запятыми (например, для Google Sheets), придётся изменить параметры системы или воспользоваться обходным путём — об этом в следующем разделе.

Удалить объединённые ячейки|Заменить переносы строк на пробелы|Проверить кодировку специальных символов (®, ©, €)|Убрать формулы (оставить только значения)|Сохранить оригинал в .xlsx на случай ошибок-->

2. Настройка разделителей: запятая vs точка с запятой

Разница между CSV с запятыми и точкой с запятой критична для некоторых систем. Например:

  • 🌍 Google Sheets и MacOS ожидают запятую (,)
  • 🪟 Windows-приложения (включая ) часто требуют точку с запятой (;)
  • 📁 Базы данных могут поддерживать оба варианта, но с разными настройками импорта

Чтобы принудительно установить запятую как разделитель:

  1. Откройте Панель управления → Часы и регион → Регион
  2. Перейдите на вкладку Дополнительно
  3. В поле Разделитель элементов списка введите запятую (,)
  4. Сохраните изменения и перезапустите Excel

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

Система/Приложение Ожидаемый разделитель Кодировка
Windows (1С, SQL Server) ; Windows-1251 или UTF-8
MacOS / Google Sheets , UTF-8
MySQL (по умолчанию) , UTF-8
Power BI , или ; (настраивается) UTF-8

3. Экспорт с сохранением кодировки UTF-8

Проблемы с кодировкой — самая частая причина «кракозябров» в CSV. По умолчанию Excel в Windows сохраняет файлы в ANSI (Windows-1251), что приводит к искажению кириллических символов при открытии в других программах.

Чтобы сохранить в UTF-8:

  1. В Excel 2016+ выберите Файл → Сохранить как
  2. В списке типов файлов найдите CSV UTF-8 (разделители — запятые) (*.csv)
  3. Сохраните файл

Для старых версий Excel (2013 и ранее) придётся использовать обходной путь:

  1. Сохраните файл в обычном CSV
  2. Откройте его в Блокноте (Notepad)
  3. Выберите Файл → Сохранить как, в поле Кодировка укажите UTF-8
  4. Сохраните с тем же именем (заменив оригинал)

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

Если стандартный экспорт не подходит, воспользуйтесь одним из этих методов:

Способ 1: Через Google Sheets

  • 📤 Загрузите файл .xlsx в Google Диск
  • 📊 Откройте его через Google Sheets
  • 💾 Выберите Файл → Скачать → Значения, разделённые запятыми (.csv)
Google Sheets всегда сохраняет в UTF-8 с запятыми, независимо от настроек системы.

Способ 2: Используя Power Query

  1. В Excel перейдите на вкладку Данные → Получить данные → Из файла → Из книги
  2. Выберите исходный файл .xlsx
  3. В редакторе Power Query нажмите Главная → Закрыть и загрузить → Закрыть и загрузить в...
  4. Укажите Только создать подключение, затем сохраните как CSV

Способ 3: Онлайн-конвертеры

Для разовых задач удобны сервисы вроде:

  • 🌐 ConvertCSV — поддерживает настройку разделителей и кодировки
  • 🌐 CloudConvert — конвертация без установки ПО
  • 🌐 Zamzar — отправляет результат на email

Риски онлайн-конвертеров

Будьте осторожны с конфиденциальными данными — загруженные файлы могут временно храниться на серверах третьих сторон. Для чувствительной информации используйте офлайн-методы.

5. Распространённые ошибки и как их избежать

Проблема 1: Даты превращаются в числа

Пример: 01.05.2026 становится 45392. Это происходит потому, что Excel хранит даты как количество дней с 1900 года.

Решение:

  • 📅 Преобразуйте даты в текстовый формат через Формат ячеек → Текстовый до экспорта
  • 🔄 Или используйте формулу =ТЕКСТ(A1; "ДД.ММ.ГГГГ") в отдельном столбце

Проблема 2: Объединённые ячейки разбиваются

В CSV нет понятия объединённых ячеек — данные из них дублируются во все ячейки диапазона. Например:


A1 (объединена с B1) | C1

---------------------|----

Значение | 10

Станет:


A1 | B1 | C1

------------|-------------|----

Значение | Значение | 10

Решение: Разъедините ячейки перед экспортом или обработайте результат в текстовом редакторе.

Проблема 3: Специальные символы ломают структуру

Символы вроде ", ,, ; или переносы строк (\n) могут сбивать разбор CSV. Например, текст "Привет, мир!" в ячейке приведёт к смещению столбцов.

Решение:

  • 🔍 Замените кавычки на одинарные (') или удалите их
  • 📝 Уберите переносы строк через НАЙТИ/ЗАМЕНИТЬ (Ctrl+H → ищите Alt+Enter)
  • 🛡️ Используйте ТЕКСТ.ПРЕОБР для экранирования: =ТЕКСТ.ПРЕОБР(A1; """"; """""")

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

Если вам регулярно нужно конвертировать XLSX в CSV с одинаковыми настройками, автоматизируйте процесс через VBA или Python.

Макрос для Excel (VBA):

Создаёт CSV для каждого листа книги с запятыми и кодировкой UTF-8:

Sub ExportAllSheetsToCSV()

Dim ws As Worksheet

Dim csvPath As String

csvPath = "C:\Temp\" ' Укажите свою папку

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

Чтение Excel

xls = pd.ExcelFile('input.xlsx')

Экспорт каждого листа в CSV

for sheet_name in xls.sheet_names:

df = pd.read_excel(xls, sheet_name=sheet_name)

df.to_csv(f'{sheet_name}.csv',

index=False,

encoding='utf-8',

sep=',', # или ';' для Windows

quotechar='"')

Для запуска скрипта установите библиотеки:

pip install pandas openpyxl

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

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

Шаг 1: Визуальный осмотр

Откройте файл в текстовом редакторе (не в Excel!). Правильный CSV должен выглядеть так:

"Заголовок1","Заголовок2","Заголовок3"

"Значение1","Значение2","Значение3"

Обратите внимание на:

  • 🔹 Кавычки вокруг текста (если есть запятые внутри ячеек)
  • 🔹 Отсутствие лишних разделителей в конце строк
  • 🔹 Корректное отображение кириллицы

Шаг 2: Валидация онлайн

Используйте сервисы для проверки структуры:

  • 🌐 CSVLint — анализирует синтаксис и кодировку
  • 🌐 CSV Validator — проверяет соответствие стандартам RFC 4180

Шаг 3: Тестовый импорт

Попробуйте загрузить файл в целевую систему (например, в или MySQL) с минимальным набором данных. Это поможет выявить проблемы на раннем этапе.

FAQ: Частые вопросы по конвертации Excel в CSV

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

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

  • 📝 Макрос VBA (см. раздел 6)
  • 🐍 Python-скрипт с библиотекой pandas
  • 🖥️ Специализированные программы вроде ExcelToCSV или LibreOffice Calc (поддерживает пакетный экспорт)
Почему после экспорта в CSV русские буквы отображаются кракозябрами?

Это проблема кодировки. Решения:

  1. Сохраните файл в UTF-8 (в Excel 2016+ выберите тип CSV UTF-8)
  2. Если используете старую версию Excel:
    1. Сохраните в обычном CSV
    2. Откройте в Блокноте и пересохраните с кодировкой UTF-8
  3. Проверьте настройки целевой программы (например, в укажите UTF-8 при импорте)
Как экспортировать в CSV только выделенный диапазон, а не весь лист?

Стандартными средствами Excel это невозможно. Обходные пути:

  • 📋 Скопируйте диапазон на новый лист и экспортируйте его
  • 🔍 Используйте Power Query:
    1. Загрузите диапазон через Данные → Из таблицы/диапазона
    2. В редакторе Power Query оставьте только нужные столбцы
    3. Экспортируйте результат в CSV
  • 🐍 Python-скрипт с указанием диапазона: df = pd.read_excel('file.xlsx', sheet_name='List1', usecols='A:C')
  • В моём CSV числа с ведущими нулями (например, 00123) превращаются в 123. Как это исправить?

    Это происходит потому, что Excel автоматически удаляет ведущие нули у чисел. Решения:

    • 🔢 Преобразуйте столбец в текстовый формат перед экспортом (Формат ячеек → Текстовый)
    • 📌 Добавьте апостроф перед числом (например, '00123)
    • 🔄 Используйте формулу для принудительного форматирования: =ТЕКСТ(A1; "00000")

    После экспорта проверьте, что в CSV числа сохранены с ведущими нулями (они должны быть в кавычках: "00123").

    Можно ли в CSV сохранить формулы, а не только значения?

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

    • 📊 Сохраните оригинал в XLSX и передавайте оба файла (CSV для данных + XLSX для формул)
    • 🔄 Преобразуйте формулы в значения перед экспортом (Копировать → Специальная вставка → Значения)
    • 📁 Используйте другой формат, поддерживающий формулы (например, .ods для LibreOffice)