Конвертація даних з Microsoft Excel в формат DBF. Повний опис рішення

dBASE - одна з найстаріших систем управління базами даних, і формат файлу dBASE (DBF) застосовувався довгий час. Microsoft Access підтримує експорт даних в такі формати файлів dBASE: dBASE III, dBASE IV, dBASE 5 і dBASE 7.

Зверніть увагу на те, що підтримка dBASE має такі вимоги.

    Підписка на Office 365 Якщо ви є передплатником Office 365, переконайтеся, що у вас встановлена остання версія Office. Якщо ви є ІТ-спеціалістом, керуючим процесом оновлення Office 365, відвідайте сторінку випуск каналів, щоб дізнатися, які оновлення надаються в кожному каналі.

    Office 2016 Встановіть наступні оновлення в зазначеному порядку 2 травня 2017 р оновлення для Office 2016 (кб3115501) і Май 2, 2017, Update для Access 2016 (кб3178700).

    Випуски Office 2016 "натисни і працюй" Оновлення застосовуються автоматично.

Експорт даних в файл dBASE

В результаті буде створений файл dBASE в зазначеному розташуванні і форматі.

Access 2013 не підтримує формат dBASE

Експорт в формат dBASE не підтримуються в Access 2013. Для роботи з файлами dBASE спробуйте оновити підписку на Office 365. Експорт в формат dBASE доступний у версіях Access для підписки на Office 365.

  • Tutorial

У цій статті я розповім як завантажити багато величезних dbf файлів, що складаються з мільйонів записів в вашу базу даних на ms sql сервері за прийнятний час.

Завдання на перший погляд тривіальна. Можна використовувати майстер в sql management studio або функцію OPENROWSET через запит.

Але перший варіант після кількох спроб отпаліз за різних глюків і необхідності завантаження безлічі файлів в одну таблицю (близько 100 файлів). До того ж при тривалої завантаженні вилітала помилка.

Другий варіант теж не підійшов через різної розрядності драйверів і розрядності сервера.

Так як файл просто величезний, то було вирішено читати його через потік і записувати в базу. Далі після прочитання рядки в файлі треба цей рядок записати в табличку. Перше що спало на думку це використовувати insert, але запис в цьому випадку зайняла б надто багато часу.

І тут я згадав про інший механізм запису через SqlBulkCopy, який дозволяє заливати величезне число записів без запитів insert.
На ділі це використання класу SqlBulkCopy, для здійснення запису через який треба реалізувати один лише інтерфейс IDataReader.

Отже почнемо з реалізації інтерфейсу public class BDFBulkReader: IDataReader

Почнемо з функції, яка повертає значення поточного запису:
public object GetValue (int i) (return R];)
Зверну вашу увагу на те що поля в файлі і поля в таблиці можуть бути в різному порядку. А за індексом хотілося б отримувати значення для відповідного поля таблиці. Тому я використовував додатково словник FieldIndex, де зіставлення імен полів номеру в таблиці sql. За номером береться ім'я поля, на ім'я зі словника R береться значення з прочитаного рядка dbf файлу. В результаті для n го індексу в бд GetValue поверне відповідне значення.
Dictionary R \u003d new Dictionary (); Dictionary FieldIndex \u003d new Dictionary ();

FieldIndex будемо передавати вже заповнений для таблиці, а R буде заповнювати при виклику самими reader "ом функції Read, яку в подальшому теж реалізуємо.

Отже, конструктор:

System.IO.FileStream FS; byte buffer; int _FieldCount; int FieldsLength; System.Globalization.DateTimeFormatInfo dfi \u003d new System.Globalization.CultureInfo ( "en-US", false) .DateTimeFormat; System.Globalization.NumberFormatInfo nfi \u003d new System.Globalization.CultureInfo ( "en-US", false) .NumberFormat; string FieldName; string FieldType; byte FieldSize; byte FieldDigs; int RowsCount; int ReadedRow \u003d 0; Dictionary R \u003d new Dictionary (); Dictionary FieldIndex \u003d new Dictionary (); public BDFBulkReader (string FileName, Dictionary FieldIndex) (FS \u003d new System.IO.FileStream (FileName, System.IO.FileMode.Open); buffer \u003d new byte; FS.Position \u003d 4; FS.Read (buffer, 0, buffer.Length); RowsCount \u003d buffer + (buffer * 0x100) + (buffer * 0x10000) + (buffer * 0x1000000); buffer \u003d new byte; FS.Position \u003d 8; FS.Read (buffer, 0, buffer.Length); _FieldCount \u003d (((buffer + (buffer * 0x100)) - 1) / 32) - 1; FieldName \u003d new string [_FieldCount]; FieldType \u003d new string [_FieldCount]; FieldSize \u003d new byte [_FieldCount]; FieldDigs \u003d new byte [_FieldCount]; buffer \u003d new byte; FS.Position \u003d 32; FS.Read (buffer, 0, buffer.Length); FieldsLength \u003d 0; for (int i \u003d 0; i< _FieldCount; i++) { FieldName[i] = System.Text.Encoding.Default.GetString(buffer, i * 32, 10).TrimEnd(new char { (char)0x00 }); FieldType[i] = "" + (char)buffer; FieldSize[i] = buffer; FieldDigs[i] = buffer; FieldsLength = FieldsLength + FieldSize[i]; } FS.ReadByte(); this.FieldIndex = FieldIndex; }

