Как создать дбф файл на компьютере
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
- Как прочитать записи файла в формате dbf
- Как найти нужную запись в файле в формате dbf
- Как добавить новые записи в уже существующий файл в формате dbf
- Как удалить определенные записи в файле в формате dbf
- Как создать файл в формате dbf с нужными полями
- Скачать и выполнить эти примеры на компьютере
Чтение и запись DBF в языке 1С 8.3, 8.2 (в примерах)
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
PHP: Создание DBF файла
Небольшая заметка о том как создавать DBF файлы средствами PHP, а так же как считывать данные из таких файлов.
В очередной раз PHP удивляет своей простотой и гибкостью. Работать с DBF файлами в PHP приходится не так уж и часто, однако делать это иногда приходиться. Нужно это как правило для создания более менее форматированного отчета или выгрузки некоторых данных.
Ниже приведен листинг кода, формирующего ДБФ файл из MySQL таблицы Users.
Вот и все. После срабатывания скрипта, в его директории должен появиться файл «Users.dbf».
Важно: Стоит помнить о правах доступа на запись в текущей папке!
Для того чтобы почитать данные из дбф файла можно воспользоваться следующим кодом:
Конвертирование данных из Microsoft Excel в формат DBF

DBF – это популярный формат хранения и обмена данными между различными программами, а в первую очередь, между приложениями, которые обслуживают базы данных и электронные таблицы. Хотя он и стал устаревать, но продолжает оставаться востребованным в различных сферах. Например, с ним продолжают активно работать бухгалтерские программы, а контролирующие и государственные органы принимают значительную часть отчетов в данном формате.
Но, к сожалению, Эксель, начиная с версии Excel 2007, прекратил полноценную поддержку указанного формата. Теперь в этой программе можно только просмотреть содержимое DBF-файла, а сохранить данные с указанным расширением встроенными инструментами приложения уже не получится. К счастью, имеются другие возможности конвертации данных из программы Excel в нужный нам формат. Рассмотрим, каким образом это можно выполнить.
Сохранение данных в формате DBF
В Excel 2003 и в более ранних версиях этой программы можно было сохранить данные в формате DBF (dBase) стандартным путем. Для этого нужно было кликнуть по пункту «Файл» в горизонтальном меню приложения, а затем в открывшемся списке выбрать позицию «Сохранить как…». В запустившемся окошке сохранения из списка требовалось выбрать наименование нужного формата и нажать на кнопку «Сохранить».
Но, к сожалению, начиная с версии Excel 2007, разработчики Microsoft посчитали dBase устаревающим, а современные форматы Эксель слишком сложными для того, чтобы тратить время и средства на обеспечение полной совместимости. Поэтому в Excel осталась возможность читать DBF-файлы, но поддержка сохранения данных в этом формате встроенными программными инструментами была прекращена. Тем не менее, существуют некоторые способы конвертации данных сохраненных в Excel в DBF при помощи применения надстроек и другого программного обеспечения.
Способ 1: программа WhiteTown Converters Pack
Существует ряд программ, которые позволяют конвертировать данные из Excel в DBF. Один из самых простых способов конвертирования данных из Excel в DBF является использование пакета утилит для конвертирования объектов с различным расширением WhiteTown Converters Pack.
Хотя процедура установки данной программы проста и интуитивно понятна, все-таки подробно остановимся на ней, указав на некоторые нюансы.
- После того, как вы скачали и запустили инсталлятор, сразу открывается окошко Мастера установки, в котором предлагается выбрать язык для дальнейшего проведения процедуры инсталляции. По умолчанию там должен отобразиться тот язык, который установлен на вашем экземпляре Windows, но при желании его можно поменять. Мы же это делать не будем и просто жмем на кнопку «OK».

- Далее запускается окно, в котором указывается место на системном диске, куда будет устанавливаться утилита. По умолчанию это папка «Program Files» на диске «C». Тут лучше тоже ничего не менять и нажать на клавишу «Далее».

