Файлы 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 программа автоматически проверяет таблицу на совместимость и выдает предупреждение о возможной потере данных.
Пошаговая инструкция:
- Откройте файл в Excel.
- Перейдите в меню
Файл → Сохранить как. - В поле «Тип файла» выберите
Книга Excel 97-2003 (*.xls). - Нажмите
Сохранитьи подтвердите преобразование в окне совместимости.
Если опция Книга 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.
Инструкция:
- Установите LibreOffice с официального сайта.
- Откройте файл
.xlsxв Calc. - Перейдите в
Файл → Сохранить как. - Выберите тип файла
Microsoft Excel 97 (*.xls). - Нажмите
Сохранитьи подтвердите экспорт.
Особенности метода:
- 🔹 Сохраняет большинство формул, но может изменить синтаксис (например,
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
Как использовать:
- Откройте Excel и нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Измените путь
C:\Путь\к\папке\на актуальный. - Запустите макрос кнопкой
F5.
⚠️ Внимание: Макрос не обрабатывает файлы с защитой паролем. Если в папке есть такие книги, скрипт остановится с ошибкой Runtime Error 1004. Чтобы избежать этого, предварительно снимите защиту или исключите файлы из обработки.
Сохранение через "Файл → Сохранить как"|
Онлайн-конвертеры|
LibreOffice Calc|
VBA-макрос для пакетной обработки|
5. Конвертация через Power Query (для больших файлов)
Если файл превышает 65 536 строк, его нельзя сохранить в .xls целиком. В этом случае используйте Power Query для разбивки данных на несколько листов или файлов:
Алгоритм действий:
- Откройте файл в Excel и перейдите на вкладку
Данные → Получить данные → Из таблицы/диапазона. - В редакторе Power Query разбейте таблицу на части по 60 000 строк (
Домой → Разделить столбец → По количеству строк). - Экспортируйте каждый фрагмент в отдельный файл
.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 |
Если после конвертации файл ведет себя нестабильно (например, медленно открывается или выдает ошибки при сохранении), выполните следующие шаги:
- Откройте файл в Excel и сохраните его обратно в
.xlsx. - Удалите все ненужные листы (оставив только данные).
- Повторите конвертацию в
.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. Варианты:
- Скопируйте макросы в отдельный файл
.basи импортируйте их в целевую систему вручную. - Конвертируйте макросы в надстройки (
.xla) для совместимости со старыми версиями Excel. - Используйте 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.