EXCEL в CSV: как конвертировать качественно и быстро онлайн
- CSV — это текстовый формат, в котором данные разделены запятыми; он не хранит форматирование, формулы и макросы.
- При конвертации Excel в CSV через «Сохранить как...» теряются все листы, кроме активного — сохраняется только текущий лист.
- Excel по умолчанию использует разделитель точку с запятой для русскоязычной локали (из-за запятой в числах).
- Онлайн-конвертеры, например Excel в CSV, автоматически определяют разделитель и кодировку, что снижает риск ошибок.
- Для сложных преобразований (выбор листов, настройка кодировки) лучше использовать скрипты на Python или утилиту ssconvert.
- Сохранение через Excel: быстро, но с ограничениями
- Командная строка и скрипты: полный контроль
- Онлайн-конвертер: для разовых задач и нестандартных файлов
- Пошаговый пример конвертации заказа (с цифрами)
- Подводные камни: даты, числа и экранирование
- Когда CSV не подходит: альтернативы
- Автоматизация: конвертация большого количества файлов
- Частые ошибки и их решение
Сохранение через Excel: быстро, но с ограничениями
Самый очевидный способ — открыть файл в Microsoft Excel или LibreOffice Calc и выбрать «Файл → Сохранить как → CSV (разделители — запятые)». На 2026 год этот метод всё ещё работает, но у него есть важные особенности.
- Сохраняется только активный лист. Если в книге 5 листов, придётся сохранять каждый отдельно или использовать макрос.
- Теряются формулы, форматирование, объединённые ячейки. CSV хранит только «сырые» текстовые значения (результаты вычислений).
- Проблемы с разделителями. Для русскоязычной версии Excel по умолчанию стоит точка с запятой, а не запятая. Если программа-приёмник ожидает запятую, данные «склеятся».
- Кодировка. По умолчанию Excel сохраняет в ANSI (Windows-1251), что приводит к кракозябрам в современных системах. Нужно явно выбирать UTF-8.
Чтобы избежать проблем, в Excel 2021+ при сохранении CSV найдите пункт «Сервис → Параметры веб-документа → Кодировка» и выберите Юникод (UTF-8). Либо используйте современные онлайн-инструменты, которые делают это автоматически, например Excel в CSV.
Командная строка и скрипты: полный контроль
Если нужно конвертировать десятки файлов или автоматизировать процесс, используйте командные инструменты. Рассмотрим два популярных варианта.
ssconvert (из пакета Gnumeric)
Утилита ssconvert работает в Windows (через WSL или Cygwin) и Linux. Пример команды для конвертации всех листов в отдельные CSV:
ssconvert --export-type=Gnumeric_stf:stf_assistant myfile.xlsx myfile.csvПо умолчанию создаётся один CSV с первым листом. Чтобы получить CSV для каждого листа, используйте:
ssconvert -O "separator=; sheet=1" myfile.xlsx sheet1.csv
ssconvert -O "separator=, sheet=2" myfile.xlsx sheet2.csvPython + openpyxl (рекомендую)
Скрипт ниже конвертирует все листы в отдельные CSV с возможностью выбора разделителя и кодировки:
import openpyxl
import csv
import os
wb = openpyxl.load_workbook('myfile.xlsx')
for sheet_name in wb.sheetnames:
ws = wb[sheet_name]
with open(f'{sheet_name}.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f, delimiter=',')
for row in ws.iter_rows(values_only=True):
writer.writerow(row)
print('Готово!')| Параметр | Описание | Пример |
|---|---|---|
| delimiter | Разделитель между значениями | ',' или ';' |
| encoding | Кодировка выходного файла | 'utf-8' или 'cp1251' |
| values_only | Брать результаты формул, а не сами формулы | True |
Онлайн-конвертер: для разовых задач и нестандартных файлов
Когда нет времени возиться с настройками или нужно быстро конвертировать файл без установки софта, выручает онлайн-конвертер. На 2026 год такие сервисы работают прямо в браузере, не отправляя данные на сервер (или с шифрованием).
- Выбор листов. Можно экспортировать конкретный лист или все сразу — в отличие от Excel.
- Автоопределение разделителя. Большинство сервисов сами подбирают запятую или точку с запятой в зависимости от содержимого.
- Настройка кодировки. Всегда выбирайте UTF-8 для совместимости с современными системами.
Наш сайт предлагает удобный Excel в CSV, который позволяет загрузить файл и за несколько секунд получить готовый CSV. Если вам нужно преобразовать данные в другой формат, например Excel в JSON или Excel в HTML — тоже можно.
Важно: Если в Excel есть макросы, VBA-проекты или сложные сводные таблицы, они не попадут в CSV. CSV — это только данные.
Пошаговый пример конвертации заказа (с цифрами)
Допустим, у нас есть Excel-файл с заказами клиентов за июнь 2026 года. Нам нужно передать его в CRM, которая принимает только CSV. Рассмотрим процесс на примере таблицы.
| Дата | Клиент | Сумма, ₽ | Статус |
|---|---|---|---|
| 01.06.2026 | Иванов | 12 500 | Оплачен |
| 02.06.2026 | Петров | 8 200 | В обработке |
| 03.06.2026 | Сидоров | 22 000 | Отменён |
Шаг 1. Открываем файл и проверяем, нет ли объединённых ячеек — они дадут пустые строки в CSV.
Шаг 2. Используем Excel в CSV: загружаем файл, выбираем лист «Июнь», разделитель — запятая, кодировка — UTF-8. Нажимаем «Конвертировать».
Шаг 3. Получаем CSV-файл:
Дата,Клиент,Сумма,Статус
01.06.2026,Иванов,12500,Оплачен
02.06.2026,Петров,8200,В обработке
03.06.2026,Сидоров,22000,ОтменёнШаг 4. Импортируем в CRM. Если CRM ожидает точку с запятой, повторяем конвертацию с разделителем ;. Если числа отображаются без пробелов — всё верно, CSV не хранит форматирование чисел.
- 11. Проверить данные
Удалить объединённые ячейки, пустые строки, привести даты к тексту.
- 22. Выбрать инструмент
Excel, онлайн-конвертер или Python-скрипт.
- 33. Настроить разделитель
Обычно запятая или точка с запятой.
- 44. Задать кодировку
UTF-8 для совместимости.
- 55. Сохранить и проверить
Открыть CSV в блокноте: каждая строка — одна запись.
Подводные камни: даты, числа и экранирование
При конвертации Excel в CSV часто возникают неочевидные проблемы. Разберём основные.
- Даты. Excel хранит даты как числа (количество дней с 1900 года). При сохранении в CSV они могут превратиться в числа, если не настроить формат. Лучше предварительно перевести даты в текст (например, через формулу
=TEXT(A1,"DD.MM.YYYY")). - Числа с разделителями. В Excel число 12 500 (с пробелом) — это текст. Если просто скопировать, в CSV может попасть «12 500» как строка. Используйте числовой формат без пробелов.
- Экранирование запятых. Если в тексте ячейки есть запятая, CSV-парсер может сломаться. По стандарту такие значения берутся в двойные кавычки. Excel делает это автоматически, но если конвертируете вручную — следите за кавычками.
- Пустые строки. Если в конце файла есть пустые строки, они попадут в CSV. Удалите лишние строки перед конвертацией.
Чтобы проверить корректность CSV, откройте его в блокноте — вы должны увидеть строки с чётким разделением. Если данные «съехали», вернитесь к настройкам разделителя.
✅ Чек-лист для конвертации без ошибок
0 из 8
Когда CSV не подходит: альтернативы
CSV универсален, но есть случаи, когда он неудобен. Рассмотрите альтернативы:
- JSON — если данные имеют вложенную структуру (например, заказ со списком товаров). Используйте Excel в JSON.
- HTML — если нужно встроить таблицу на веб-страницу. Конвертер Excel в HTML создаст чистый код с таблицей.
- TSV — если в данных много запятых (лучше использовать табуляцию).
Если вам нужно сохранить форматирование (цвета, шрифты) — используйте PDF или прямое копирование из Excel.
Автоматизация: конвертация большого количества файлов
Для массовой конвертации десятков Excel-файлов в CSV используйте скрипты. Пример на Python с библиотекой glob:
import openpyxl
import csv
import glob
import os
for xlsx_file in glob.glob('*.xlsx'):
wb = openpyxl.load_workbook(xlsx_file)
for sheet_name in wb.sheetnames:
ws = wb[sheet_name]
csv_filename = f'{os.path.splitext(xlsx_file)[0]}_{sheet_name}.csv'
with open(csv_filename, 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f, delimiter=';')
for row in ws.iter_rows(values_only=True):
writer.writerow(row)
print('Все файлы сконвертированы')Запустите скрипт в папке с XLSX-файлами — он создаст для каждого листа отдельный CSV. Убедитесь, что кодировка и разделитель соответствуют требованиям принимающей системы.
Частые ошибки и их решение
Собрали типичные проблемы при конвертации Excel в CSV и способы их исправить.
| Ошибка | Причина | Решение |
|---|---|---|
| Кракозябры вместо текста | Неверная кодировка | Сохраняйте в UTF-8 |
| Числа отображаются как даты | Excel хранит даты числом | Формула =TEXT() превращает дату в текст |
| Данные в одной колонке | Разделитель не совпадает | Измените запятую на точку с запятой в настройках |
| Пропущенные значения в начале строк | Объединённые ячейки | Отмените объединение, заполните пустые |
Если после конвертации в CSV данные выглядят не так, как в Excel, проверьте исходную таблицу на наличие скрытых символов (неразрывные пробелы, переносы строк).
🧮 Посчитайте сами — инструменты по теме
🧭 Разделы по теме
Частые вопросы
Как конвертировать Excel в CSV без потери формул?
CSV не хранит формулы. Перед конвертацией скопируйте формулы как значения (Ctrl+C → Ctrl+V > Вставить значения). Или сохраните исходный XLSX для редактирования.
Почему в CSV вместо чисел отображаются даты?
Excel хранит даты как числа. При конвертации они могут превратиться в числа. Используйте формулу =TEXT(A1,"DD.MM.YYYY") для преобразования даты в текст перед экспортом.
Как изменить разделитель в CSV?
В Excel при сохранении CSV выберите «Файл → Параметры → Дополнительно → Разделитель списка» (для Windows). В онлайн-конвертерах обычно есть явный выбор разделителя.
Как конвертировать несколько листов Excel в CSV?
По умолчанию Excel сохраняет только активный лист. Используйте макрос VBA, Python скрипт с openpyxl или онлайн-конвертер, поддерживающий множественные листы.
Можно ли конвертировать Excel в CSV без потери форматирования?
CSV не хранит форматирование. Если нужны цвета, шрифты, границы — используйте PDF или сохраните как XLSX.
Какая кодировка лучше для CSV?
UTF-8 (с BOM для Excel) — наиболее совместимая. Для русскоязычных систем может потребоваться Windows-1251.
Что делать, если в CSV кракозябры?
Откройте файл в блокноте и пересохраните в кодировке UTF-8. Либо укажите кодировку при импорте (например, utf-8).
Источники и нормативные документы
- Microsoft Support: Преобразование листа Excel в CSV
- MDN: CSV MIME type
- openpyxl documentation
- Python CSV module