Как да създадете dbf файл в excel. Създаване на dbf файл от Excel - VBA

как да създам dbf файл от Excel с помощта на ADO в ADO Обърках се......това е специфичната информация.... 1. свързване с dbf (и с какво друго можете да се свържете с помощта на ado и как); 2. създаване на dbf файл (други опции); 3.запис; 4.спестяване; 5.затваряне. благодаря за всякаква информация

какво да търсите в тази тема или напълно да игнорирате.....по темата за ADO може би е по-добре да създадете тема.....широко използване на ADO

пестеливо как се оказва

Код на задачата: “Създаване на dbf файл от Excel”

Текстови

Списък на програмата

"::: Етап 1 - Определяне откъде работим от homeDir=Wscript.ScriptFullName "::: Това е пълният път на нашия файл k=Instrrev(homeDir,"\") "::: Търсим "\ " в края homeDir=left (homeDir,(k-1)) "::: Това е чистото име на директорията "::: Стъпка 2 - Създайте ADO връзка и празен набор от записи Set Conn = CreateObject("ADODB .Connection") Set RS = CreateObject(" ADODB.Recordset") DSNName = "DRIVER=Microsoft dBase Driver (*.dbf);DBQ=" DSNName = DSNName & HomeDir "::: Етап 3 - Отворете връзката Conn.Open DSNName "::: Етап 4 - подгответе SQL-оператора за създаване на таблица SQL="създайте таблица Testtable (N1 Float, N2 Float)" "::: Етап 5 - изпълнете го RS.Open sql,Conn,3,3 " ::: Етап 6 - Добавяне на 100 записа към таблицата За i=1 до 100 SQL="вмъкване в стойности на тестовата таблица (" & cstr(i) & "," & Cstr(2*i-1) & ") " RS.Open sql,Conn,3,3 Next ":: : Етап 7 - сума... SQL="Изберете сума(N1),сума(N2) от Testtable" RS.Open SQL,Conn,3,3 SS1 =RS(0) SS2=RS(1) MsgBox SS1 MsgBox SS2 Rs.Close SQL="Drop table Testtable" RS.Open sql,Conn,3,3 MsgBox "Таблицата е изпусната!"

DBF е широко използван формат за съхранение на данни, появил се през 80-те години на миналия век. Форматът е използван за първи път в семейството на dBase DBMS. Поради популярността и широкото използване на dBase са създадени много подобни на dBase софтуерни продукти, наричани общо xBase. Въпреки значителната възраст на формата, той все още е доста широко използван. Тази статия обсъжда как да работите с DBF от 1C:Enterprise.

В 1C:Enterprise се използва специален софтуерен обект xBase за работа с файлове във формат DBF (версия dBase III). Работата с този обект обикновено не създава затруднения.

внимание!

Когато работите с DBF файлове, не забравяйте, че името на файла трябва да отговаря на ограничение 8.3.

внимание!

Обектът xBase е достъпен както от страната на клиента, така и от страната на сървъра. Трябва да мислите за взаимодействието клиент-сървър, когато решавате всеки конкретен проблем.

Четене на DBF файл

Четенето на данни от DBF файл се извършва в няколко последователни стъпки:

  1. Създаване на XBase обект;
  2. Отваряне на файл;
  3. Последователно преминаване през всички редове на файла и четене на стойностите на полетата;
  4. Затваряне на файла.
DBP = Нов XBase; DBP. OpenFile("D:\MyFile.dbf"); // Етап 2. Отваряне на файла Докато цикълът на истината // Етап 3. Преминаване през редовете на файлаДоклад(DBF.NAME); Ако НЕ е DBP. Next() Тогава // Позиция на следващия запис Прекъсване; endIf; EndCycle; DBP. CloseFile(); // Етап 4. Затваряне на файла

Можете да използвате леко модифициран алгоритъм за итерация по редовете на файл:

Все още НЕ DBF. Отчет за цикъл AtEnd(). (DBF.NAME); DBP. Следващия(); EndCycle;

Качване в DBF файл

Етапи на качване в DBF файл:

  1. Създаване на XBase обект;
  2. Посочване на кодирането (ако не е посочено, ще се използва ANSI кодиране);
  3. Описание на полетата;
  4. Създаване на файл;
  5. Примка с добавяне и запълване на линии;
  6. Затваряне на файла.

Нека да разгледаме този процес с пример:

DBP = Нов XBase; // Етап 1. Създаване на XBase обект DBP. Кодиране = EncodingXBase. OEM; // Етап 2. Задаване на кодирането DBP. Полета. Add("CODE" , "S" , 9 ); // Етап 3. Описание на името и типа на полето DBP. Полета. Add("NAME" , "S" , 40 ); DBP. CreateFile("D:\MyFile.dbf"); // Етап 4. Създаване на файлИзбор = Директории. Номенклатура. Избирам(); Чао Избор. Next() Loop DBP. Добавяне(); // Добавяне на ред DBP. КОД = Проба. Код; // Попълнете стойността на полето DBP. ИМЕ = Избор. име; DBP. Напиши(); // Напишете реда EndCycle; DBP. Затваряне на файла(); // Етап 6. Затваряне на файла

При посочване на кодирането се използва типът XBase Encoding, който може да приеме две стойности:

  • ANSI– Windows формат;
  • OEM– DOS формат.

Добавянето на ново поле при описание на структура има синтаксиса

Добавете (< Имя>, < Тип>, < Длина>, < Точность>)

Предлагат се следните видове:

  • “N” – число;
  • “S” – низ;
  • “D” – дата;
  • “L” – булево;
  • “F” – подобно на “N” – число.

Дължината на полето е необходима за типовете полета "N", "F" и "S".

Работа с индекси

Индексният файл може да се използва заедно с DBF файла, който може да съдържа информация за един или повече индекси. Наличието на индекси дава възможност да се използва търсене, а не само последователно търсене на всички редове на файла.

Когато създавате индексен файл, трябва да посочите:

  • Списък с индекси;
  • Път за запазване на индексния файл (на етап 4 от качването).

Пример за създаване на индекс файл:

DBP . Индекси. Add("INDCODE" , "CODE" ); DBP. Създаване на файл("D:\MyFile.dbf" , "D:\index.cdx" );

Синтаксисът за добавяне на нов индекс е:

Добавете (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

За да използвате индекси при четене от DBF файл:

  • Посочете пътя до индексния файл (на етап 2 от изтеглянето);
  • Задайте текущия индекс.

Пример за отваряне на DBF файл с помощта на индекс файл:

DBP . OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); DBP. CurrentIndex = dbf. Индекси. INDCODE;

внимание!

При отваряне на DBF файл позиционирането се извършва на първия запис във файла. Първият запис във файла не съвпада с първия запис в индекса. Поради това, когато използвате индекси, трябва да се позиционирате на първия ред от индекса, преди да преминете последователно през редовете. Това може да стане с помощта на метода First(), например:

DBP. Първо ();

Една от двете функции може да се използва за търсене:

  • намирам (< Ключ>, < Режим >) ;
  • FindByKey(< Режим >) .

В резултат на двете функции се връща стойност от тип Boolean (независимо дали е намерен запис с посочените условия или не). Ако търсенето е успешно, текущият показалец се задава на намерения ред. Една от следните стойности може да се използва като режим на търсене:

  • «>=»;
  • «>»;
  • «<=»;
  • «<«.

Нека да разгледаме търсенето в DBF файл, използвайки примери:

DBP = Нов XBase; DBP. OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); // При отваряне на DBF файл се посочва допълнителен индексен файл DBP. CurrentIndex = dbf. Индекси. INDCODE; // Задаване на текущия индекс // търсене чрез метода Find:Ако DBP. Find("000000003" , "=" ) Тогава Report( + DBP. NAME); Друг отчет ("Не е намерен"); endIf; // търсене чрез метода FindByKey: DBP. Ключ. КОД = "000000002" ; Ако DBP. FindByKey("=" ) Тогава Доклад( „Намерен. Име на елемента: “+ DBP. ИМЕ); Друг отчет ("Не е намерен"); endIf; DBP. Затваряне на файла();

