Формат DBF (Database File) до сих пор активно используется в 1С:Предприятие, старых бухгалтерских системах и специализированном ПО для работы с данными. Несмотря на то что Microsoft Excel давно стал стандартом для табличных данных, иногда требуется преобразовать .xlsx или .xls именно в .dbf — например, для интеграции с унаследованными системами или обмена данными между разными программами.
Однако прямого экспорта в DBF в современных версиях Excel нет. Эта статья поможет разобраться, как выполнить конвертацию без потери данных, какие инструменты использовать (включая бесплатные), и на что обратить внимание при работе с кодировками, типами полей и большими файлами. Мы рассмотрим как ручные методы через Excel и Access, так и автоматизированные решения с помощью скриптов и стороннего ПО.
Если вам нужно регулярно конвертировать файлы — обратите внимание на раздел про пакетную обработку. Для разовых задач подойдут онлайн-конвертеры или встроенные функции MS Office. А если вы работаете с 1С, то узнаете, как избежать типичных ошибок при импорте DBF в конфигурацию.
1. Почему Excel не сохраняет напрямую в DBF?
В версиях Microsoft Excel 2007 и новее поддержка формата DBF была официально удалена из интерфейса программы. Это связано с несколькими причинами:
🔹 Устаревший формат: DBF разработан в 1980-х для dBASE и FoxPro, и его функциональность ограничена по сравнению с современными форматами вроде .xlsx или .csv.
🔹 Проблемы совместимости: В новых версиях Windows изменились драйверы для работы с DBF, что привело к ошибкам при открытии файлов через ODBC.
🔹 Альтернативные решения: Microsoft сделала ставку на SQL Server, Power Query и другие инструменты для работы с базами данных.
Тем не менее, конвертация всё ещё возможна — просто не через стандартное меню Файл → Сохранить как. Ниже мы разберём все актуальные способы, включая обходные пути через Access, Python и специализированное ПО.
2. Способ 1: Конвертация через Microsoft Access
Microsoft Access — единственное приложение из пакета Office, которое до сих пор поддерживает экспорт в DBF. Этот метод подходит для пользователей, у которых установлен Access (входит в Office Professional или продаётся отдельно).
Пошаговая инструкция:
1. Откройте Microsoft Access и создайте новую базу данных (или используйте существующую).
2. Перейдите на вкладку Внешние данные → Excel и импортируйте ваш файл .xlsx/.xls.
3. После импорта таблица появится в разделе Все таблицы. Кликните по ней правой кнопкой и выберите Экспорт → dBASE.
4. Укажите папку для сохранения, имя файла и нажмите OK.
⚠️ Внимание: Access сохраняет DBF в кодировке ANSI (Windows-1251) по умолчанию. Если в ваших данных есть кириллица, проверьте корректность отображения после экспорта. При необходимости измените кодировку через Файл → Параметры → Текущая база данных → Кодировка по умолчанию.
Удалите объединённые ячейки (DBF их не поддерживает)
Проверьте длину названий столбцов (максимум 10 символов в dBASE III)
Преобразуйте формулы в значения (Копировать → Специальная вставка → Значения)
Убедитесь, что в ячейках нет переносов строк (Ctrl+J)
-->
3. Способ 2: Бесплатные онлайн-конвертеры
Если у вас нет Access или вы работаете на Mac/Linux, можно воспользоваться онлайн-сервисами. Они подходят для разовых задач и небольших файлов (обычно до 50 МБ).
Топ-3 проверенных сервиса:
- 🌐 Convertio — поддерживает XLSX → DBF, позволяет выбрать кодировку (CP1251, UTF-8). Ссылка.
- 🌐 Zamzar — отправляет результат на email, ограничение 50 МБ. Ссылка.
- 🌐 Online-Convert — есть настройки для типа DBF (dBASE III/IV, FoxPro). Ссылка.
🔴 Минусы онлайн-конвертеров:
- Ограничение по размеру файла.
- Риск утечки конфиденциальных данных (не используйте для коммерческой тайны!).
- Нет гарантии сохранения типов данных (даты могут превратиться в текст).
4. Способ 3: Конвертация через Python (для продвинутых)
Если вам нужно автоматизировать процесс или обработать сотни файлов, воспользуйтесь скриптом на Python с библиотеками pandas и dbf. Этот метод требует базовых знаний программирования, но даёт максимальный контроль над процессом.
Пример кода для конвертации XLSX в DBF:
import pandas as pd
from dbf import Table, Field
Чтение Excel-файла
df = pd.read_excel('input.xlsx')
Создание DBF-файла
table = Table('output.dbf', df.columns.tolist(), field_type='C', field_spec='(255)')
Запись данных
with table:
for _, row in df.iterrows():
table.append(row.tolist())
🔹 Плюсы метода:
- Поддержка больших файлов (гигабайты данных).
- Гибкая настройка типов полей (текст, числа, даты).
- Возможность пакетной обработки (см. раздел ниже).
⚠️ Внимание: Библиотека
Выполните в командной строке: Если возникает ошибка с dbf по умолчанию сохраняет текстовые поля в кодировке CP1252 (Latin-1). Для кириллицы добавьте параметр codepage='cp1251' при создании таблицы.
Как установить зависимости для скрипта?
pip install pandas dbf
dbf, попробуйте альтернативную библиотеку:pip install simpledbf
5. Способ 4: Платные программы для конвертации
Если вам нужны дополнительные функции (например, обработка формул, поддержка FoxPro, или работа с повреждёнными файлами), рассмотрите специализированное ПО:
| Программа | Цена (2026) | Особенности | Ссылка |
|---|---|---|---|
| DBF Converter | ~2500 ₽ | Пакетная обработка, поддержка XLSX, CSV, XML → DBF | Официальный сайт |
| Excel to DBF | ~1800 ₽ | Сохраняет формулы как значения, настройка кодировок | Скачать |
| Advanced DBF Repair | ~3500 ₽ | Восстановление повреждённых DBF, конвертация из Excel | Подробнее |
💡 Когда стоит платить?
- Вам нужно конвертировать файлы регулярно (еженедельно/ежедневно).
- В данных есть сложные формулы или нестандартные форматы (например, пользовательские даты).
- Требуется поддержка FoxPro или Visual FoxPro (не все бесплатные инструменты работают с этими диалектами DBF).
6. Пакетная конвертация: как обработать сотни файлов
Если у вас десятки или сотни Excel-файлов, которые нужно преобразовать в DBF, ручные методы не подойдут. Вот 3 решения для автоматизации:
🔹 Скрипт на Python (с использованием os и glob):
Модифицируйте пример из раздела 4, добавив цикл по папке:
import glob
for file in glob.glob('*.xlsx'):
df = pd.read_excel(file)
table = Table(file.replace('.xlsx', '.dbf'), df.columns.tolist())
with table:
for _, row in df.iterrows():
table.append(row.tolist())
🔹 Использование DBF Converter Pro:
Программа поддерживает обработку папок — достаточно указать исходную директорию с XLSX и целевую для DBF.
🔹 Командная строка с Excel и VBA:
Создайте макрос в Excel, который последовательно открывает каждый файл и экспортирует его через Access Automation. Пример кода можно найти на Stack Overflow.
При конвертации Excel в DBF пользователи часто сталкиваются с следующими проблемами:
🔸 Ошибка "Too many fields":
DBF ограничивает количество столбцов (максимум 255 в dBASE IV). Если в Excel больше колонок, разбейте таблицу на несколько файлов.
🔸 Искажение кириллицы:
Проверьте кодировку в настройках экспорта. Для Windows обычно подходит CP1251, для Linux — KOI8-R или UTF-8.
🔸 Потеря форматирования дат:
DBF хранит даты в формате 🔸 Ошибка "Field name too long":
Имена столбцов в DBF не могут превышать 10 символов (в dBASE III). Переименуйте колонки в Excel заранее.
⚠️ Внимание: Если после конвертации файлы не открываются в 1С, проверьте версию DBF. 1С:Предприятие 8 работает с dBASE IV (расширение Да, это даже проще. В Excel перейдите в Для автоматизации используйте тот же Python с библиотекой df.to_excel('output.xlsx', index=False)7. Типичные ошибки и как их избежать
YYYYMMDD. Если в Excel дата отображается как текст (например, "01.12.2023"), конвертер может не распознать её. Преобразуйте столбец в формат Дата перед экспортом.
.dbf), а не с FoxPro (расширение .dbt для мемо-полей).
8. Часто задаваемые вопросы (FAQ)
Можно ли конвертировать DBF обратно в Excel?
Файл → Открыть, выберите тип файлов dBASE Files (*.dbf) и откройте нужный файл. Данные отобразятся в таблице, которую можно сохранить как .xlsx.pandas:
df = pd.read_dbf('file.dbf')
Почему после конвертации числа отображаются как текст?
Это типичная проблема при экспорте через Access или онлайн-конвертеры. Чтобы исправить:
- В Excel выделите проблемный столбец.
- Нажмите
Данные → Текст по столбцам. - Выберите формат
ОбщийилиЧисловой.
Если это не поможет, проверьте настройки региональных стандартов в Windows (должна быть выбрана Россия или соответствующая локаль).
Как конвертировать DBF в Excel на Mac?
На macOS нет native-поддержки DBF, но есть обходные пути:
- Используйте LibreOffice (бесплатно). Он открывает DBF через
Файл → Открыть. - Установите Wine и запустите DBF Viewer для Windows.
- Воспользуйтесь онлайн-конвертером (см. раздел 3).
Важно: LibreOffice может неправильно интерпретировать кодировку кириллицы — перед сохранением в Excel проверьте данные на корректность.
Можно ли конвертировать DBF с мемо-полями (BLOB)?
Мемо-поля (тип Memo или BLOB) в DBF хранятся в отдельном файле с расширением .dbt. Большинство конвертеров их игнорируют. Чтобы перенести такие данные:
1. Откройте DBF в DBF Viewer (например, этом).
2. Экспортируйте мемо-поля отдельно в текстовый файл.
3. В Excel импортируйте основную таблицу и текстовый файл, затем объедините данные через VLOOKUP или Power Query.
Как проверить, какая версия DBF у моего файла?
Откройте файл в шестнадцатеричном редакторе (например, HxD) и посмотрите первый байт:
03h— dBASE III (без мемо-полей).83h— dBASE IV (с мемо-полями).F5h— FoxPro.
Также версию можно узнать через DBF Viewer в свойствах файла.