Как переделать файл Excel в CSV: подробное руководство с примерами

Почему CSV лучше Excel для обмена данными — и когда это не так

Формат CSV (Comma-Separated Values) стал де-факто стандартом для обмена табличными данными между разными программами. В отличие от Excel (.xls/.xlsx), где хранятся формулы, стили и макросы, CSV содержит только "сырые" данные — и это его главное преимущество. Когда вам нужно передать таблицу коллеге, загрузить её в базу данных или обработать скриптом на Python, CSV оказывается универсальным решением.

Но есть и подводные камни. Например, в CSV не сохраняются формулы — только их результаты на момент экспорта, а даты могут отображаться по-разному в зависимости от региональных настроек. Если ваш файл содержит сложные вычисления, объединённые ячейки или условное форматирование, после конвертации часть информации будет утеряна. Поэтому перед преобразованием всегда стоит задать себе два вопроса: какие данные критично важно сохранить и какая программа будет читать итоговый файл.

В этой статье мы разберём 5 проверенных способов конвертации — от встроенных инструментов Microsoft Excel и LibreOffice до онлайн-сервисов и автоматизации через Power Query. А ещё выясним, почему иногда после экспорта русские буквы превращаются в "кракозябры" и как это исправить.

Способ 1: Стандартный экспорт через Excel (быстро и надёжно)

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

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

Система выдаст предупреждение о возможной потере данных (например, о том, что в CSV не сохранятся несколько листов книги). Это нормально — просто подтвердите действие.

Убедиться, что активен нужный лист (в CSV экспортируется только текущий)|Проверьте отсутствие объединённых ячеек (они превратятся в пустые)|Закрепите заголовки, если они есть (в CSV нет функции "заморозки")|Удалите комментарии к ячейкам (они не экспортируются)-->

Главный нюанс: по умолчанию Excel использует кодировку ANSI (Windows-1251 для русского языка), что может привести к проблемам с кириллицей в некоторых программах. Если вам нужна кодировка UTF-8, читайте следующий раздел.

Способ 2: Экспорт в CSV с кодировкой UTF-8 (для корректного отображения русского)

Проблема "кракозябров" вместо русских букв возникает из-за несовпадения кодировок. Чтобы этого избежать, сохраните файл в UTF-8 — универсальной кодировке, которую понимают все современные программы. В Excel это делается так:

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

Для пользователей LibreOffice Calc (бесплатный аналог Excel) процесс ещё проще:

  1. Выберите Файл → Сохранить как.
  2. Укажите тип Текстовый CSV (.csv).
  3. В окне параметров отметьте:
    • Кодировка: Unicode (UTF-8)
    • Разделитель: Запятая
    • Текстовый разделитель: " (кавычка)

UTF-8 особенно важен, если ваш CSV будет обрабатываться скриптами на Python, загружаться в Google Sheets или импортироваться в базы данных типа MySQL. Без правильной кодировки русские символы превратятся в наборы типа ÐозÑниÑа.

Способ 3: Онлайн-конвертеры — когда под рукой нет Excel

Если вы работаете на компьютере без Microsoft Office или нуждаетесь в срочной конвертации, можно воспользоваться онлайн-сервисами. Они удобны для разовых задач, но не подходят для конфиденциальных данных — загружаемые файлы могут временно храниться на серверах.

Топ-3 проверенных сервиса:

  • 🔹 ConvertCSV — поддерживает пакетную обработку и настройку разделителей.
  • 🔹 Zamzar — конвертирует XLSX в CSV и отправляет результат на email.
  • 🔹 CloudConvert — позволяет выбрать кодировку и разделители.