Його завдання це відкрити файл, визначити імена полів, їх число і їх типи. Другий параметр конструктора, як я писав вище, це словник відповідностей, щоб, наприклад, по першому номеру поля ми гарантовано отримали потрібне поле з файлу.

Тепер перейдемо до реалізації bool Read (). Вона поверне true у разі якщо рядок успішно прочитана. І false у разі якщо рядок не була прочитана і в той же час був досягнутий кінець даних.

Public bool Read () (if (ReadedRow\u003e \u003d RowsCount) return false; R.Clear (); buffer \u003d new byte; FS.ReadByte (); FS.Read (buffer, 0, buffer.Length); int Index \u003d 0 ; for (int i \u003d 0; i< FieldCount; i++) { string l = System.Text.Encoding.GetEncoding(866).GetString(buffer, Index, FieldSize[i]).TrimEnd(new char { (char)0x00 }).TrimEnd(new char { (char)0x20 }); Index = Index + FieldSize[i]; object Tr; if (l.Trim() != "") { switch (FieldType[i]) { case "L": Tr = l == "T" ? true: false; break; case "D": Tr = DateTime.ParseExact(l, "yyyyMMdd", dfi); break; case "N": { if (FieldDigs[i] == 0) Tr = int.Parse(l, nfi); else Tr = decimal.Parse(l, nfi); break; } case "F": Tr = double.Parse(l, nfi); break; default: Tr = l; break; } } else { Tr = DBNull.Value; } R.Add(FieldName[i], Tr); } ReadedRow++; return true; }

Ще раз нагадаю, що після її виклику прочитана рядок запишеться в словник R, для подальшого читання reader "ом.
Отже, залишилося реалізувати, метод повертає число полів:

Public int FieldCount (get (return _FieldCount;))

І заглушки для інтерфейсу:

Public void Dispose () (FS.Close ();) public int Depth (get (return -1;)) public bool IsClosed (get (return false;)) public Object this (get (return new object ();)) public Object this (get (return new object ();)) public int RecordsAffected (get (return -1;)) public void Close () () public bool NextResult () (return true;) public bool IsDBNull (int i) (return false;) public string GetString (int i) (return "";) public DataTable GetSchemaTable () (return null;) public int GetOrdinal (string name) (return -1;) public string GetName (int i) (return "";) public long GetInt64 (int i) (return -1;) public int GetInt32 (int i) (return -1;) public short GetInt16 (int i) (return -1;) public Guid GetGuid (int i) (return new Guid ();) public float GetFloat (int i) (return -1;) public Type GetFieldType (int i) (return typeof (string);) public double GetDouble (int i) (return -1;) public decimal GetDecimal (int i) (return -1;) public DateTime GetDa teTime (int i) (return new DateTime (); ) Public string GetDataTypeName (int i) (return "";) public IDataReader GetData (int i) (return this;) public long GetChars (int i, long fieldoffset, char buffer, int bufferoffset, int length) (return -1; ) public char GetChar (int i) (return "";) public long GetBytes (int i, long fieldOffset, byte buffer, int bufferoffset, int length) (return -1;) public byte GetByte (int i) (return 0x00; ) public bool GetBoolean (int i) (return false;) public int GetValues \u200b\u200b(Object values) (return -1;)

Де в Dispose () я просто закриваю файл.

Після того як інтерфейс реалізований, можна написати метод для завантаження файлу:

Void SaveToTable (FileInfo dir, string TableName, string connestionString, Dictionary FieldIndex) (using (var loader \u003d new SqlBulkCopy (connestionString, SqlBulkCopyOptions.Default)) (loader.DestinationTableName \u003d TableName; loader.BulkCopyTimeout \u003d 9999; loader.WriteToServer (new BDFBulkReader (dir.FullName, FieldIndex));))

От і все. В цю функцію залишилося передати розташування файлу, ім'я таблиці, рядок підключення і відповідний словник відповідностей, наприклад:

Dictionary FieldIndex \u003d new Dictionary (); FieldIndex.Add (0, "POSTALCODE"); FieldIndex.Add (1, "IFNSFL"); FieldIndex.Add (2, "TERRIFNSFL"); FieldIndex.Add (3, "IFNSUL"); FieldIndex.Add (4, "TERRIFNSUL"); FieldIndex.Add (5, "OKATO"); FieldIndex.Add (6, "OKTMO"); FieldIndex.Add (7, "UPDATEDATE"); FieldIndex.Add (8, "HOUSENUM"); FieldIndex.Add (9, "ESTSTATUS"); FieldIndex.Add (10, "BUILDNUM"); FieldIndex.Add (11, "STRUCNUM"); FieldIndex.Add (12, "STRSTATUS"); FieldIndex.Add (13, "HOUSEID"); FieldIndex.Add (14, "HOUSEGUID"); FieldIndex.Add (15, "AOGUID"); FieldIndex.Add (16, "STARTDATE"); FieldIndex.Add (17, "ENDDATE"); FieldIndex.Add (18, "STATSTATUS"); FieldIndex.Add (19, "NORMDOC"); FieldIndex.Add (20, "COUNTER");

Все, дякую всім за увагу, приємною завантаження.

Простенька програма для перенесення даних з файлів dbf в таблиці Microsoft Excel.


Передісторія цієї утиліти наступна: в 1с-ке є вивантаження даних в древній і могутній формат dBase, наприклад списки товарів з цінами і т.д. і т.п. Так ось, деякі програми, з легкістю імпортують набори даних з таблиць Excel, а про dBase не знають.


Вивантаження 1с зберігає дані в кодуванні WIN1251 (може це звичайно і налаштовується десь, не перевіряв), однак після відкриття такого файлу в Excel-е, інформація відображається «крякозябри». Це відбувається, тому що Microsoft Excel за замовчуванням відкриває таблиці dBase в кодуванні CP866 (DOS).


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


P.S .: жодного разу не претендую на унікальність і геніальність, так як в Інтернеті повно подібних софтів, які змінюють кодування і роблять багато чого ще, однак більшість з них платні, так і зайвий функціонал тільки обтяжує борошна простих обивателів.


Програма для експорту даних з файлів dBase в Microsoft Excel.


Головне вікно програми.


Після того як програма запущена, потрібно натиснути на кнопку "Відкрити" і в діалозі вибору файлів вибрати той dbf, який буде експортуватися в Excel.


* * *


Головне вікно програми з завантаженим dbf-файлом.


Якщо файл успішно завантажений, його дані відобразяться в таблиці. У самому верху в поле "Вихідний файл", буде показаний повний шлях і ім'я завантаженого файлу dbf.


Після цього потрібно натиснути на велику кнопку "Експортувати дані", що знаходиться відразу під таблицею з інформацією.


* * *


Вікно із запитом про масштабування колонок.


Якщо з dbf-файлом не було ніяких проблем, ви повинні побачити вікно з запитом про масштабування розмірів стовпців, це означає потрібно в Excel-e розтягнути колонки по ширині даних.


* * *


Якщо всі операції пройшли успішно, буде запущений екземпляр Excel cо всіма вивантаженими в нього даними.

Може трапитися так, що dbf-файл не містить службової інформації про кодування, в такому випадку буде видане повідомлення "В dbf-файлі відсутня інформація про кодування."


На малюнках нижче, червоним кольором показано і написано яку з кнопок "Так" або "Ні" потрібно натиснути в тому чи іншому випадку:


У разі якщо текст в таблиці нечитабельним.


* * *


У разі якщо текст в таблиці читається нормально.

особливості програми


В системі повинен бути встановлений Microsoft Excel.
Dbf-файли відкриваються в монопольному режимі.
Вміст blob-полів не переноситься.
Працездатність програми перевірялась на Windows XP і Windows 7.
Утиліта абсолютно безкоштовна і не вимагає установки, це означає, скачувати і користуєшся.

DBF - файл баз даних, можливість роботи з яким раніше інтегрувалася в середу Microsoft Office. З форматом працювали додатки Access і Excel, пізніше Access був виведений зі складу пакета і став окремою програмою, а в Excel з 2007 року підтримка DataBaseFile була істотно обмежена.

При неможливості відкрити DBF-файл безпосередньо в Excel його потрібно попередньо конвертувати.

Однак DBF хоч і вважається багатьма застарілим форматом, але до сих пір широко використовується в спеціалізованих програмах у сфері бізнесу, проектування, інженерної сфері. Скрізь, де потрібна робота з великими масивами інформації, їх структурування та обробка, виконання запитів. Наприклад, програмний комплекс 1С Підприємство повністю грунтується на управлінні базами даних. А враховуючи, що маса офісної документації та даних проходить в Excel, то питання інтегрованої роботи з цими форматами актуальний і затребуваний.

Проблеми Excel при роботі з DBF

В Excel 2003 мав змогу відкрити і редагувати DBF, а також зберігати в цьому форматі документи XLS:

  1. На панелі меню вибрати «Файл».
  2. Далі, натиснути «Зберегти як».
  3. Вибрати зі списку «* .dbf».