Изтриване на записи в DBF файл

Изтриването на запис се извършва чрез метода Delete ():

DBP . Изтрий();

Но когато използвате този метод, записът не се изтрива окончателно от файла, а се маркира като изтрит. При итериране на редове, записите, маркирани за изтриване, се пропускат. Ако искате да обходите целия файл, включително записи, маркирани за изтриване, трябва да зададете свойството на True. Показване Изтрито xBase обект. Можете да разберете дали даден запис е маркиран за изтриване или не, като използвате функцията RecordDeleted(). За да премахнете знака за изтриване, използвайте метода Restore().

DBP . DisplayDeleted = Вярно; Все още НЕ DBF. AtEnd() Loop If DBP. RecordDeleted() След това DBP. Възстанови(); endIf; DBP. Следващия(); EndCycle;

За да премахнете директно маркираните записи, използвайте метода Shrink():

DBP . Компресирайте();

Ако трябва да изтриете директно всички записи във файл, можете да използвате метода ClearFile():

DBP . ClearFile();

Зареждане от DBF чрез ADO

ADO технологията може да се използва за работа с DBF файлове. ADO драйверите са включени в операционната система Windows и не е необходимо да се инсталират допълнително.

Нека да разгледаме пример за код за четене от DBF файл с помощта на технологията ADO:

ADO = Нов COMObject("ADODB.Connection"); // Създаване на COM обект ADO. отворено( "Доставчик=Microsoft.Jet.OLEDB.4.0; |Източник на данни=""D:\""; |Разширени свойства=DBASE III"); DB = ADO. Execute("Изберете * от MyFile"); // искане за получаване на всички записи от файла MyFile.DBFЧао BD. EOF= 0 Цикъл //Преминаване през записите на DBF файловеОтчет(БД. Полета("Име" ). стойност); // Пример за достъп до стойност на поле DB. Преместване на следващия(); //Преминете към следващия запис EndCycle; ADO. Близо();

Показаният пример използва низа за връзка "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\";Extended Properties=DBASE III". В този ред:

  • Доставчик е използвания драйвер;
  • Източник на данни – пътят, където се намира DBF файлът. Пътят е посочен точно до директорията. Името на файла се използва като име на таблица в заявките;
  • Разширени свойства – при достъп до DBF файлове това е задължителен параметър. Можете да посочите файловия формат

внимание!

При четене чрез посочения метод, кодирането по подразбиране е OEM. За да промените кодирането на ANSI, трябва да зададете параметъра HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage на „ANSI“ в системния регистър на Windows.

Все още имате въпроси?
Попитайте в коментарите към статията.

Безплатен универсален DBF редактор, който ви позволява да отваряте съществуващи и да създавате нови бази данни. Той е много малък по размер, може да се стартира от флашка и в същото време има много разширени инструменти за работа с DBF файлове, включително дори поддръжка за SQL заявки!

Галерия от екранни снимки