- Затем открывается окно, в котором можно выбрать, какие именно направления преобразования вы хотите иметь. По умолчанию выбраны все доступные компоненты конвертирования. Но, возможно, некоторые пользователи не захотят устанавливать их все, так как каждая утилита занимает место на жестком диске. Во всяком случае, именно для нас важно, чтобы стояла галочка около пункта «XLS (Excel) to DBF Converter». Установку остальных компонентов пакета утилит пользователь может выбрать на свое усмотрение. После того, как настройка произведена, не забываем кликнуть по клавише «Далее».

- dBASE III;
- FoxPro;
- dBASE IV;
- Visual FoxPro;
- >SMT;
- dBASE Level 7.
Готовый документ будет расположен в той директории, которая была указана во вкладке «Output».
Единственный существенный недостаток способа с применением пакета утилит WhiteTown Converters Pack состоит в том, что бесплатно можно будет провести только 30 процедур конвертирования, а потом придется приобретать лицензию.
Способ 2: надстройка XlsToDBF
Конвертировать книгу Эксель в dBase непосредственно через интерфейс приложения можно с помощью установки сторонних надстроек. Одной из лучших и наиболее удобных из них является надстройка XlsToDBF. Рассмотрим алгоритм её применения.
-
После того, как скачали архив XlsToDBF.7z с надстройкой, распаковываем из него объект под названием XlsToDBF.xla. Так как архив имеет расширение 7z, то распаковку можно проводить либо стандартной программой для этого расширения 7-Zip, либо с помощью любого другого архиватора, который поддерживает работу с ним.
- N (Numeric) – числовой;
- L (Logical) – логический;
- D (Date) – дата;
- C (Character) – строковый.
Кроме того, в строковом (Cnnn) и числовом типе (Nnn) после наименования в виде буквы следует указывать максимальное количество символов в поле. Если в числовом типе применяются десятичные знаки, то их количество тоже нужно указать после точки (Nnn.n).
Существуют и другие типы данных в формате dBase (Memo, General и т.д.), но данная надстройка с ними работать не умеет. Впрочем, с ними не умел работать и Excel 2003, когда ещё поддерживал конвертацию в DBF.
Как видим, данный способ значительно сложнее предыдущего. Кроме того, он весьма ограничен по количеству используемых типов полей и создаваемых типов объектов с расширением DBF. Ещё одним недостатком является то, что директорию создания объекта dBase можно назначать только перед процедурой конвертирования, путем прямого перемещения в папку назначения исходного Excel-файла. Среди преимуществ данного способа можно отметить то, что в отличие от предыдущего варианта, он абсолютно бесплатен и практически все манипуляции производятся непосредственно через интерфейс Эксель.
Способ 3: программа Microsoft Access
Хотя у новых версий Excel и нет встроенного способа сохранение данных в формате DBF, но, тем не менее, вариант с применением приложения Microsoft Access более всего приблизился к тому, чтобы назвать его стандартным. Дело в том, что эта программа выпущена тем же производителем, что и Эксель, и также входит в пакет Microsoft Office. К тому же, это самый безопасный вариант, так как не нужно будет связываться с программным обеспечением сторонних производителей. Microsoft Access специально предназначен для работы с базами данных.
- После того, как все необходимые данные на листе в Эксель введены, для того, чтобы конвертировать их в формат DBF, нужно сначала произвести сохранение в одном из форматов Excel. Для этого кликаем по иконке в виде дискеты в левом верхнем углу окна программы.

- Открывается окно сохранения. Переходим в ту директорию, где желаем, чтобы файл был сохранен. Именно из этой папки его нужно будет потом открыть в Microsoft Access. Формат книги можно оставить по умолчанию xlsx, а можно поменять на xls. В данном случае это не критично, так как все равно мы сохраняем файл только для того, чтобы преобразовать его в DBF. После того, как все настройки выполнены, жмем на кнопку «Сохранить» и закрываем окно Excel.

- Запускаем программу Microsoft Access. Переходим во вкладку «Файл», если она открылась в другой вкладке. Жмем на пункт меню «Открыть», расположенный в левой части окна.

- Запускается окно открытия файла. Переходим в ту директорию, где мы сохранили файл в один из форматов Excel. Чтобы он отобразился в окне, переставляем переключатель формата файлов в положение «Книга Excel (*.xlsx)» или «Microsoft Excel (*.xls)», в зависимости от того, в каком из них книга была сохранена. После того, как наименование нужного нам файла отобразилось, выделяем его и жмем на кнопку «Открыть».

