Basile s soft - експорт таблиць excel в формат dbf

Перше, що необхідно зробити, це завантажити і встановити останню версію XlsToDBF на свій комп'ютер.

Підготовка табличних даних

Насправді, все не так складно. Щоб надбудова зрозуміла, що від неї вимагається і створила очікуваний DBF-файл, необхідно задати тип, розмір, імена полів для кінцевого DBF-файлу, а також його назву.

Надбудова розпізнає чотири формату полів dBASE: Character (C nnn), Numeric (N nn або N nn.n), Date (D) і Logical (L), тобто такі поля як General, Memo, Currency і т.д. в кінцевому файлі вона створити не зможе. Власне, рідний конвертер попередніх версій Excel мав таке ж обмеження.

Розглянемо приклад (файл Price.xls з архіву, Лист: Price). Припустимо, що існує таблиця, яку необхідно зберегти в DBF-файлі.

Basile s soft - експорт таблиць excel в формат dbf

В кінцевому DBF-файлі ми хочемо, щоб:

  • Поле Ідентифікатор мало цілочисельний тип (тобто N umeric) шириною в 14 знаків і називалося ID.
  • Поле Найменування - строковий тип (C haracter) шириною в 100 символів з назвою NAME
  • Поле Одиниця виміру - строковий, 20 символів, з назвою ONE_NAME
  • Поле Ціна - числовий тип (N umeric) шириною в 14 знаків з двома знаками за коми з назвою PRICE
  • Поле Включати в прайс - логічний тип (L ogical) з назвою L_PRICE
  • Поле Дата поновлення мало тип дати (D ate) з назвою D_UPDATE

Також ми хочемо кінцевий DBF-файл зберегти з назвою PRICE.DBF в кодової сторінці (Code Page) DOS-866.

Для того, щоб отримати очікуваний результат, потрібно змінити заголовок таблиці наступним чином (файл Price.xls з архіву, Лист: Price_pre).

Basile s soft - експорт таблиць excel в формат dbf

Перша осередок першого рядка, що експортується області, містить ім'я кінцевого файлу. Розширення в імені файлу на процес конвертації не впливає, тобто кінцевий файл в будь-якому випадку буде мати структуру DBF (dBASE).

Друга осередок (B1) вказує макросу надбудови в якій кодової сторінці зберігати DBF-файл. Якщо значення комірки (B1) відрізняється від CP866 або не задано зовсім, то кінцевий DBF-файл збережеться в кодової сторінці WINDOWS CP1251.

Другий рядок описує формати полів, які ми хочемо отримати в кінцевому файлі. Тут хочу відзначити, тому що багато плутаються, що числовий формат з дробової десяткової частиною, наприклад N14.2 трактується наступним чином: ширина поля 14 знаків, включаючи десяткову точку і 2 знака за нею. Тобто 11 цілих знаків, десяткова точка і 2 знака за нею, а не 14 цілих знаків і 2 за точкою.

Для наочності приклад. Так зберігається в DBF-файлі число 630.75 в поле з форматом N14.2:

Починаючи з четвертої рядки і до кінця безперервної області, розташовуються дані. Бажано, щоб дані відповідали заданому типу. Червоним кольором я зазначив ті поля, в яких значення не можуть бути коректно перетворені. У таких випадках надбудова задає їм значення за замовчуванням. Наприклад, значення ТАК не може бути перетворено до логічного типу. Тому в кінцевому DBF-файлі це поле буде мати значення FALSE (F). В даному прикладі те ж саме відбудеться і з датами, позначеними червоним кольором (в DBF-файлі вони будуть порожні).

Запуск макросу надбудови

Після того, як ми підготували дані для вивантаження, можна запустити макрос надбудови. Для цього потрібно виділити будь-яку клітинку в області даних або заголовка і натиснути . У діалоговому вікні «Макрос» в поле «Ім'я макросу:" потрібно ввести XlsToDBF (реєстр не має значення) і натиснути кнопку <Выполнить>. Якщо на попередньому етапі все зроблено вірно, то DBF-файл буде збережений з ім'ям PRICE.DBF в тій же папці, де розташована початкова книга Excel. У разі якщо книга нова і не збережена, то DBF-файл буде збережений в папці за умовчанням (швидше за все в папці «Мої документи»). Будьте уважні: при повторному запуску макросу DBF-файл буде переписаний без будь-яких попереджень.

Ось так виглядає створений файл PRICE.DBF. відкритий в середовищі FoxPro 2.6:

Basile s soft - експорт таблиць excel в формат dbf

У відкритому діалозі «Setup» видно, що всі поля відформатовані так, як ми і очікували.

Якщо робота надбудови влаштовує, і Ви припускаєте часто її використовувати, то для зручності створіть призначену для користувача кнопку на стрічці і призначте їй макрос XlsToDBF.

Для тих, хто цікавиться програмуванням на VBA. Код макросу відкритий і досить простий, можете подивитися. Виходячи з табличних даних, макрос створює файл DBF-формату. Для більшого розуміння, що відбувається в програмі, необхідно розібратися зі структурою DBF-файлів. Переглянути опис структури DBF-файлу можна тут.

Будуть ідеї або питання, пишіть мені на пошту [email protected] (в темі листа вкажіть SITE) або в Гостьової книги. Буду радий вашим відгуками, зауваженнями, пропозиціями!

Підтримай проект XlsToDBF!

Це можна зробити через гаманець Yandex, а також через картки VISA та MasterCard