Обикновено на сайта покриваме програми, които ще представляват интерес за широк кръг читатели, но днес случаят не е съвсем обикновен :). Веднъж работих като един вид „компютърен специалист“ в няколко държавни служби и там често трябваше да се занимавам с различни програми, работещи на базата на FoxPro...

Основният проблем на всички тези приложения беше, че обикновен потребител може лесно да прецака базата данни, така че след това да не може да бъде отворена със стандартни средства, така че трябваше да прибягнат до изкривяване, за да я върнат към живот (което не винаги работеше, предвид „способностите“ на „дивите потребители“ :)).

И сега, няколко години по-късно, тъй като вече не работя там, получихме запитване по имейл за добавяне на нова безплатна програма за редактиране на DBF бази данни, която има просто име - Sdbf. нека поговорим за това :)

Сравнение с платен аналог

Sdbf, въпреки своята преносимост (може да работи от флаш устройство!) и малкия си размер, е доста усъвършенстван редактор на база данни, който ви позволява да създавате, редактирате и експортирате всяка база данни във формат DBF, от спецификацията xBaseIII до модерния xVisualFoxPro! Нека сравним функционалността на Sdbf с възможностите на един от най-модерните редактори от този вид, DBF Commander Professional:

От таблицата по-горе виждаме, че програмите се различават леко по функционалност, но Sdbf, първо, е преносим (което обикновено е важно, тъй като всеки компютърен майстор предпочита да носи набор от необходими програми на флаш устройство), и второ, той е напълно безплатно!

Първо стартиране на Sdbf

За да стартирате програмата, просто я разархивирайте от изтегления архив на всяко място и отворете получения EXE файл. Пред нас ще се появи празен прозорец като този:

Drag&Drop, уви, не се поддържа, така че за да започнем, ще трябва да извикаме менюто „Файл“ и да изберем едно от двете налични действия: „Създаване“ на нова база данни или „Отваряне“ на съществуваща. Нека отворим съществуваща база данни:

Съдържанието на избраната база данни ще се отвори пред нас под формата на таблица. Нулевият ред показва имената на полетата, а от първия ред - самото съдържание. Под съдържанието има лента с инструменти и лента на състоянието.

Последният показва доста полезна служебна информация, включително броя на записите в базата данни, кодиране, дата на създаване и автоматично определен формат. От форматите Sdbf не поддържа само по-ранни версии на xBase (I и II) и ви позволява да отваряте и създавате DBF файлове от следните типове:

  • xBase III - VII;
  • xClipper;
  • xFoxPro;
  • xVisualFoxPro.

Инструменти за търсене и филтриране на данни

Програмата Sdbf ви позволява директно да редактирате всяка клетка от отворена база данни, но необходимите клетки все още трябва да бъдат намерени ... Ако базата данни е малка и проста, тогава това може да се направи доста бързо и ръчно. Въпреки това, ако има няколко десетки или дори стотици записи, тогава търсенето може да бъде доста трудно.

Но това не е такъв проблем, тъй като Sdbf има няколко инструмента наведнъж, които ви позволяват да филтрирате ненужните данни и да показвате само това, от което се нуждаете!

Тези инструменти се намират в долната лента с инструменти. Тук първо има 8 бутона за навигация, които ви позволяват да навигирате в базата данни (стрелки), да добавяте/изтривате записи, както и да потвърждавате или отменяте промените. Функциите, от които се нуждаем, започват с деветия бутон - „Търсене“:

Когато бутонът е активиран, пред нас се появява малък прозорец с форма за търсене. Трябва да посочим текста, който да се търси и да изберем от падащия списък полето, в което да търсим. Сега щракнете върху бутона „Намери следващ“ и програмата автоматично ще избере реда след текущата селекция, който съдържа текста, който търсите. Повторното натискане на бутона ще маркира реда под текущия, който съдържа същите необходими данни и т.н.

Понякога в базите данни се натъквате на нестандартно форматиране на клетки: допълнителни интервали, раздели и други знаци, които не се показват визуално, но влияят на резултата от търсенето. Ако срещнете такъв случай, за да работи функцията нормално, ще трябва само да премахнете отметката от квадратчето „Въз основа на формат“ в долната централна част на прозореца за търсене и търсените низове ще започнат да се показват.

Функцията за търсене е удобна, когато трябва бързо да намерим единични срещания на конкретни данни. Но има моменти, когато би било по-удобно да се показват няколко реда наведнъж, които съдържат само определена информация. В този случай ще ни помогне втората функция (чийто бутон се намира непосредствено след бутона за търсене) - „Филтър“:

За да активираме филтрирането, първо трябва правилно да съставим заявка и да я въведем в специално предназначено поле (непосредствено зад бутона в централната част на лентата с инструменти). Принципът на подаване на заявка е прост, но не съвсем очевиден. Трябва първо да въведем името на полето, по което трябва да филтрираме таблицата на базата данни, и след това да приравним стойността на филтъра към конкретния текст, по който трябва да намерим всички редове.

Поставяме стойността в единични кавички, след което натискаме самия бутон „Филтър“ (става натиснат) и получаваме таблица, съдържаща данни само със стойностите, дефинирани за нас в посочените полета (в примера, филтрирахме всички редове със стойността „САЩ“ в полето „Държава“ (регистърът на името няма значение)). Можете да върнете таблицата в оригиналния й вид, просто като натиснете отново бутона „Филтър“ (отново се освобождава).

Полето за филтриране може да съдържа най-простите условия „и“ (за прецизиране на заявката с няколко полета) и „или“ (за алтернативен избор на данни от различни полета). За съжаление Sdbf не поддържа заявки за изключване (като „not“), но можем да заобиколим това ограничение по друг начин, който ще бъде обсъден по-долу.

