Почему CSV остаётся актуальным в 2026 году
Формат CSV (Comma-Separated Values) появился ещё в 1970-х, но до сих пор остаётся стандартом для обмена табличными данными. В отличие от Excel с его сложными формулами и оформлением, CSV хранит только сырые данные — и это его главное преимущество. Такие файлы открываются в любом текстовом редакторе, легко импортируются в базы данных и обрабатываются скриптами на Python, R или JavaScript.
Сохранение из Excel в CSV кажется простой операцией, но здесь кроются подводные камни: неправильная кодировка (UTF-8 vs Windows-1251), потеря форматирования, проблемы с разделителями (запятая vs точка с запятой). Например, если вы экспортируете данные для Google Ads или 1С, неправильный разделитель может привести к ошибкам загрузки. В этой статье разберём все нюансы — от базовых действий до решения типичных проблем.
Особенно важно понимать разницу между CSV (разделитель — запятая) и CSV (разделитель — точка с запятой). Первый стандарт для англоязычных систем, второй — для европейских локалей, включая русскую версию Windows. Если вы передаёте файл коллеге за границей, лучше уточните заранее, какой формат ему нужен.
Способ 1: Сохранение через «Файл → Сохранить как» (классический метод)
Это самый очевидный путь, который работает во всех версиях Microsoft Excel — от Excel 2003 до Microsoft 365. Алгоритм простой, но есть нюансы с настройками:
- Откройте ваш файл в Excel.
- Перейдите в меню
Файл → Сохранить как(или нажмитеF12). - В выпадающем списке «Тип файла» выберите:
- 📑 CSV (разделители — запятые) (*.csv) — для международного стандарта;
- 📑 CSV (разделители — точки с запятой) (*.csv) — для российских и европейских систем;
- 📑 CSV (Macintosh) (*.csv) — если файл будет использоваться на MacOS;
- 📑 CSV (MS-DOS) (*.csv) — для устаревших систем (кодировка
CP866).
Сразу после сохранения Excel покажет предупреждение: «В выбранном формате поддерживается только активный лист». Это означает, что в CSV попадёт только текущая вкладка — остальные листы будут проигнорированы. Если вам нужно экспортировать несколько листов, придётся сохранять их по отдельности или использовать макросы (об этом ниже).
⚠️ Внимание: При сохранении в CSV теряются все формулы — в файле останутся только рассчитанные значения. Если вам нужны формулы, рассмотрите формат XLSX или ODS.
Убедитесь, что активен нужный лист|Проверьте данные на наличие запятых в тексте (они могут сломать разделители)|Выберите правильную кодировку (UTF-8 для международных систем)|Закройте все связанные книги, чтобы избежать ошибок блокировки-->
Способ 2: Экспорт с помощью Power Query (для больших данных)
Если вы работаете с большими таблицами (100 000+ строк), стандартное сохранение через «Файл → Сохранить как» может занять много времени или даже завершиться ошибкой. В этом случае поможет Power Query — инструмент для обработки данных, встроенный в Excel 2016 и новее.
Инструкция:
- Выделите диапазон данных (или весь лист).
- Перейдите на вкладку
Данные → Получение данных → Из таблицы/диапазона. - В открывшемся окне Power Query нажмите
Файл → Закрыть и загрузить → Закрыть и загрузить в.... - Выберите
Только создать подключение. - В правой панели
Запросыкликните правой кнопкой по вашему запросу и выберитеЭкспортировать данные. - Укажите формат CSV и путь для сохранения.
Преимущество этого метода — возможность предварительной обработки данных: удаление дубликатов, фильтрация, замена значений. Например, если в ваших данных есть текстовые поля с запятыми (например, адреса), вы можете заменить их на точки с запятой прямо в Power Query, чтобы избежать проблем с разделителями.
Способ 3: Сохранение в CSV с правильной кодировкой (UTF-8 vs ANSI)
Одна из самых распространённых проблем при работе с CSV — кракозябры вместо русского текста. Это происходит из-за неверной кодировки. По умолчанию Excel сохраняет CSV в кодировке ANSI (для русского языка — Windows-1251), но многие программы ожидают UTF-8.
Чтобы сохранить CSV в UTF-8:
- Сохраните файл в формате CSV как обычно (через
Файл → Сохранить как). - Закройте Excel.
- Откройте сохранённый файл в Блокноте (Notepad++ или VS Code подойдёт лучше).
- Выберите
Файл → Сохранить как, в поле «Кодировка» укажитеUTF-8. - Сохраните файл с тем же именем (заменив старую версию).
Для автоматизации этого процесса можно использовать VBA-макрос:
Sub SaveAsUTF8CSV()
Dim ws As Worksheet
Dim savePath As String
savePath = "C:\Temp\export.csv" ' Укажите свой путь
Set ws = ActiveSheet
ws.Copy
ActiveWorkbook.SaveAs Filename:=savePath, FileFormat:=xlCSVUTF8, CreateBackup:=False
ActiveWorkbook.Close False
End Sub
Важно: В Excel 2016 и новее появился формат CSV UTF-8 (разделители — запятые) (*.csv) в списке типов файлов. Если он доступен — используйте его, чтобы избежать ручной конвертации.
| Кодировка | Поддержка русского | Совместимость | Когда использовать |
|---|---|---|---|
UTF-8 |
✅ Полная | Все современные системы | Для международного обмена данными |
Windows-1251 (ANSI) |
✅ Полная | Windows, 1С, устаревшие программы | Для локального использования в России |
UTF-16 |
✅ Полная | Ограниченная (не все программы поддерживают) | Для сложных символов (иероглифы, математические знаки) |
KOI8-R |
✅ Полная | Устаревшие Unix-системы | Только для специфических legacy-систем |
Способ 4: Экспорт нескольких листов в отдельные CSV-файлы
Если ваша книга Excel содержит несколько листов, а вам нужно экспортировать каждый из них в отдельный CSV, ручное сохранение займёт много времени. Автоматизировать процесс можно с помощью VBA-макроса:
Sub ExportSheetsToCSV()
Dim ws As Worksheet
Dim folderPath As String
folderPath = "C:\Temp\" ' Укажите папку для сохранения
If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
For Each ws In ThisWorkbook.Worksheets
ws.Copy
ActiveWorkbook.SaveAs Filename:=folderPath & ws.Name & ".csv", FileFormat:=xlCSV
ActiveWorkbook.Close False
Next ws
MsgBox "Экспорт завершён!", vbInformation
End Sub
Как это работает:
- Макрос перебирает все листы в книге.
- Для каждого листа создаёт новую книгу и сохраняет её в CSV.
- Имя файла соответствует имени листа (например,
Лист1.csv,Отчёт.csv). - 📊 LibreOffice Calc: Аналог Excel с открытым исходным кодом. Поддерживает экспорт в CSV с выбором кодировки и разделителя. Чтобы сохранить файл, выберите
Файл → Сохранить как → Текстовый CSV (.csv)и настройте параметры в дополнительном окне. - 📊 Google Sheets: Онлайн-редактор таблиц от Google. Для экспорта перейдите в
Файл → Скачать → Значения, разделённые запятыми (.csv). Обратите внимание, что Google Sheets всегда сохраняет CSV в кодировкеUTF-8. - 📊 Pandas (Python): Если вы работаете с данными программно, библиотека Pandas позволяет экспортировать DataFrame в CSV с полным контролем над параметрами:
import pandas as pddf = pd.read_excel('input.xlsx')
df.to_csv('output.csv', sep=';', encoding='utf-8', index=False)
- 📊 Notepad++ с плагином CSV Lint: Полезно для проверки и исправления CSV-файлов. Плагин подсвечивает ошибки в структуре (например, несовпадение количества столбцов в строках).
- 🔍 Данные в одной ячейке распадаются на несколько столбцов: Это происходит, если в тексте есть запятые (для CSV с запятыми) или точки с запятой (для CSV с точкой с запятой). Решение — заключите такие ячейки в двойные кавычки или замените разделители в данных на нейтральные символы (например,
→). - 🔍 Даты превращаются в числа: Excel хранит даты как числовые значения (количество дней с 1900 года). При экспорте в CSV они преобразуются в формат по умолчанию (например,
44197вместо01.01.2021). Решение — предварительно отформатируйте столбец с датами как текст (Формат ячеек → Текстовый). - 🔍 Потеря ведущих нулей: Номера телефонов или почтовые индексы (например,
00123) в CSV могут превратиться в123. Решение — снова форматТекстовыйили добавление апострофа перед числом ('00123). - 🔍 Файл не открывается в 1С или другой программе: Чаще всего проблема в кодировке или разделителях. Проверьте, какой формат ожидает программа (например, 1С обычно требует
Windows-1251и точку с запятой).
Если имена листов содержат запрещённые символы (например, / \ * ?), макрос выдаст ошибку. Чтобы этого избежать, предварительно переименуйте листы, используя только буквы, цифры и подчёркивания.
⚠️ Внимание: При экспорте листов с одинаковыми именами (например, Лист1 (2)) макрос перезапишет файлы. Чтобы этого избежать, добавьте в код строку для проверки уникальности имён.
Сохранение через "Файл → Сохранить как"|Power Query|VBA-макросы|Ручная конвертация в Блокноте|Другой способ-->
Способ 5: Альтернативные программы для экспорта в CSV
Если Excel по какой-то причине не подходит (например, у вас MacOS или вы работаете с OpenOffice), можно использовать альтернативные инструменты:
Каждый из этих инструментов имеет свои плюсы. Например, Google Sheets удобен для совместной работы, а Pandas незаменим при обработке больших данных. Если вам нужно сохранить CSV с нестандартными разделителями (например, табуляция или вертикальная черта), LibreOffice Calc предоставляет больше гибкости, чем Excel.
Как сохранить CSV с кастомным разделителем в LibreOffice
В окне экспорта выберите "Использовать текстовый разделитель" и укажите нужный символ (например, "|"). Также можно настроить текстовый ограничитель (например, двойные кавычки для полей с разделителями внутри).
Типичные ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при сохранении CSV. Вот самые распространённые ошибки и способы их решения:
Если вы часто сталкиваетесь с этими проблемами, создайте шаблон Excel-файла с предварительно отформатированными столбцами (текстовый формат для дат, номеров телефонов и т. д.). Это сэкономит время при повторном экспорте.
FAQ: Частые вопросы о сохранении Excel в CSV
Можно ли сохранить в CSV несколько листов одновременно?
Нет, стандартные средства Excel позволяют экспортировать только активный лист. Для экспорта нескольких листов используйте VBA-макрос (пример приведён выше) или сохраняйте каждый лист вручную.
Почему в CSV вместо русского текста отображаются кракозябры?
Это проблема кодировки. По умолчанию Excel сохраняет CSV в ANSI (для русского — Windows-1251). Если программа, куда вы загружаете файл, ожидает UTF-8, пересохраните файл в нужной кодировке через Блокнот или Notepad++.
Как сохранить формулы в CSV?
Невозможно. Формат CSV предназначен только для хранения данных, без формул, форматирования или макросов. Если нужно сохранить формулы, используйте формат XLSX или ODS.
Можно ли в CSV использовать разделитель, отличный от запятой или точки с запятой?
Да, но не через стандартное сохранение в Excel. Варианты:
- Используйте LibreOffice Calc — там можно указать любой разделитель.
- Экспортируйте данные в CSV с запятой, а затем замените её на нужный символ через Блокнот (операция «Заменить»).
- Напишите скрипт на Python с библиотекой Pandas, где укажите параметр
sep='|'(или любой другой символ).
Почему при открытии CSV в Excel данные смещаются по столбцам?
Это происходит, если в данных есть символы, совпадающие с разделителем. Например, в CSV с разделителем-запятой текст "Иванов, Иван" будет воспринят как два отдельных значения. Решения:
- Заключите такие поля в двойные кавычки (
"Иванов, Иван"). - Используйте другой разделитель (например, точку с запятой).
- Замените запятые в данных на другой символ (например,
"Иванов; Иван").