ВАЖЛИВО. Починаючи з 2007 року ви можете відкрити і переглянути в Excel формат баз даних, але не можете вносити зміни, а також зберігати в ньому документи.xls. Стандартні засоби програми більше не передбачають такої можливості.

Однак існують спеціальні надбудови для додатка, що додають йому таку функцію. У мережі на різних форумах програмісти викладають свої розробки, можна знайти різні варіанти. Найбільш популярну надбудову, яка називається XslToDBF, можна скачати з сайту розробника http://basile-m.narod.ru/xlstodbf/download.html. Завантаження безкоштовна, але за бажанням можна підтримати проект, перерахувавши будь-яку суму на гаманець або карту.

Установка і використання:

  1. Скачайте архів з зазначеного вище сайту.
  2. Вийміть з нього XlsToDBF.xla і збережіть на своєму комп'ютері.
  3. В Excel зайдіть в меню кнопкою із позначкою Майкрософт зліва, «Параметри».
  4. У розділі «Параметри Excel» виберіть «Надбудови».
  5. У рядку «Управління / Надбудови Excel» натисніть «Перейти».
  6. Натисніть «Огляд» і вкажіть збережений XlsToDBF.xla.
  7. У списку надбудов повинна з'явитися запис «XLS -\u003e DBF» з поставленим галочкою перевірки. Відзначте, якщо її немає.
  8. Тепер ви можете сохранять.xls в формат.dbf. З того ж сайту можна завантажити докладну інструкцію по використанню. Головне, правильно підготувати табличні дані.
  9. Після того як таблиця готова, виберіть будь-яку заповнену комірку і натисніть Alt і F
  10. У вікні макросу в полі вписати XlsToDBF, регістр не важливий.
  11. Натисніть «Виконати».
  12. Якщо ви правильно підготували і оформили дані, то в папці, де знаходиться вихідний XLS, буде збережений і файл бази даних.

Якщо ви не хочете нічого міняти в Office, не довіряєте надбудовам і сторонніх додатків, то можна запропонувати більш трудомісткий спосіб перетворити файл XLS в DBF:

  1. Придбайте і встановіть програму Microsoft Access.
  2. В Excel підготуйте і збережіть документ.
  3. Натисніть кнопку «Відкрити» в MS Access і виберіть файл.
  4. Тепер потрібно коректно налаштувати імпорт.
  5. Виберіть лист, з якого почнете. Якщо їх кілька, все одно доведеться робити по одному.
  6. Якщо в таблиці є рядок заголовків, поставте відповідну галочку.
  7. Далі, можна змінити ім'я таблиці.
  8. Тепер натисніть на «Зовнішні дані».
  9. Тисніть кнопку «Експорт», «Додатково».
  10. Виберіть «Файл dBase».
  11. Вкажіть ім'я та місце збереження.

Такий спосіб не завжди працює вдало, часто виникають помилки в обробці даних, в подальшому збереженні. І він дуже довгий і незручний.

Конвертація

Щоб не мучитися самим з офісними програмами, створено безліч програм, що дозволяють перевести дані з одного формату в інший. По-перше, майже всі потужні програми по роботі з СУБД припускають можливість експорту в XLS і завантаження з нього. По-друге, є невеликі утиліти, що спеціалізуються на конвертації. Ось деякі з них:


У всіх цих програмах перетворення зводиться до того, що потрібно відкрити початковий файл, А потім виконати команду «Конвертувати» або «Експорт».

існують і безкоштовні сервіси онлайн-перетворення. На таких сайтах пропонується надіслати (завантажити) вихідний файл, натиснути «Конвертувати», після чого з'явиться посилання на перетворений документ. Наскільки можна довіряти таким послугам, рішення індивідуальне, на свій страх і ризик.

Таким чином, відкрити DBF в програмі Excel можна, але якщо його версія 2007 і новіше, то зробити з ним більше нічого не вийде, тільки подивитися. Для редагування, збереження в XLS є спеціальні надбудови або програми, так само як і для перетворення в зворотному напрямку. Якщо у вас є досвід конвертації і роботи з DBF в різних додатках, поділіться своїми порадами в коментарях.

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

Але, на жаль, Ексель, починаючи з версії Excel 2007, припинив повноцінну підтримку зазначеного формату. Тепер в цій програмі можна тільки переглянути вміст DBF-файлу, а зберегти дані з вказаним розширенням вбудованими інструментами додатки вже не вийде. На щастя, є інші можливості конвертації даних з програми Excel в потрібний нам формат. Розглянемо, яким чином це можна виконати.

В Excel 2003 і в більш ранніх версіях цієї програми можна було зберегти дані в форматі DBF (dBase) стандартним шляхом. Для цього потрібно було клікнути по пункту «Файл» в горизонтальному меню програми, а потім в списку вибрати позицію "Зберегти як…". У запустити віконці збереження зі списку потрібно вибрати найменування потрібного формату і натиснути на кнопку «Зберегти».