- Открывается окно «Связь с электронной таблицей». Оно позволяет максимально корректно переместить данные из файла Excel в Microsoft Access. Нам нужно выбрать лист Эксель, данные из которого мы собираемся импортировать. Дело в том, что даже если в файле Excel содержалась информация на нескольких листах, то импортировать её в Access можно только отдельно и, соответственно, потом преобразовать её в отдельные файлы DBF.
В поле «Формат файла» выбираем один из трех типов формата DBF:
- dBASE III (по умолчанию);
- dBASE IV;
- dBASE 5.
Нужно учесть, что чем современнее формат (выше порядковый номер), то тем больше существует возможностей по обработке в нем данных. То есть, выше вероятность того, что в файле удастся сохранить все данные таблицы. Но в то же время ниже вероятность того, что программа, куда вы в будущем собираетесь импортировать файл DBF, будет совместима именно с этим типом.
Созданный файл в формате dBase будет находиться в той директории, которая была указана в окне экспорта. Далее с ним вы можете производить любые манипуляции, включая импорт его в другие программы.
Как видим, несмотря на то, что в современных версиях Excel отсутствует возможность сохранения файлов в формате DBF встроенными инструментами, тем не менее, данную процедуру можно осуществить с помощью применения других программ и надстроек. При этом следует отметить, что наиболее функциональный способ конвертирования – это использование набора утилит WhiteTown Converters Pack. Но, к сожалению, количество бесплатных преобразований в нем ограничено. Надстройка XlsToDBF позволяет выполнить конвертацию абсолютно бесплатно, но процедура намного сложнее. К тому же функционал данного варианта очень ограничен.
«Золотой серединой» является способ с использованием программы Access. Как и Excel – это разработка компании Microsoft, а поэтому сторонним приложением его уже не назовешь. К тому же данный вариант позволяет конвертировать файл Excel в несколько типов формата dBase. Хотя по этому показателю Access все-таки уступает программе WhiteTown.
Создание и заполнение DBF файла в Microsoft Dynamics AX
В MS Dynamics AX приходится экспортировать данные для дальнейшей их обработки. В основном используют для этого Excel, так же используют другие форматы: текстовый, dbf таблицы и т.д. В этой статье я рассмотрю формат dbf таблиц, поскольку считаю, что данный материал будет полезен и не раз пригодится на различных проектах.
Итак, нужно создать класс, с помощью которого можно создать и заполнить dbf таблицу. Класс назовем DBFFiles, в нем буду использовать .NET объекты System.Data.OleDb.OleDbConnection для подключения к источнику данных, в нашем случае это dbf таблица и System.Data.OleDb.OleDbCommand для выполнения SQL инструкций с источником данных.
Прежде чем начать работать с классом нужно создать и открыть подключение к источнику данных, для этого нужно задать строку подключения. Строка подключения состоит из поставщика данных (Provider), в нашем случае это Microsoft.Jet.OLEDB.4.0, места расположения источника данных (Data Source) и расширенных свойств (Extended Properties), в нашем случае это тип источника данных dBase IV.
Создание и заполнение dbf таблицы выполняется посредством SQL запросов выполняемых с источником данных, для этого нужно создать метод выполнения запросов.
Чтобы создать саму dbf таблицу нужно создать метод при помощи которого будет сформирован SQL запрос создания таблицы. На вход данного метода подаем строковую переменную _name где указываем наименование таблицы и коллекцию _listEnum где содержится информация о полях таблицы. В коллекции мы храним контейнеры со следующей структурой:
— первый элемент – это название поля,
— второй элемент – это тип поля,
— третий элемент – это длина строки либо количество знаков до запятой,
— четвертый элемент – это количество знаков после запятой.
Когда уже таблица создана то можно начать ее заполнять. Для этого нужно создать метод который сформирует SQL запрос для вставки данных в таблицы. Входные данные здесь используется те же что и для метода создания таблицы createTableExecuteQuery.
Вот и все, теперь с помощью этого класса можно создать и заполнить dbf таблицу. В случае если нужно будет отредактировать в ней данные или ее вовсе удалить, то не сложно дописать свои методы для этих целей, но нужно знать синтаксис SQL чтобы правильно построить запросы.