Между другото, за да не въвеждате ръчно заявка за филтриране, можете да използвате следния трик: изберете произволен запис в полето, по който ще филтрирате, и натиснете клавишната комбинация „Alt+F“ (не F4 :))). Заявката ще се генерира автоматично и стойността ще съдържа знака „*“, който е маска за търсенеи съвпада с произволен брой произволни знаци.

Уви, това е единственият тип маски, които могат да се използват в Sdbf и, което е още по-тъжно, една заявка може да съдържа само една маска :(. Следователно, ако трябва да филтрирате едно и също поле по няколко параметъра, ще трябва да използвайте оператора “и” (бързо генериране на заявка чрез натискане на “CTRL+ALT+F”) или “или” (“SHIFT+ALT+F”).

Изпълнение на SQL заявки към таблици на база данни

Търсенето и филтрирането несъмнено са добри, но не винаги удобни. Когато броят на записите е голям, лесно можем да изгубим от поглед данните, от които се нуждаем, когато анализираме таблици. За този случай обаче Sdbf има отлична функция - поддръжка на SQL заявки!

Използвайки такива заявки в Sdbf, можем:

  1. Динамично форматирайте нашата таблица, създавайки селекция само за определени задължителни полета (изявления SELECT и SELECT TOP);
  2. Копиране на данни от една база данни в друга (INSERT FROM и INSERT INTO);
  3. Промяна и изтриване на съдържанието на определени редове (съответно UPDATE и DELETE);
  4. Групиране на паралелни заявки (UNION);
  5. Генериране на обобщени таблици (PIVOT).

За да започнем да работим със заявки, трябва да щракнете върху бутона „SQL Query“ в десния край на лентата с инструменти. Резултатът от подобно действие обаче ще бъде донякъде обезкуражаващ: съдържанието на току-що редактираната база данни ще изчезне и в горната част на работния прозорец ще се появи друг празен прозорец с две полета (в горната част е полето за извеждане на данни, а в долната част е полето за въвеждане).

Не се плашете :). Просто трябва веднага да въведете желаната SQL заявка в долното поле, като посочите името на желаната база данни. Ако не си спомняте това име, можете да активирате страничната лента на Sdbf (като щракнете върху сивата вертикална лента вдясно), която показва всички бази данни, които сте отваряли преди в списък:

Също така, за да ускорите работата си, препоръчително е да запомните горещите клавиши, които можете да видите, като извикате помощ чрез натискане на клавиша F1. Има само три от тях, но те могат значително да ускорят процеса на създаване на правилните заявки.

И така, комбинацията „CTRL+Space“ ще покаже изскачащ прозорец със списък с налични имена на бази данни (за да не гледате в страничната лента), „CTRL+F“ ще покаже списък с функции за текущия оператор, и “CTRL+Enter” ще започне процеса на изпълнение на заявката. Освен това, ако щракнете с десния бутон върху полето за въвеждане (извикване на контекстното меню), ще получим списък с оператори, поддържани от Sdbf.

Нека се върнем към нашата предишна екранна снимка и да разгледаме най-простата заявка, която е компилирана там. Базира се на оператора „SELECT“, което означава, че ни връща селекция. Параметърът за избор е „*“, което означава показване на всякакви данни, но можем да посочим там, разделени със запетаи, имената на всички полета в таблицата на базата данни.

Изборът, който разгледахме по-горе, е най-простият, но Sdbf ви позволява да извършвате по-сложни заявки. На следващата екранна снимка ще видим селекция, динамично генерирана таблица, състояща се от полета, които съдържат имената на клиентите, града, в който живеят и държавата. Освен това клиентите се филтрират по държава на пребиваване (САЩ) и резултатите се показват по азбучен ред:

Ако анализираме тази заявка, ще видим метода за избор по полета, който вече споменах, разделени със запетаи след оператора SELECT. След това същата индикация за името на базата данни, но сега заявката не свършва дотук.

Следващата стъпка е да се изброят основните операторски функции, които ще трябва да бъдат изпълнени в резултат на обработката на заявката. Тук има две от тях.

Първият - "къде" е подобен на филтъра, който обсъдихме по-рано, и изпълнява подобно действие - позволява ви да изберете само тези записи, които отговарят на условието.

Втората функция, “order by”, е отговорна за сортирането на резултатите, получени от едно от полетата (в този случай, от полето с името на клиента - “NAME”) по азбучен ред (параметър “asc”) или обърнат (“ desc”).

Естествено, даденият пример също е доста примитивен, но отразява общата същност на създаването и обработката на SQL заявки. Ако искате да научите повече за тях, съветвам ви да прочетете ръководствата тук: http://dimonchik.com/insert.html или https://www.sql.ru/articles/articles.aspx?g=SQL&s= 0.

Между другото, предимството на Sdbf е възможността да експортирате получената в резултат на заявка таблица като нова база данни или като HTML, RTF или CSV файл! За да направите това, просто извикайте контекстното меню на полето за показване на таблицата и изберете съответния елемент.

Допълнителни функции от лентата с менюта

Разбрахме основните възможности на Sdbf, но това не свършва дотук. Редица полезни и дори уникални функции са скрити в лентата с менюта, същата, която използвахме, за да отворим базата данни :) Така много полезни функции (които понякога ви позволяват да правите без SQL заявки) могат да бъдат намерени в „Таблица " меню:

Сред другите „полезни неща“, като промяна на кодирането и обединяване на бази данни, най-долу можем да намерим елемента „Промяна на структурата“. Този елемент отваря допълнителен прозорец, в който можем напълно да променим всички полета на отворената таблица, да добавим нови или да изтрием вече ненужни секции (същият прозорец се отваря при създаване на база данни от нулата).

По-конкретно, можем да променим реда на полетата, техните имена, типове, размери (брой знаци в клетка) и точност (битова дълбочина - обикновено се задава автоматично и в зависимост от типа на полето).

Единственото нещо, което трябва да запомните, когато редактирате (и особено създавате) бази данни е, че всеки тип база данни има свои собствени набори от типове полета и те често (ако не вземете предвид основните N, C, D) са различни. Например базите данни xClipper не поддържат полета с картинки (P, B), а xBase до седма версия не поддържа полета с автоматично нарастване (+). Тоест винаги трябва да помните за съвместимостта :).

Докато разглеждаме лентата с менюта, не забравяйте да погледнете менюто "Поле":

Тук има само две функции, но те могат да бъдат много полезни! Особено първият - „Замяна“. Тя ви позволява бързо и автоматично да замените стойности в цялата колона на определено поле или конкретни думи и символи в цялата база данни!

Функцията „Изчисли“ е аналог на формулите за автоматично изчисление на Excel и ни дава възможност да извършваме математически и статистически операции като намиране на автосума на поле, изчисляване на средно аритметично, както и максимални и минимални стойности. Естествено, за извършване на изчисления типовете полета трябва да са числови (N, F, I, O, B).

Последната функция, която не е толкова очевидна, но може да бъде полезна, е вградената HEX редактор :

Тя ви позволява да редактирате данните на всяка клетка. За да направите това, просто изберете съдържанието, което трябва да бъде променено, и изберете последния елемент в контекстното меню - „Отваряне в шестнадесетичен“. Това е всичко - можете да редактирате и запазите или веднага да отпечатате резултата!

Предимства и недостатъци на програмата

  • преносимост и малък размер;
  • поддръжка на почти всички видове DBF файлове;
  • възможност за създаване на бази данни от нулата;
  • поддръжка на SQL заявки;
  • вградена система за търсене, филтриране и редактиране на данни.
  • не ви позволява да посочите повече от една маска във филтъра;
  • Няма функция за отмяна.

заключения

Програмата Sdbf, със своя скромен размер и системни изисквания, ви позволява да правите, ако не всичко, то много, много с DBF бази данни... И внедряването на поддръжка за SQL заявки като цяло ви позволява да поемете работата по редактиране на база данни на ново ниво! С тяхна помощ можете лесно да компенсирате много недостатъци в работата чрез графичния интерфейс.