Инструкция для CloudConvert (рекомендуем его за гибкость настроек):

  1. Перетащите файл .xlsx в окно браузера или выберите его через кнопку Select File.
  2. В разделе Convert to укажите CSV.
  3. Нажмите на шестерёнку ⚙️ рядом с форматом и настройте:
    • Delimiter: , (comma) или ; (semicolon)
    • Text delimiter: "
    • Encoding: UTF-8
    • Line breaks: Windows (CRLF) или Unix (LF)
  • Нажмите Convert и скачайте результат.
  • 📊 Какой онлайн-конвертер вы используете чаще?
    ConvertCSV
    Zamzar
    CloudConvert
    Другой
    Не пользуюсь онлайн-сервисами

    Обратите внимание: некоторые сервисы ограничивают размер файла (обычно до 50–100 МБ). Для больших таблиц лучше использовать офлайн-методы.

    Способ 4: Автоматизация через Power Query (для продвинутых пользователей)

    Если вам нужно регулярно конвертировать десятки файлов или применять к данным предварительную обработку (например, очистку или трансформацию), стоит освоить Power Query — инструмент ETL (Extract, Transform, Load), встроенный в Excel и Power BI.

    Пример: допустим, у вас есть папка с ежемесячными отчётами в формате .xlsx, и вам нужно экспортировать их в CSV с одинаковыми настройками. С Power Query это делается за 5 минут:

    1. Откройте пустую книгу Excel и перейдите на вкладку Данные → Получить данные → Из файла → Из папки.
    2. Укажите путь к папке с файлами и нажмите ОК.
    3. В окне предварительного просмотра выберите Трансформировать данные.
    4. Примените нужные преобразования (например, удаление пустых строк или замена разделителя тысяч).
    5. Нажмите Закрыть и загрузить в... и выберите Только создать подключение.
    6. Перейдите в Данные → Получить данные → Запустить и экспортируйте результаты в CSV.
    7. Преимущества метода:

      • 🔄 Обработка пакетов файлов за один раз.
      • 🛠️ Возможность очистки данных перед экспортом (удаление дубликатов, замена значений).
      • 📅 Автоматизация с помощью макросов VBA.
      Пример кода VBA для автоматического экспорта в CSV

      >

      Sub ExportToCSV()
      

      Dim ws As Worksheet

      Dim csvPath As String

      For Each ws In ThisWorkbook.Worksheets

      csvPath = "C:\Output\" & ws.Name & ".csv"

      ws.Copy

      ActiveWorkbook.SaveAs Filename:=csvPath, FileFormat:=xlCSVUTF8

      ActiveWorkbook.Close False

      Next ws

      End Sub

      Этот скрипт экспортирует каждый лист книги в отдельный CSV-файл с кодировкой UTF-8.

      Power Query требует некоторых навыков, но окупается при работе с большими объёмами данных. Например, если вам нужно ежемесячно конвертировать отчёты из в CSV для загрузки в Google Analytics, этот метод сэкономит часы ручной работы.

      Способ 5: Конвертация через Google Sheets (для совместной работы)

      Если ваша команда работает в Google Workspace, проще всего использовать Google Sheets для конвертации. Этот способ удобен тем, что:

      • 🌐 Файл сразу доступен по ссылке для совместного редактирования.
      • 🔄 История изменений сохраняется автоматически.
      • 📱 Можно экспортировать прямо с мобильного устройства.

    Пошаговая инструкция:

    1. Загрузите файл .xlsx в Google Диск (перетащите мышью или нажмите Создать → Загрузка файлов).
    2. Щёлкните по файлу правой кнопкой и выберите Открыть с помощью → Google Таблицы.
    3. В открывшейся таблице перейдите в Файл → Скачать → Значения, разделённые запятыми (.csv, текущий лист).

    Обратите внимание: Google Sheets по умолчанию экспортирует данные в кодировке UTF-8, поэтому проблемы с кириллицей возникают крайне редко. Однако здесь есть другой нюанс: если в ваших данных используются формулы с ссылками на другие листы, они превратятся в ошибки #ССЫЛКА!, так как в CSV экспортируется только текущий лист.

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

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

    Проблема Причина Решение
    Русские буквы отображаются как "кракозябры" Неправильная кодировка (ANSI вместо UTF-8) Сохраните файл в UTF-8 или откройте в Блокноте и пересохраните с нужной кодировкой
    Числа с ведущими нулями (например, 00123) становятся 123 CSV воспринимает такие данные как числа, а не текст Перед экспортом отформатируйте ячейки как текст или добавьте апостроф ('00123)
    Дата 01.12.2023 становится 12/1/2023 Разные региональные настройки (русский vs английский формат) Перед экспортом преобразуйте даты в текст с нужным форматом через функцию =ТЕКСТ(A1; "ДД.ММ.ГГГГ")
    Файл открывается в одной строке без разделителей Неправильный символ-разделитель (например, табуляция вместо запятой) Укажите явный разделитель при сохранении или откройте файл в Excel через Данные → Из текста

    Ещё одна типичная ошибка — экспорт объединённых ячеек. В CSV нет понятия "объединения", поэтому такие ячейки превратятся в пустые. Например:

    | Имя | Фамилия |

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

    | Иван | |

    | | Петров |

    В CSV это станет:

    Имя,Фамилия
    

    Иван,

    ,Петров

    Чтобы избежать проблемы, перед экспортом разъедините ячейки (выделите их и нажмите Главная → Объединить и поместить в центре → Отменить объединение).

    Когда CSV не подходит: альтернативные форматы

    CSV — не панацея. В некоторых случаях лучше использовать другие форматы:

    • 📊 JSON — если данные имеют иерархическую структуру (например, вложенные объекты). Подходит для API и веб-приложений.
    • 🗃️ XML — для обмена данными между корпоративными системами (например, и банковскими сервисами).
    • 📈 Parquet — для больших данных (big data) благодаря высокой скорости чтения и сжатию.
    • 📑 TSV (Tab-Separated Values) — если в данных много запятых (например, адреса или описания).

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

    {
    

    "product_id": 12345,

    "name": "Футболка",

    "attributes": [

    {"color": "красный", "size": "M"},

    {"color": "синий", "size": "L"}

    ]

    }

    Для перехода между форматами можно использовать:

    • 🔧 Pandas в Python (библиотека pandas.read_excel() и to_json()).
    • 🖥️ OpenRefine — инструмент для очистки и преобразования данных.
    • ☁️ Онлайн-конвертеры вроде ConvertCSV.

    FAQ: Ответы на частые вопросы

    Можно ли конвертировать CSV обратно в Excel без потери данных?

    Технически да, но формулы, форматирование и некоторые функции будут утеряны. В CSV сохраняются только "сырые" данные и простейшая структура (строки и столбцы). При обратном импорте в Excel:

    • 🔢 Числа и текст восстановятся полностью.
    • 📅 Даты могут отобразиться некорректно (зависит от региональных настроек).
    • 🎨 Цвета, шрифты и границы ячеек пропадут.

    Чтобы минимизировать потери, перед конвертацией в CSV сохраните оригинальный файл .xlsx.

    Почему после экспорта в CSV числа с точкой (например, 1.5) становятся датами (1 мая)?

    Это происходит из-за региональных настроек в Excel. В некоторых локалях (например, русской) точка воспринимается как разделитель даты, а не десятичный разделитель. Решения:

    1. Перед экспортом отформатируйте ячейки как текст.
    2. Используйте запятую в качестве десятичного разделителя (например, 1,5).
    3. В настройках Windows измените формат числа на Английский (США) (где разделитель — точка).
    Как экспортировать в CSV только выделенный диапазон, а не весь лист?

    В Excel нет прямой функции экспорта выделенного диапазона в CSV, но есть обходные пути:

    1. Скопировать в новый лист:
      1. Выделите нужный диапазон (например, A1:D100).
      2. Скопируйте его (Ctrl+C).
      3. Создайте новый лист и вставьте данные (Ctrl+V).
      4. Экспортируйте новый лист в CSV.
    2. Использовать Power Query:
      1. Загрузите диапазон в Power Query через Данные → Из таблицы/диапазона.
      2. Экспортируйте результат в CSV.

    В Google Sheets можно воспользоваться функцией =QUERY() для выборки данных перед экспортом.

    Какой разделитель лучше использовать: запятую или точку с запятой?

    Выбор разделителя зависит от целевой программы и данных:

    • Запятая (,): стандарт для большинства приложений (например, Python Pandas, MySQL).
    • Точка с запятой (;): предпочтительна, если в данных есть запятые (например, адреса или описания товаров). Популярна в Европе.
    • Табуляция (\t): используется в TSV-файлах, удобна для данных с множеством разделителей.

    В Excel при сохранении в CSV разделитель определяется региональными настройками: для России по умолчанию используется ;, для США — ,. Чтобы изменить его, придётся использовать Power Query или онлайн-конвертеры.

    Как автоматизировать конвертацию сотен файлов XLSX в CSV?

    Для пакетной обработки подойдут:

    • 🐍 Скрипт на Python:
      import pandas as pd
      

      import os

      folder = "C:/Input/"

      for file in os.listdir(folder):

      if file.endswith(".xlsx"):

      df = pd.read_excel(os.path.join(folder, file))

      df.to_csv(f"C:/Output/{file.replace('.xlsx', '.csv')}", index=False, encoding='utf-8')

      Установите библиотеки: pip install pandas openpyxl.

    • 📁 PowerShell (Windows):
      $files = Get-ChildItem "C:\Input\*.xlsx"
      

      foreach ($file in $files) {

      $excel = New-Object -ComObject Excel.Application

      $workbook = $excel.Workbooks.Open($file.FullName)

      $workbook.SaveAs($file.FullName.Replace(".xlsx", ".csv"), 6) # 6 = CSV-format

      $excel.Quit()

      }

    • 🤖 Автоматизация через Zapier/Integromat: настройте триггер "Новый файл в папке" → действие "Конвертировать в CSV".

    Для больших объёмов (тысячи файлов) рекомендуем использовать Apache NiFi или Talend — инструменты для ETL-процессов.