Але, на жаль, починаючи з версії Excel 2007, розробники Microsoft порахували dBase устаревающим, а сучасні формати Ексель занадто складними для того, щоб витрачати час і кошти на забезпечення повної сумісності. Тому в Excel залишилася можливість читати DBF-файли, але підтримка збереження даних в цьому форматі вбудованими програмними інструментами була припинена. Проте, існують деякі способи конвертації даних збережених в Excel в DBF за допомогою застосування надбудов та іншого програмного забезпечення.

Спосіб 1: програма WhiteTown Converters Pack

Існує ряд програм, які дозволяють конвертувати дані з Excel в DBF. Один з найбільш простих способів конвертації даних з Excel в DBF є використання пакету утиліт для конвертації об'єктів з різним розширенням WhiteTown Converters Pack.

Хоча процедура установки даної програми проста і інтуїтивно зрозуміла, все-таки докладно зупинимося на ній, вказавши на деякі нюанси.

  1. Після того, як ви завантажили і запустили інсталятор, відразу відкривається віконце майстри установки, В якому пропонується вибрати мову для подальшого проведення процедури інсталяції. За замовчуванням там повинен відобразитися ту мову, який встановлений на вашому екземплярі Windows, але при бажанні його можна поміняти. Ми ж це робити не будемо і просто тиснемо на кнопку «OK».
  2. Далі запускається вікно, в якому вказується місце на системному диску, куди буде встановлюватися утиліта. За замовчуванням це папка «Program Files» на диску «C». Тут краще теж нічого не міняти і натиснути на клавішу «Далі».
  3. Потім відкривається вікно, в якому можна вибрати, які саме напрямки перетворення ви хочете мати. За умовчанням вибрані всі доступні компоненти конвертації. Але, можливо, деякі користувачі не захочуть встановлювати їх все, так як кожна утиліта займає місце на жорсткому диску. У всякому разі, саме для нас важливо, щоб стояла галочка біля пункту «XLS (Excel) to DBF Converter». Установку інших компонентів пакета утиліт користувач може вибрати на свій розсуд. Після того, як настройка проведена, не забуваємо клікнути по клавіші «Далі».
  4. Після цього відкривається вікно, в якому проводиться додавання ярлика в папці «Пуск». За замовчуванням ярлик називається «WhiteTown», Але при бажанні можна змінити його найменування. Тиснемо на клавішу «Далі».
  5. Потім запускається вікно, в якому запитується, чи створювати ярлик на робочому столі. Якщо ви хочете, щоб він був доданий, то залиште галочку біля відповідного параметра, якщо не хочете, то зніміть її. Потім, як завжди, тиснемо на клавішу «Далі».
  6. Після цього відкривається ще одне вікно. У ньому вказані основні параметри установки. Якщо користувача щось не влаштовує, і він хоче відредагувати параметри, то слід натиснути на клавішу "Назад". Якщо все в порядку, то клацаємо по кнопці «Встановити».
  7. Починається процедура установки, прогрес якої буде відображати динамічний індикатор.
  8. потім відкривається інформаційне повідомлення на англійською, В якому висловлюється подяка з приводу інсталяції даного пакету. Тиснемо на клавішу «Далі».
  9. В останньому віконці майстри установки повідомляється, що програма WhiteTown Converters Pack успішно встановлена. Нам залишається тільки натиснути на кнопку «Завершити».
  10. Після цього на робочому столі з'явиться папка під назвою «WhiteTown». Вона містить ярлики утиліт за конкретними напрямами конвертації. Відкриваємо цю папку. Перед нами постає велике число утиліт, що входять в пакет WhiteTown з різних напрямків конвертації. При цьому кожен напрямок має окрему утиліту для 32-бітної і 64-бітної операційної системи Windows. Відкриваємо додаток з найменуванням «XLS to DBF Converter», Відповідне розрядності вашої ОС.
  11. Запускається програма XLS to DBF Converter. Як бачимо, інтерфейс англомовний, але, тим не менш, він інтуїтивно зрозумілий.

    Відразу відкривається вкладка «Input» («Введення»). Вона призначена для того, щоб вказати об'єкт, який слід конвертувати. Для цього тиснемо на кнопку «Add» («Додати»).

  12. Після цього відкривається стандартне віконце додавання об'єкта. У ньому потрібно перейти в ту директорію, де розміщена потрібна нам книга Excel c розширенням xls або xlsx. Після того, як об'єкт знайдений, виділяємо його найменування і тиснемо на кнопку «Відкрити».
  13. Як бачимо, після цього шлях до об'єкта відобразився у вкладці «Input». Тиснемо на клавішу «Next» («Далі»).
  14. Після цього ми автоматично переміщаємося в другу вкладку «Output» («Висновок»). Тут слід звернути увагу на яку саме директорію буде виводитися готовий об'єкт з розширенням DBF. Для того, щоб вибрати папку збереження готового DBF-файлу, тиснемо на кнопку «Browse ...» («Переглянути»). Відкривається невеликий список з двох пунктів «Select File» («Вибрати файл») і «Select Folder» («Вибрати папку»). Насправді ці пункти лише означають вибір різного виду вікон навігації для вказівки папки збереження. Робимо вибір.
  15. У першому випадку це буде звичайне вікно "Зберегти як…". У ньому будуть відображатися, як папки, так і вже існуючі об'єкти dBase. Переходимо в ту директорію, де бажаємо зробити збереження. Далі в поле "Ім'я файлу" вказуємо то найменування, під яким бажаємо, щоб значився об'єкт після конвертації. Після цього тиснемо на кнопку «Зберегти».

    Якщо ж ви оберете варіант «Select Folder», То відкриється спрощене віконце вибору директорії. У ньому будуть відображатися тільки папки. Вибираємо папку для збереження і тиснемо на кнопку «OK».

  16. Як бачимо, після будь-якого з цих дій шлях до папки для збереження об'єкта висвічується у «Output». Для переходу до наступної вкладки клацаємо по клавіші «Next» («Далі»).
  17. В останній вкладці «Options» («Параметри») Дуже багато налаштувань, але нас найбільше цікавить «Type of memo fields» («Тип поля memo»). Кількома по полю, в якому за замовчуванням варто настройка «Auto» («Авто»). Відкривається список типів dBase для збереження об'єкта. Цей параметр дуже важливий, тому що далеко не всі програми, що працюють з dBase, вміють обробляти всі типи об'єктів з даними розширенням. Тому заздалегідь потрібно знати, який тип обрати. Існує можливість вибору з шести різних типів:
    • dBASE III;
    • FoxPro;
    • dBASE IV;
    • Visual FoxPro;
    • \u003e SMT;
    • dBASE Level 7.

    Робимо вибір того типу, який потрібен для застосування в конкретній програмі.

  18. Після того, як вибір зроблено, можна переходити до безпосередньої процедури конвертації. Для цього тиснемо на кнопку «Start» («Старт»).
  19. Запускається процедура перетворення. Якщо в книзі Ексель є кілька листів з даними, то для кожного з них буде створений окремий DBF-файл. Про завершення процесу конвертації буде свідчити зелений індикатор прогресу. Після того, як він дійде до кінця поля, тиснемо на кнопку «Finish» («Фініш»).

