Как перевести Excel в формат XLS: 5 проверенных способов с сохранением данных

Файлы Excel в формате .xlsx (по умолчанию с 2007 года) не открываются в устаревших версиях программы или сторонних системах, требующих .xls. Проблема возникает при попытке загрузить таблицу в 1C:Предприятие 8.2, старые бухгалтерские программы или корпоративные базы данных, где поддерживается только бинарный формат XLS (Excel 97-2003). Преобразование занимает 1-2 минуты, но требует учета ограничений: в .xls не сохраняются таблицы свыше 65 536 строк, некоторые современные функции (например, XLOOKUP) и условное форматирование с градиентами.

Самый быстрый способ — использовать встроенный экспорт в Microsoft Excel (версии 2010 и новее). Однако если у вас Excel 2007 или файлы повреждены, потребуются обходные пути: онлайн-конвертеры, LibreOffice, или даже макрос VBA для пакетной обработки. Ниже разобраны все актуальные методы с учетом нюансов совместимости и безопасности данных.

1. Сохранение через «Файл → Сохранить как» в Excel

Стандартный метод работает в Excel 2010–2026 и Microsoft 365. Он подходит для разовых конверсий небольших файлов (до 10 МБ). Важно: при сохранении в .xls программа автоматически проверяет таблицу на совместимость и выдает предупреждение о возможной потере данных.

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

  1. Откройте файл в Excel.
  2. Перейдите в меню Файл → Сохранить как.
  3. В поле «Тип файла» выберите Книга Excel 97-2003 (*.xls).
  4. Нажмите Сохранить и подтвердите преобразование в окне совместимости.

Если опция Книга Excel 97-2003 отсутствует, значит:

  • 🔹 У вас Excel Starter или Excel Online — эти версии не поддерживают сохранение в .xls.
  • 🔹 Файл защищен паролем или имеет ограничения на редактирование (нужно снять защиту через Рецензирование → Снять защиту листа).
  • 🔹 Таблица содержит несовместимые элементы (например, сводные таблицы на основе модели данных).

Убедитесь, что в файле нет сводных таблиц с более чем 256 полями|

Проверьте количество строк — в XLS максимум 65 536 (в XLSX — 1 048 576)|

Удалите функции, добавленные после 2003 года (например, IFS, TEXTJOIN)|

Снимите защиту листа, если она установлена

-->

2. Онлайн-конвертеры: быстрый способ без установки ПО

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

  • 🔹 Максимальный размер файла: 50–100 МБ (на Zamzar — до 50 МБ, на CloudConvert — до 1 ГБ для зарегистрированных пользователей).
  • 🔹 Конфиденциальность: файлы удаляются с серверов через 24 часа, но для чувствительных данных лучше использовать офлайн-методы.
  • 🔹 Ограничения формата: не все сервисы сохраняют макросы (.xlsm.xls возможен только через Excel).

Лучшие сервисы для конвертации:

Сервис Макс. размер файла Сохраняет макросы Требует email
Zamzar 50 МБ ❌ Нет ✅ Да
CloudConvert 1 ГБ* ❌ Нет ❌ Нет
Convertio 100 МБ ❌ Нет ❌ Нет

* Для файлов >100 МБ требуется регистрация.

⚠️ Внимание: Онлайн-конвертеры могут искажать формулы с региональными настройками (например, ; вместо , в качестве разделителя аргументов). Перед загрузкой проверьте настройки языка в Файл → Параметры → Дополнительно → Параметры формул.

3. Конвертация через LibreOffice Calc (бесплатная альтернатива)

LibreOffice Calc — бесплатный аналог Excel, который поддерживает сохранение в .xls без ограничений по количеству строк (но с предупреждением о совместимости). Метод подходит для пользователей Linux или тех, у кого нет лицензионного Microsoft Office.

Инструкция:

  1. Установите LibreOffice с официального сайта.
  2. Откройте файл .xlsx в Calc.
  3. Перейдите в Файл → Сохранить как.
  4. Выберите тип файла Microsoft Excel 97 (*.xls).
  5. Нажмите Сохранить и подтвердите экспорт.

Особенности метода:

  • 🔹 Сохраняет большинство формул, но может изменить синтаксис (например, INDEX(MATCH()) преобразуется в ИНДЕКС(ПОИСКПОЗ()) на русском языке).
  • 🔹 Не поддерживает некоторые функции Excel, например LET или динамические массивы.
  • 🔹 Внешние связи (ссылающиеся на другие файлы) могут разорваться.

4. Пакетная конвертация через VBA-макрос

Если нужно преобразовать десятки файлов, используйте макрос для Excel. Он автоматически сохраняет все книги из папки в формате .xls, игнорируя несовместимые элементы. Скрипт работает в Excel 2010–2026:

Sub ConvertToXLS()

Dim folderPath As String

Dim fileName As String

Dim wb As Workbook

' Укажите путь к папке с файлами

folderPath = "C:\Путь\к\папке\" & "\"

fileName = Dir(folderPath & "*.xlsx")

Do While fileName <> ""

Set wb = Workbooks.Open(folderPath & fileName)

wb.SaveAs Replace(wb.FullName, ".xlsx", ".xls"), FileFormat:=xlExcel8

wb.Close SaveChanges:=False

fileName = Dir()

Loop

End Sub

Как использовать:

  1. Откройте Excel и нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Измените путь C:\Путь\к\папке\ на актуальный.
  4. Запустите макрос кнопкой F5.