Най-голямото разочарование според мен беше липсата на най-тривиалната функция „Отмяна на последното действие“ в света на „CTRL+Z“: (Най-обидното е, че поради недоглеждане или невежество потребителят може напр. , случайно приложете автокорекция в цялото поле и връщането на данните вече няма да е възможно :(

За това можем да кажем, че програмата е повече от успешна във функционално отношение, но преди да работите с нея, винаги следвайте древното администраторско правило - СЪЗДАВАЙТЕ РЕЗЕРВНИ КЪПИ! И ще бъдете щастливи :)

P.S. Разрешено е свободното копиране и цитиране на тази статия, при условие че е посочена отворена активна връзка към източника и е запазено авторството на Руслан Тертишни.

DBF е популярен формат за съхранение и обмен на данни между различни програми и предимно между приложения, които поддържат бази данни и електронни таблици. Въпреки че е остарял, той продължава да бъде търсен в различни области. Например, счетоводните програми продължават активно да работят с него, а регулаторните и държавните органи приемат значителна част от отчетите в този формат.

Но, за съжаление, Excel, започвайки с Excel 2007, спря напълно да поддържа този формат. Сега в тази програма можете да преглеждате само съдържанието на DBF файла и запазването на данни с посоченото разширение с помощта на вградените инструменти на приложението вече няма да е възможно. За щастие има и други опции за конвертиране на данни от Excel във формата, от който се нуждаем. Нека да разгледаме как може да стане това.

В Excel 2003 и по-ранните версии на програмата можете да записвате данни във формат DBF (dBase), като използвате стандартния метод. За да направите това, трябваше да щракнете върху елемента "файл"в хоризонталното меню на приложението и след това изберете позиция в списъка, който се отваря "Запази като…". В прозореца за запазване, който се отваря, трябва да изберете името на желания формат от списъка и да кликнете върху бутона "Запазване".

Но, за съжаление, започвайки с Excel 2007, разработчиците на Microsoft смятат dBase за остарял, а съвременните формати на Excel са твърде сложни, за да отделят време и пари за осигуряване на пълна съвместимост. Поради това Excel запази възможността да чете DBF файлове, но поддръжката за запазване на данни в този формат с вградени софтуерни инструменти беше преустановена. Има обаче някои начини за конвертиране на данни, записани в Excel, в DBF с помощта на добавки и друг софтуер.

Метод 1: WhiteTown Converters Pack

Има редица програми, които ви позволяват да конвертирате данни от Excel в DBF. Един от най-лесните начини за конвертиране на данни от Excel в DBF е да използвате пакет от помощни програми за конвертиране на обекти с различни разширения WhiteTown Converters Pack.

Въпреки че процедурата за инсталиране на тази програма е проста и интуитивна, все пак ще се спрем на нея подробно, като посочим някои нюанси.

  1. След като изтеглите и стартирате инсталатора, веднага се отваря прозорец Съветници за инсталиране, което ви подканва да изберете език за по-нататъшни инсталационни процедури. По подразбиране трябва да показва езика, който е инсталиран на вашето копие на Windows, но можете да го промените, ако желаете. Ние няма да правим това и просто натискаме бутона. "ДОБРЕ".
  2. След това се отваря прозорец, който показва местоположението на системния диск, където ще бъде инсталирана помощната програма. По подразбиране това е папката "Програмните файлове"на диск "° С". Тук също е по-добре да не променяте нищо и да натиснете клавиша "по-нататък".
  3. След това се отваря прозорец, в който можете да изберете кои конкретни посоки на трансформация искате да имате. По подразбиране са избрани всички налични компоненти за преобразуване. Но някои потребители може да не искат да ги инсталират всички, тъй като всяка помощна програма заема място на твърдия диск. Във всеки случай за нас е важно да има отметка до артикула „XLS (Excel) към DBF конвертор“. Потребителят може да избере да инсталира останалите компоненти на пакета помощни програми по свое усмотрение. След като направите настройките, не забравяйте да кликнете върху бутона "по-нататък".
  4. След това се отваря прозорец, в който добавяте пряк път към папката "Старт". По подразбиране се извиква пряк път "Уайттаун", но можете да промените името му, ако желаете. Натисни бутона "по-нататък".
  5. След това се отваря прозорец с въпрос дали да се създаде пряк път на работния плот. Ако искате да бъде добавен, оставете отметка до съответния параметър; ако не искате, махнете отметката. След това, както винаги, натиснете бутона "по-нататък".
  6. След това се отваря друг прозорец. Той показва основните параметри на инсталацията. Ако потребителят не е доволен от нещо и иска да редактира параметрите, тогава натиснете бутона "Обратно". Ако всичко е наред, щракнете върху бутона "Инсталирай".
  7. Започва процедурата по инсталиране, напредъкът на която ще се показва от динамичен индикатор.
  8. След това се отваря информационно съобщение на английски, изразяващо благодарност за инсталирането на този пакет. Натисни бутона "по-нататък".
  9. В последния прозорец Съветници за инсталиранеСъобщава се, че програмата WhiteTown Converters Pack е инсталирана успешно. Всичко, което трябва да направим, е да натиснем бутона "Завършен".
  10. След това се извика папка "Уайттаун". Той съдържа помощни преки пътища за конкретни области на преобразуване. Отворете тази папка. Представени са ни голям брой помощни програми, включени в пакета WhiteTown за различни области на преобразуване. Освен това всяка посока има отделна помощна програма за 32-битови и 64-битови операционни системи Windows. Отворете приложението с името „XLS към DBF конвертор“, съответстващ на битовостта на вашата ОС.
  11. Програмата XLS to DBF Converter стартира. Както можете да видите, интерфейсът е на английски, но въпреки това е интуитивен.

    Разделът се отваря веднага "Вход" ("Влез"). Той е предназначен да посочи обекта, който трябва да бъде преобразуван. За да направите това, щракнете върху бутона "Добави" ("Добави").

  12. След това се отваря стандартен прозорец за добавяне на обект. В него трябва да отидете в директорията, където се намира необходимата работна книга на Excel с разширение xls или xlsx. След като обектът бъде намерен, изберете името му и щракнете върху бутона "Отворено".
  13. Както можете да видите, след това пътят до обекта се показва в раздела "Вход". Натисни бутона "Следващия" ("по-нататък").
  14. След това автоматично се преместваме във втория раздел "Изход" ("заключение"). Тук трябва да посочите в коя директория ще бъде изведен готовият обект с разширение DBF. За да изберете папката за запазване на готовия DBF файл, щракнете върху бутона „Преглед...“ ("Изглед"). Отваря се малък списък от два елемента "Избери файл" („Изберете файл“) И „Избор на папка“ („Избор на папка“). Всъщност тези точки означават само избор на различни типове навигационни прозорци, за да се посочи папката за запис. Ние правим избор.
  15. В първия случай това ще бъде обикновен прозорец "Запази като…". Той ще покаже както папки, така и съществуващи dBase обекти. Отиваме в директорията, където искаме да запазим. Следващ в полето "Име на файл"Посочваме името, под което искаме обектът да бъде изписан след конвертирането. След това кликнете върху бутона "Запазване".

    Ако изберете опцията „Избор на папка“, тогава ще се отвори опростен прозорец за избор на директория. Ще покаже само папки. Изберете папката за запазване и щракнете върху бутона "ДОБРЕ".

  16. Както можете да видите, след всяко от тези действия, пътят до папката за запазване на обекта ще се покаже в раздела "Изход". За да преминете към следващия раздел, щракнете върху бутона "Следващия" ("по-нататък").
  17. В последния раздел "Настроики" ("Настроики") има много настройки, но най-много ни интересуват „Тип полета за бележка“ („Тип поле за бележка“). Кликнете върху полето, в което е настройката по подразбиране "Автоматичен" ("Автоматичен"). Отваря се списък с типове dBase за запазване на обекта. Този параметър е много важен, тъй като не всички програми, които работят с dBase, могат да обработват всички типове обекти с това разширение. Ето защо трябва да знаете предварително кой тип да изберете. Има избор от шест различни вида:
    • dBASE III;
    • FoxPro;
    • dBASE IV;
    • Visual FoxPro;
    • >SMT;
    • dBASE ниво 7.

    Правим избор на вида, който е необходим за използване в конкретна програма.

  18. След като направите избора, можете да преминете към същинската процедура по преобразуване. За да направите това, щракнете върху бутона "Старт" ("Старт").
  19. Започва процедурата по преобразуване. Ако една работна книга на Excel има няколко листа с данни, тогава за всеки от тях ще бъде създаден отделен DBF файл. Завършването на процеса на преобразуване ще бъде обозначено със зелен индикатор за напредък. След като стигне до края на полето, щракнете върху бутона "Завършек" ("Завършек").

Готовият документ ще бъде разположен в директорията, посочена в раздела "Изход".

Единственият съществен недостатък на метода с помощта на пакета помощни програми WhiteTown Converters Pack е, че можете да извършите само 30 процедури за конвертиране безплатно и след това ще трябва да закупите лиценз.

Метод 2: Добавка XlsToDBF

Можете да конвертирате работна книга на Excel в dBase директно през интерфейса на приложението, като инсталирате добавки на трети страни. Един от най-добрите и удобни от тях е добавката XlsToDBF. Нека разгледаме алгоритъма за неговото прилагане.

  1. След като изтеглите архива XlsToDBF.7z с добавката, разопаковайте обект, наречен XlsToDBF.xla от него. Тъй като архивът има разширение 7z, разопаковането може да се извърши или със стандартната програма за това разширение, 7-Zip, или с помощта на всеки друг архиватор, който поддържа работа с него.
  2. След това стартирайте програмата Excel и отидете в раздела "файл". След това преминаваме към секцията "Настроики"през менюто от лявата страна на прозореца.
  3. В прозореца с параметри, който се отваря, щракнете върху елемента „Добавки“. Преместете се в дясната страна на прозореца. В самото дъно има поле "Контрол". Преместваме превключвателя в него на позиция „Добавки на Excel“и щракнете върху бутона "Отивам...".
  4. Отваря се малък прозорец за управление на добавките. Кликнете върху бутона там „Преглед…“.
  5. Отваря се прозорецът за отваряне на обекта. Трябва да отидем в директорията, където се намира разопакованият XlsToDBF архив. Отидете в папката със същото име и изберете обекта с името "XlsToDBF.xla". След това кликнете върху бутона "ДОБРЕ".
  6. След това се връщаме в прозореца за управление на добавките. Както можете да видите, името се появи в списъка "XLS -> DBF". Това е нашата надстройка. До него трябва да има отметка. Ако няма отметка, проверете я и след това щракнете върху бутона "ДОБРЕ".
  7. И така, добавката е инсталирана. Сега отваряме документа на Excel, данните от който трябва да бъдат преобразувани в dBase, или просто го въвеждаме на листа, ако документът все още не е създаден.
  8. Сега ще трябва да направим известна манипулация на данните, за да ги подготвим за преобразуване. Първо, добавяме два реда над заглавката на таблицата. Те трябва да са първите на листа и да имат имена на вертикалната координатна лента "1"И "2".

    В горната лява клетка въвеждаме името, което искаме да присвоим на създадения DBF файл. Състои се от две части: самото име и разширението. Разрешена е само латиница. Пример за такова име е "UCHASTOK.DBF".

  9. В първата клетка вдясно от името трябва да посочите кодирането. Има две опции за кодиране с помощта на тази добавка: CP866И CP1251. Ако клетката B2е празен или има зададена стойност, различна от "CP866", тогава ще бъде приложено кодирането по подразбиране CP1251. Задаваме кодирането, което считаме за необходимо, или оставяме полето празно.
  10. След това преминаваме към следващия ред. Факт е, че в структурата на dBase всяка колона, наречена поле, има свой собствен тип данни. Има такива обозначения:
    • н(Numeric) – числено;
    • Л(Logical) – логичен;
    • д(Дата) – дата;
    • ° С(знак) – низ.

    Освен това в низа ( CNN) и числов тип ( Nnn) след името под формата на буква трябва да се посочи максималния брой знаци в полето. Ако числовият тип използва десетични знаци, тогава техният брой също трябва да бъде посочен след точката ( Nnn.n).

    Има и други типове данни във формат dBase (Memo, General и др.), но тази добавка не може да работи с тях. Въпреки това Excel 2003, когато все още поддържаше конвертиране в DBF, не можеше да работи с тях.

    В нашия конкретен случай първото поле ще бъде низ с ширина 100 знака ( C100), а останалите полета ще бъдат цифрови с ширина 10 знака ( N10).

  11. Следващият ред съдържа имената на полетата. Но факт е, че и те трябва да се въвеждат на латиница, а не на кирилица, както е нашата. Също така не се допускат интервали в имената на полетата. Ние ги преименуваме според тези правила.
  12. След това подготовката на данните може да се счита за завършена. Изберете целия диапазон на таблицата на листа, като задържите курсора на левия бутон на мишката. След това отидете на раздела "Разработчик". По подразбиране той е деактивиран, така че преди по-нататъшни манипулации трябва да го активирате и да активирате макроси. Следва на лентата в блока с настройки "Код"щракнете върху иконата "Макроси".

    Можете да го направите малко по-лесно, като напишете комбинация от клавишни комбинации Alt+F8.

  13. Отваря се прозорецът на макроса. В полето "Име на макрос"въведете името на нашата добавка "XlsToDBF"без кавички. Регистърът не е важен. След това щракнете върху бутона "Бягай".
  14. Макрос в заден планизвършва обработка. След това в същата папка, в която се намира изходният Excel файл, ще бъде създаден обект с разширение DBF с името, посочено в клетката A1.

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

Метод 3: Програма Microsoft Access

Въпреки че новите версии на Excel нямат вграден начин за запазване на данни във формат DBF, все още има опция за използване Microsoft приложения Access е най-близкото нещо до това да се нарече стандартен. Факт е, че тази програма е пусната от същия производител като Excel и също е включена в пакета Microsoft Office. Освен това това е най-безопасният вариант, тъй като няма да е необходимо да се свързвате софтуерпроизводители на трети страни. Microsoft Access е специално проектиран за работа с бази данни.

  1. След като всички необходими данни от листа са въведени в Excel, за да го конвертирате във формат DBF, първо трябва да го запишете в един от форматите на Excel. За да направите това, щракнете върху иконата на флопи диска в горния ляв ъгъл на прозореца на програмата.
  2. Отваря се прозорецът за запазване. Отиваме в директорията, в която искаме да бъде записан файлът. Именно от тази папка след това ще трябва да я отворите в Microsoft Access. Форматът на книгата може да бъде оставен като xlsx по подразбиране или можете да го промените на xls. В този случай това не е критично, тъй като така или иначе запазваме файла само за да го конвертираме в DBF. След като всички настройки са завършени, щракнете върху бутона "Запазване"и затворете прозореца на Excel.
  3. Да стартираме Програма на MicrosoftДостъп. Отидете в раздела "файл", ако се отвори в друг раздел. Кликнете върху елемента от менюто "Отворено", разположен от лявата страна на прозореца.
  4. Отваря се прозорецът за отваряне на файл. Отиваме в директорията, където сме записали файла в един от форматите на Excel. За да се появи в прозореца, преместете превключвателя за файлов формат на позиция „Работна книга на Excel (*.xlsx)“или "Microsoft Excel (*.xls)", в зависимост от това в коя от тях е записана книгата. След като се покаже името на файла, от който се нуждаем, изберете го и щракнете върху бутона "Отворено".
  5. Отваря се прозорец „Връзка към електронна таблица“. Тя ви позволява да премествате данни от файл на Excel в Microsoft Access възможно най-правилно. Трябва да изберем Excel листа, от който ще импортираме данни. Факт е, че дори ако файлът на Excel съдържа информация на няколко листа, можете само да го импортирате в Access отделно и съответно след това да го конвертирате в отделни DBF файлове.

    Също така е възможно да импортирате информация от отделни диапазони в листове. Но в нашия случай това не е необходимо. Поставете превключвателя на позиция "Листи", и след това изберете листа, от който ще вземем данните. Коректността на показваната информация може да се види в долната част на прозореца. Ако всичко е задоволително, натиснете бутона. "по-нататък".

  6. В следващия прозорец, ако вашата таблица съдържа заглавки, трябва да поставите отметка в квадратчето до „Първият ред съдържа заглавките на колоните“. След това щракнете върху бутона "по-нататък".
  7. В новия прозорец за връзка към електронна таблица можете по избор да промените името на свързания елемент. След това щракнете върху бутона "Готов".
  8. След това ще се отвори диалогов прозорец, показващ, че свързването на таблицата към файла на Excel е завършено. Кликнете върху бутона "ДОБРЕ".
  9. В лявата част на интерфейса на програмата ще се появи името на таблицата, която сме й присвоили в последния прозорец. Кликнете два пъти върху него с левия бутон на мишката.
  10. След това таблицата ще се покаже в прозореца. Преминаване към раздела "Външни данни".
  11. На лентата в кутията с инструменти "Експортиране"щракнете върху надписа "Допълнително". В списъка, който се отваря, изберете елемента "dBase файл".
  12. Отваря се прозорецът за експортиране в DBF формат. В полето "Име на файл"можете да посочите мястото за съхранение на файла и неговото име, ако тези по подразбиране не са подходящи за вас по някаква причина.

    В полето "Файлов формат"изберете един от три типа DBF формат:

    • dBASE III(по подразбиране);
    • dBASE IV;
    • dBASE 5.

    Трябва да се има предвид, че колкото по-модерен е форматът (колкото по-висок е серийният номер), толкова повече възможности има за обработка на данни в него. Това означава, че има по-голяма вероятност всички данни от таблицата да бъдат записани във файла. Но в същото време е по-малко вероятно програмата, в която ще импортирате DBF файл в бъдеще, да е съвместима с този конкретен тип.

    След като всички настройки са зададени, щракнете върху бутона "ДОБРЕ".

  13. Ако след това се появи съобщение за грешка, опитайте да експортирате данните, като използвате различен тип DBF формат. Ако всичко е минало добре, ще се появи прозорец, който ви информира, че експортирането е успешно. Кликнете върху бутона "Близо".

Създаденият файл във формат dBase ще бъде разположен в директорията, посочена в прозореца за експортиране. След това можете да извършвате всякакви манипулации с него, включително да го импортирате в други програми.

Както можете да видите, въпреки факта, че съвременните версии на Excel нямат възможност да записват файлове във формат DBF с помощта на вградени инструменти, тази процедура може да се извърши с други програми и добавки. Трябва да се отбележи, че най-функционалният метод за конвертиране е използването на WhiteTown Converters Pack. Но, за съжаление, броят на безплатните реализации в него е ограничен. Добавката XlsToDBF ви позволява да извършите преобразуването напълно безплатно, но процедурата е много по-сложна. Освен това функционалността на тази опция е много ограничена.

„Златната среда“ е методът, използващ програмата Access. Подобно на Excel, той е разработен от Microsoft и следователно вече не може да се нарече приложение на трета страна. В допълнение, тази опция ви позволява да конвертирате Excel файл в няколко типа dBase формат. Въпреки че в този показател Access все още е по-нисък от програмата WhiteTown.