Готовий документ буде розташований в тій директорії, яка була вказана у вкладці «Output».

Єдиний істотний недолік способу із застосуванням пакета утиліт WhiteTown Converters Pack полягає в тому, що безкоштовно можна буде провести тільки 30 процедур конвертації, а потім доведеться купувати ліцензію.

Спосіб 2: надбудова XlsToDBF

Конвертувати книгу Ексель в dBase безпосередньо через інтерфейс програми можна за допомогою установки сторонніх надбудов. Однією з кращих і найбільш зручних з них є надбудова XlsToDBF. Розглянемо алгоритм її застосування.

  1. Після того, як завантажили архів XlsToDBF.7z з надбудовою, розпаковуємо з нього об'єкт під назвою XlsToDBF.xla. Так як архів має розширення 7z, то розпакування можна проводити або стандартною програмою для цього розширення 7-Zip, або за допомогою будь-якого іншого архіватора, який підтримує роботу з ним.
  2. Після цього запускаємо програму Ексель і переходимо у вкладку «Файл». Далі подорожуємо у розділ «Параметри» через меню в лівій частині вікна.
  3. У віконці параметрів натискаємо по пункту «Компонентами». Переміщаємося в праву частину вікна. У самому його низу розташоване поле «Управління». Переставляємо в ньому перемикач в позицію «Надбудови Excel» і клацаємо по кнопці «Перейти ...».
  4. Відкривається невелике віконце управління надбудовами. Тиснемо в ньому на кнопку «Огляд ...».
  5. Запускається віконце відкриття об'єкта. Нам потрібно перейти в ту директорію, де знаходиться розпакований архів XlsToDBF. Заходимо в папку під однойменною назвою і виділяємо об'єкт з найменуванням «XlsToDBF.xla». Після цього тиснемо на кнопку «OK».
  6. Потім ми повертаємося в віконце управління надбудовами. Як бачимо, в списку з'явилося найменування «XLS -\u003e DBF». Це і є наша надбудова. Біля неї повинна стояти галочка. Якщо галочка відсутня, то ставимо її, а потім тиснемо на кнопку «OK».
  7. Отже, надбудова встановлена. Тепер відкриваємо документ Ексель, дані з якого потрібно перетворити в dBase, або ж просто набираємо їх на аркуші, якщо документ ще не створений.
  8. Тепер нам потрібно буде зробити деякі маніпуляції з даними, щоб підготувати їх до конвертації. Перш за все, додаємо два рядки над шапкою таблиці. Вони повинні бути найпершими на аркуші і мати найменування на вертикальній панелі координат «1» і «2».

    У самій верхній лівій клітинці вписуємо найменування, яке ми хочемо привласнити створюваному DBF-файлу. Воно складається з двох частин: власне назви і розширення. Допускається використання тільки латиниці. Приклад такого найменування - «UCHASTOK.DBF».

  9. У першій клітинці праворуч від найменування потрібно вказати кодування. Існує два варіанти кодування із застосуванням даної надбудови: CP866 і CP1251. якщо осередок B2 порожня або в ній встановлено будь-яке значення відмінне від «CP866», То за замовчуванням буде застосовуватися кодування CP1251. Ставимо ту кодування, яку ми вважаємо необхідною або залишаємо поле порожнім.
  10. Далі переходимо до наступного рядка. Справа в тому, що в структурі dBase кожен стовпець, іменований полем, має свій тип даних. Існують такі їх позначення:
    • N (Numeric) - числовий;
    • L (Logical) - логічний;
    • D (Date) - дата;
    • C (Character) - строковий.

    Крім того, в строковому ( Cnnn) І числовому типі ( Nnn) Після найменування у вигляді літери слід вказувати максимальна кількість символів в поле. Якщо в числовому типі застосовуються десяткові знаки, то їх кількість теж потрібно вказати після точки ( Nnn.n).

    Існують і інші типи даних в форматі dBase (Memo, General тощо), але дана надбудова з ними працювати не вміє. Втім, з ними не вмів працювати і Excel 2003, коли ще підтримував конвертацію в DBF.

    У нашому конкретному випадку перше поле буде строковим шириною в 100 символів ( C100), А інші поля будуть числовими шириною в 10 символів ( N10).

  11. У наступному рядку розташовані найменування полів. Але справа в тому, що вони теж повинні бути внесені на латиниці, а не на кирилиці, як у нас. Також в найменуванні полів не допускаються пропуски. Перейменовуємо їх згідно з цими правилами.
  12. Після цього підготовку даних можна вважати закінченою. Виділяємо на аркуші курсором з затиснутою лівою клавішею миші весь діапазон таблиці. Потім переходимо у вкладку «Розробник». За замовчуванням вона відключена, тому перед подальшими маніпуляціями потрібно її активувати і включити роботу макросів. Далі на стрічці в блоці налаштувань «Код» натискаємо по значку «Макроси».

    Можна зробити і трохи простіше, набравши комбінацію гарячих клавіш Alt + F8.

  13. Запускається віконце макросів. У полі «Ім'я макросу» вводимо найменування нашої надбудови «XlsToDBF» без лапок. Регістр при цьому не важливий. Далі клацаємо по кнопці «Виконати».
  14. Макрос в фоновому режимі виконує обробку. Після цього в тій же папці, де розташований вихідний Excel-файл, буде сформований об'єкт з розширенням DBF з тим найменуванням, яке було задано в осередку A1.