⚠️ Внимание: Макрос не обрабатывает файлы с защитой паролем. Если в папке есть такие книги, скрипт остановится с ошибкой Runtime Error 1004. Чтобы избежать этого, предварительно снимите защиту или исключите файлы из обработки.

Сохранение через "Файл → Сохранить как"|

Онлайн-конвертеры|

LibreOffice Calc|

VBA-макрос для пакетной обработки|

5. Конвертация через Power Query (для больших файлов)

Если файл превышает 65 536 строк, его нельзя сохранить в .xls целиком. В этом случае используйте Power Query для разбивки данных на несколько листов или файлов:

Алгоритм действий:

  1. Откройте файл в Excel и перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. В редакторе Power Query разбейте таблицу на части по 60 000 строк (Домой → Разделить столбец → По количеству строк).
  3. Экспортируйте каждый фрагмент в отдельный файл .xls через Файл → Экспортировать.

Преимущества метода:

  • 🔹 Сохраняет все данные без потерь (в отличие от обрезки до 65 536 строк).
  • 🔹 Позволяет фильтровать ненужные столбцы перед конвертацией.
  • 🔹 Автоматизирует процесс для регулярных отчетов.
Как разбить файл на несколько XLS без Power Query

1. Отсортируйте данные по ключевому столбцу (например, по дате).

2. Скопируйте первые 60 000 строк в новый файл и сохраните как .xls.

3. Повторите для следующих 60 000 строк.

4. Объедините файлы в целевой системе (например, в 1C через обработку "Загрузка данных из Excel").

6. Проблемы после конвертации и их решения

Даже после успешного преобразования в .xls могут возникнуть ошибки. Рассмотрим типичные случаи и способы их устранения:

Проблема Причина Решение
Формулы отображаются как текст Несовместимый синтаксис или региональные настройки Замените ; на , вручную или через Найти и заменить (Ctrl+H)
Искаженное форматирование ячеек В .xls нет поддержки условного форматирования с градиентами Упростите форматирование до базовых цветов или удалите правила
Ошибка #ИМЯ? в формулах Функции, добавленные после 2003 года (например, IFERROR) Замените на аналоги: IF(ISERROR(...)) вместо IFERROR
Не открывается в старой версии Excel Файл поврежден при конвертации Попробуйте сохранить как .xls еще раз или используйте LibreOffice

Если после конвертации файл ведет себя нестабильно (например, медленно открывается или выдает ошибки при сохранении), выполните следующие шаги:

  1. Откройте файл в Excel и сохраните его обратно в .xlsx.
  2. Удалите все ненужные листы (оставив только данные).
  3. Повторите конвертацию в .xls.

✅ Сводных таблиц с более чем 256 полями

✅ Формул с динамическими массивами (например, FILTER, UNIQUE)

✅ Условного форматирования с более чем 3 условиями

✅ Внешних ссылок на другие книги

-->

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

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

Нет, если в файле:

  • 🔹 Больше 65 536 строк на листе (лишние данные будут обрезаны).
  • 🔹 Используются функции, добавленные после 2003 года (они преобразуются в ошибки #ИМЯ?).
  • 🔹 Применено условное форматирование с градиентами или значками (будет упрощено).

Для критичных данных рекомендуется разбить файл на части или использовать Power Query.

Почему при сохранении в XLS пропадают некоторые листы?

Это происходит, если:

  • 🔹 Листы содержат таблицы с более чем 65 536 строк (они обрезаются).
  • 🔹 Имена листов длиннее 31 символа (в .xls действует это ограничение).
  • 🔹 Листы скрыты с уровнем защиты "очень скрытый" (xlSheetVeryHidden).

Перед конвертацией переименуйте листы и проверьте их размер.

Как конвертировать XLSM (с макросами) в XLS?

Формат .xlsm нельзя напрямую сохранить как .xls с сохранением макросов, так как в .xls используется устаревший язык VBA 6.0. Варианты:

  1. Скопируйте макросы в отдельный файл .bas и импортируйте их в целевую систему вручную.
  2. Конвертируйте макросы в надстройки (.xla) для совместимости со старыми версиями Excel.
  3. Используйте Excel 2003 для открытия .xlsm и сохранения как .xls (если возможно).
Можно ли автоматизировать конвертацию для сотен файлов?

Да, для этого подходят:

  • 🔹 VBA-макрос (пример приведен в разделе 4).
  • 🔹 PowerShell-скрипт с использованием Excel COM-объекта:
$Excel = New-Object -ComObject Excel.Application

$Excel.Visible = $false

Get-ChildItem "C:\Путь\к\файлам\*.xlsx" | ForEach-Object {

$Workbook = $Excel.Workbooks.Open($_.FullName)

$Workbook.SaveAs($_.FullName.Replace(".xlsx", ".xls"), 56) # 56 = xlExcel8

$Workbook.Close()

}

$Excel.Quit()

⚠️ Для работы скрипта требуется установленный Excel и права на выполнение PowerShell-скриптов.

Какие альтернативные форматы можно использовать вместо XLS?

Если целевая система не поддерживает .xls, рассмотрите:

  • 🔹 .csv — для табличных данных без формул (поддерживается везде, но теряется форматирование).
  • 🔹 .ods — открытый формат LibreOffice (совместим с Excel, но может искажать сложные формулы).
  • 🔹 .dbf — для загрузки в 1C или старые бухгалтерские программы.
  • 🔹 .xml — если нужна структура данных без привязки к Excel.

Для конвертации в эти форматы используйте Файл → Сохранить как в Excel или LibreOffice.