Як бачимо, даний спосіб значно складніше попереднього. Крім того, він дуже обмежений за кількістю використовуваних типів полів і створюваних типів об'єктів з розширенням DBF. Ще одним недоліком є \u200b\u200bте, що директорію створення об'єкта dBase можна призначати тільки перед процедурою конвертації, шляхом прямого переміщення в папку призначення вихідного Excel-файлу. серед переваг даного способу можна відзначити те, що на відміну від попереднього варіанту, він абсолютно безкоштовний і практично всі маніпуляції проводяться безпосередньо через інтерфейс Ексель.

Спосіб 3: програма Microsoft Access

Хоча у нових версій Excel і немає вбудованого способу збереження даних в форматі DBF, але, тим не менш, варіант із застосуванням додатки Microsoft Access найбільше наблизився до того, щоб назвати його стандартним. Справа в тому, що ця програма випущена тим же виробником, що і Ексель, і також входить в пакет Microsoft Office. До того ж, це найбезпечніший варіант, так як не потрібно буде зв'язуватися з програмним забезпеченням сторонніх виробників. Microsoft Access спеціально призначений для роботи з базами даних.

  1. Після того, як всі необхідні дані на аркуші в Ексель введені, для того, щоб конвертувати їх у формат DBF, потрібно спочатку зробити збереження в одному з форматів Excel. Для цього натискаємо на іконку у вигляді дискети в лівому верхньому кутку вікна програми.
  2. Відкривається вікно збереження. Переходимо в ту директорію, де бажаємо, щоб файл був збережений. Саме з цієї папки його потрібно буде потім відкрити в Microsoft Access. Формат книги можна залишити за замовчуванням xlsx, а можна поміняти на xls. В даному випадку це не критично, так як все одно ми зберігаємо файл тільки для того, щоб перетворити його в DBF. Після того, як всі налаштування виконані, тиснемо на кнопку «Зберегти» і закриваємо вікно Excel.
  3. Запускаємо програму Microsoft Access. Переходимо у вкладку «Файл», Якщо вона відкрилася в іншій вкладці. Тиснемо на пункт меню «Відкрити», Розташований в лівій частині вікна.
  4. Запускається вікно відкриття файлу. Переходимо в ту директорію, де ми зберегли файл в один з форматів Excel. Щоб він відобразився у вікні, переставляємо перемикач формату файлів в положення «Книга Excel (* .xlsx)» або «Microsoft Excel (* .xls)», В залежності від того, в якому з них книга була збережена. Після того, як найменування потрібного нам файлу відобразилося, виділяємо його і тиснемо на кнопку «Відкрити».
  5. відкривається вікно "Зв'язок з електронною таблицею» . Воно дозволяє максимально коректно перемістити дані з файлу Excel в Microsoft Access. Нам потрібно вибрати лист Ексель, дані з якого ми збираємося імпортувати. Справа в тому, що навіть якщо в файлі Excel містилася інформація на кількох аркушах, то імпортувати її в Access можна тільки окремо і, відповідно, потім перетворити її в окремі файли DBF.

    Також існує можливість імпорту інформації окремих діапазонів на аркушах. Але в нашому випадку це не потрібно. Встановлюємо перемикач в позицію «Листи», А потім вибираємо той лист, звідки збираємося брати дані. Коректність відображення інформації можна переглянути в нижній частині вікна. Якщо все задовольняє, тиснемо на кнопку «Далі».

  6. У наступному вікні, якщо ваша таблиця містить заголовки, потрібно поставити галочку біля пункту «Перший рядок містить заголовки стовпців». Потім тиснемо на кнопку «Далі».
  7. У новому вікні зв'язку з електронною таблицею можна при бажанні змінити ім'я пов'язаного елемента. Потім тиснемо на кнопку «Готово».
  8. Після цього відкриється діалогове вікно, в якому буде повідомлення про те, що зв'язування таблиці з файлом Excel завершено. Тиснемо на кнопку «OK».
  9. У лівій частині інтерфейсу програми з'явиться найменування таблиці, яке ми присвоїли їй в останньому вікні. Двічі клацаємо по ньому лівою клавішею миші.
  10. Після цього таблиця відобразиться у вікні. Переміщаємося у вкладку "Зовнішні дані".
  11. На стрічці в блоці інструментів «Експорт» натискаємо по напису «Додатково». У списку вибираємо пункт «Файл dBase».
  12. Відкривається вікно експорту в формат DBF. У полі "Ім'я файлу" можна вказати місце зберігання файлу і його найменування, якщо ті, які вказані за умовчанням, вам з якоїсь причини не підходять.

    У полі "Формат файлу" вибираємо один з трьох типів формату DBF:

    • dBASE III (за замовчуванням);
    • dBASE IV;
    • dBASE 5.

    Потрібно врахувати, що чим сучасніше формат (вище порядковий номер), то тим більше існує можливостей по обробці в ньому даних. Тобто, вище ймовірність того, що в файлі вдасться зберегти всі дані таблиці. Але в той же час нижче ймовірність того, що програма, куди ви в майбутньому збираєтеся імпортувати файл DBF, Буде сумісна саме з цим типом.

    Після того, як всі налаштування виставлені, тиснемо на кнопку «OK».

  13. Якщо після цього з'явилося повідомлення про помилку, то спробуйте експортувати дані, використовуючи інший тип формату DBF. Якщо ж все пройшло нормально, то з'явиться вікно, в якому повідомляється, що експорт виконаний успішно. Тиснемо на кнопку «Закрити».

Створений файл у форматі dBase буде знаходитися в тій директорії, яка була вказана в вікні експорту. Далі з ним ви можете проводити будь-які маніпуляції, включаючи імпорт його в інші програми.

Як бачимо, незважаючи на те, що в сучасних версіях Excel відсутня можливість збереження файлів у форматі DBF вбудованими інструментами, проте, цю процедуру можна здійснити за допомогою застосування інших програм і надбудов. При цьому слід зазначити, що найбільш функціональний спосіб конвертації - це використання набору утиліт WhiteTown Converters Pack. Але, на жаль, кількість безкоштовних перетворень в ньому обмежена. Надбудова XlsToDBF дозволяє виконати конвертацію абсолютно безкоштовно, але процедура набагато складніше. До того ж функціонал даного варіанту дуже обмежений.

«Золотою серединою» є спосіб з використанням програми Access. Як і Excel - це розробка компанії Microsoft, а тому стороннім додатком його вже не назвеш. До того ж даний варіант дозволяє конвертувати файл Excel в кілька типів формату dBase. Хоча за цим показником Access все-таки поступається програмі WhiteTown.

Поділитися