Как в Excel 2010 сохранить файл в формате DBF?

Как DBF-файл открыть в Excel или XLS преобразовать в DBF? Что такое DBF-файл, можно ли открыть его в приложении Excel, как сохранить в .xls и преобразовать обратно в .dbf. Рассматриваем возможные способы, подбираем наилучшие решения.

Как в Excel 2010 сохранить файл в формате DBF?

Открытие и преобразование DBF-файла в EXCEL

DBF — файл баз данных, возможность работы с которым раньше интегрировалась в среду Microsoft Office. С форматом работали приложения Access и Excel, позже Access был выведен из состава пакета и стал отдельной программой, а в Excel с 2007 года поддержка DataBaseFile была существенно ограничена.

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

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

Проблемы Excel при работе с DBF

В Excel 2003 была возможность открыть и редактировать DBF, а также сохранять в этом формате документы XLS:

  1. На панели меню выбрать «Файл».
  2. Далее, нажать «Сохранить как».
  3. Выбрать из выпадающего списка «*.dbf».

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

Установка и использование:

  1. Скачайте архив с указанного выше сайта.
  2. Извлеките из него XlsToDBF.xla и сохраните на своём компьютере.
  3. В Excel зайдите в меню кнопкой со значком Майкрософт слева, «Параметры».
  4. В разделе «Параметры Excel» выберите «Надстройки».
  5. В строке «Управление/Надстройки Excel» нажмите «Перейти».
  6. Нажмите «Обзор» и укажите сохранённый XlsToDBF.xla.
  7. В списке надстроек должна появиться запись «XLS -> DBF» с поставленной галочкой проверки. Отметьте, если её нет. DBF»» svg+xml,%3Csvg%20%20viewBox=’0%200%20321%20376’%3E%3C/svg%3E» alt=»Запись «XLS -> DBF»» width=»321″ height=»376″ data-lazy-srcset=»https://nastroyvse.ru/wp-content/uploads/2017/05/Ustanovka-nadstryki-v-Microsoft-Excel.jpg 321w, https://nastroyvse.ru/wp-content/uploads/2017/05/Ustanovka-nadstryki-v-Microsoft-Excel-256×300.jpg 256w, https://nastroyvse.ru/wp-content/uploads/2017/05/Ustanovka-nadstryki-v-Microsoft-Excel-72×84.jpg 72w» data-lazy-sizes=»(max-width: 321px) 100vw, 321px» data-lazy-src=»https://nastroyvse.ru/wp-content/uploads/2017/05/Ustanovka-nadstryki-v-Microsoft-Excel.jpg» />
  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 и загрузки из него. Во-вторых, есть небольшие утилиты, специализирующиеся на конвертации. Вот некоторые из них:

  1. DBFView — простая программа работы с базами данных, позволяющая редактировать, просмотреть DataBaseFile, открыть его в XLS и импортировать из него без каких-либо дополнительных действий. Поддерживает форматы dbf dBase, Clipper, FoxPro, Visual FoxPro и многие другие.
  2. DBF Viewer Plus — приложение, не требующее установки, с хорошим функционалом. Позволяет создавать базы данных, экспортировать в разные форматы, в том числе в .xls. Включает возможности редактирования, добавления, переименования, сортировки записей, фильтр и поиск, печать и предпросмотр.
  3. WhiteTown Converters Pack — набор утилит по конвертации в различных направлениях, позволяет избежать ошибок и конфликтов при преобразовании из формата в формат.
  4. DBF Commander — профессиональное программное обеспечение, конвертирование лишь небольшая часть его функциональных возможностей.

Во всех этих программах преобразование сводится к тому, что нужно открыть исходный файл, а затем выполнить команду «Конвертировать» или «Экспорт».

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

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

Узнай как

понедельник, 27 октября 2014 г.

Как заставить exel 2007, 2010 сохранять в dbf. (страница 1) — howto — как решать проблемы — «настоящий край земли русской» дальний восток — форумы (18+)

В связи с тем, что начиная с MS Office 2007 прекращена поддержка чтения и сохранения листов в формате DBF, между тем во многих организациях России эта связь между Excel и dbf все еще необходима.
Базы данных формата dbf всё еще поддерживает популярная бухгалтерская программа 1С, во многих организациях также до сих пор используются решения на Foxpro.
Есть несколько способов как обойти эту проблему.
1 СПОСОБ
1. Открыть MS Access 2010 или MS Access 2007.

2. Создать новую базу данных нажать «Новая база данных».

3. На вкладке «Внешние данные» нажать кнопку «Excel», импортировать данные из файла Excel.

4. Выбрать файл и нажать «ОК».

5. Нажать «Далее».

6. Поставить галочку «Первая строка содержит заголовки столбцов» и нажать «Далее».

7. Проверить тип данных в столбцах, если необходимо поменять тип и нажать «Далее».

8. Поставить галочку «Не создавать ключ» и нажать «Далее».

9. Задать имя таблицы и нажать «Готово».

10. Нажать кнопку «Закрыть».

11. На закладке «Внешние данные» во вкладке «Экспорт» нажать «Дополнительно» и выбрать «Файл dBase».

12. Выбрать версию dBase и нажать «ОК».

13. Нажать кнопку «Закрыть».

14. В той же директории, где находится файл Excel, появилась таблица dbf.

2 СПОСОБ
Применим пакет компенсирующий сознательное решение Microsoft прекратить поддержку DBF начиная с MS Office 2007, 2010.
1. Скачать архив содержащий библиотеку zjvcst.dll и надстройку Dbf_Operations.xla>>>

2. Скопировать из архива файл zjvcst.dll в папку %SYSTEMROOT% (C:Windows).

3. Скопировать из архива файл Dbf_Operations.xla
в C:Program FilesMicrosoft OfficeOfficeLibrary для MS Office 97
в C:Program FilesMicrosoft OfficeOffice11Library для MS Office 2003
в C:Program FilesMicrosoft OfficeOffice12Library для MS Office 2007
в C:Program FilesMicrosoft OfficeOffice14Library для MS Office 2010

4. Открываем Excel.

5. Закладка «Файл» -> «Параметры».

6. Вкладка «Надстройки» -> «Управление:» нажать кнопку «Перейти. «.

7. Поставить галочку «Надстройка для работы с DBF» и нажать «ОК».

8. В Excel в закладке «Надстройки» появятся три пункта для работы с DBF.
Считать DBF в текущий лист начиная с выделенной ячейки.
Считать DBF во вновь созданную книгу.
Сохранить выделенные ячейки в формате DBF.

Читайте также  Как создать zip файл на телефоне?

Post’s attachments

Library.rar 48.13 kB, 4449 раз. загрузили с 2013-05-06

PressDev

Все об IT

Свежие записи
  • Уведомляем пользователей о подтверждении комментариев WordPress.html»>WordPress
  • Создаем бесплатно качественный логотип для сайта
  • Запрещаем доступ к сайтам с локального компьютера
  • Идентифицируем старые записи WordPress.html»>WordPress и уведомляем об этом пользователей
  • Как сделать перенаправление страницы в WordPress.html»>WordPress
  • Плагины для создания слайдеров и слайдшоу на WordPress.html»>WordPress
  • Сбрасываем графический пароль на Android-устройстве
  • Google Hangouts теперь и на рабочем столе
  • Google отменяет PageRank навсегда
  • Доступна бета-версия темы Twenty Fifteen
  • Свежие комментарии
    • Дмитрий к записи Сохраняем и открываем DBF-файлы в Excel 2007 и 2010
    • Мирон к записи Уменьшаем или увеличиваем количество выводимых тегов WordPress.html»>WordPress
    • DuavidkeK к записи Что такое лиды в интернет-маркетинге?
    • Елена к записи Получаем бесплатно инвайт для социальной сети PostPR
    • Mixkino к записи Запрещаем доступ к сайтам с локального компьютера
  • Сохраняем и открываем DBF-файлы в Excel 2007 и 2010

    Всем привет дорогие друзья. В прошлой статье мы рассматривали, как можно удалить дублирующие записи в DBF-файле, используя MS Excel. Но мы в пример брали Microsoft Excel 2003, в котором можно без проблем открывать и сохранять DBF-файлы.

    Что касается Microsoft Excel 2007 или же 2010, то возможность сохранять данные в DBF-формат там отсутствуют, поэтому в данной статье я хотел бы с Вами поделиться небольшой информацией, как это можно сделать.

    Вообще, загружать и сохранять DBF-файлы в MS Office 2007 или же 2010 можно, как минимум 2-мя способами, но в данной мы рассмотрим один, который очень понравился.

    Этот способ предполагает использования специальной надстройки, которую нам необходимо для начала установить и скачать ее. Поэтому, для начала скачиваем вот эту библиотеку и устанавливаем ее.

    Установить ее очень легко. Вам необходимо распаковать архив и для начала скопировать библиотеку ZJVCST.dll в system32. После чего Вы копируете dbf_operations.xla и помещаете ее по следующему пути (если у Вас установлен Microsoft Excel 2007): C:Program FilesMicrosoft OfficeOffice12Library или C:Document And Settings Application DataMicrosoftAddins.

    В архиве также имеется краткая инструкция по установке. После того как все библиотеки скопированы, то можно приступать к инсталляции данной надстройки. Для этого выбираем команду Файл-Параметры Excel, затем переходим на вкладку Надстройки и в данной окне, там где поле Управление, нажимаем на кнопку Перейти. После этого у Вас должно появиться следующее окно:

    В нем Вы должны выставить галочку Надстройка для работы с DBF и затем нажать на кнопку ОК. Вот и все, теперь на вкладке Надстройка в MS Excel (она обычно самая последняя) у Вас появится новый пункт для работы с DBF-файлами в MS Excel 2007 или же 2010:

    Все, теперь Вы с легкостью можете загружать в нужной кодировке DBF-файлы в Excel, а также их сохранять очень быстро и удобно. Не забудьте прочитать статью о том, как можно сменить кодировку OEM в ANSI и наоборот, в DBF-файле.

    Как в Excel 2010 сохранить файл в формате DBF?

    Добрый день.
    есть макрос который собирает данные на лист «rezultat»
    нужно данную информацию сохранить в отдельный .dbf (желательно без надстроек)
    P.S. макро подсказал «МатросНаЗебре» и переделан под себя за что ему

    офис — 2010
    знания VBA — нулевые

    Добрый день.
    есть макрос который собирает данные на лист «rezultat»
    нужно данную информацию сохранить в отдельный .dbf (желательно без надстроек)
    P.S. макро подсказал «МатросНаЗебре» и переделан под себя за что ему

    офис — 2010
    знания VBA — нулевые docdim

    Сообщение Добрый день.
    есть макрос который собирает данные на лист «rezultat»
    нужно данную информацию сохранить в отдельный .dbf (желательно без надстроек)
    P.S. макро подсказал «МатросНаЗебре» и переделан под себя за что ему

    офис — 2010
    знания VBA — нулевые Автор — docdim
    Дата добавления — 27.02.2015 в 14:48

    email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

    email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

    email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

    email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

    200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub Собрать()
    Dim iY1 As Long
    Dim iY2 As Long
    Dim iX1 As Integer

    iY2 = 2
    With Sheets(«Лист1»).[F:F]:
    .Replace «і», «i», , , 1:
    .Replace «І», «I», , , 1:
    .Replace «ААА», «БББ», , , 1:
    End With
    ‘On Error Resume Next
    Sheets(«Лист1»).Select

    With Sheets(«rezultat»)
    .Range(.Cells(2, 1), .Cells(Rows.Count, 16)).Clear

    For iY1 = 5 To Cells(Rows.Count, 1).End(xlUp).Row
    For iX1 = 8 To 10
    If Cells(iY1, iX1).Value > 0 Then
    .Cells(iY2, 1).NumberFormat = «@»
    .Cells(iY2, 1).Value = «123456»
    .Cells(iY2, 2).NumberFormat = «@»
    .Cells(iY2, 2).Value = «2526272829»
    .Cells(iY2, 3).NumberFormat = «@»
    .Cells(iY2, 3).Value = Cells(iY1, 25).Value
    .Cells(iY2, 4).NumberFormat = «@»
    .Cells(iY2, 4).Value = Cells(iY1, 24).Value
    .Cells(iY2, 5).Value = 1
    .Cells(iY2, 6).Value = Cells(iY1, iX1).Value * 100
    .Cells(iY2, 7).Value = 1
    .Cells(iY2, 8).Value = Cells(1, 5).Value + iY2 — 2
    .Cells(iY2, 9).Value = 980
    .Cells(iY2, 10).Value = Date
    .Cells(iY2, 11).Value = Date
    .Cells(iY2, 12).Value = «КЕПАКУВ»
    .Cells(iY2, 13).Value = Cells(iY1, 6).Value
    If iX1 = 8 Then .Cells(iY2, 14).Value = «#ФФФФФФФ (ТВП)#,#ффф » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    If iX1 = 9 Then .Cells(iY2, 14).Value = «#ВВВВВВВВВ (ВП)#,#ввв » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    If iX1 = 10 Then .Cells(iY2, 14).Value = «#ПППППППП (НП)#,#пппп » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    .Cells(iY2, 15).Value = «23456789»
    .Cells(iY2, 16).NumberFormat = «@»
    .Cells(iY2, 16).Value = Cells(iY1, 5).Value

    iY2 = iY2 + 1
    End If
    Next
    Next

    .Select
    End With
    ‘Sub insert_into_dbf()
    Dim objRS: Set objRS = CreateObject(«ADODB.Recordset»)
    Dim ConStr$: ConStr = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» & ThisWorkbook.Path & «;Extended Properties=dBASE IV»
    Dim fields$: fields = «kb_a, kk_a, kb_b, kk_b, d_k, summa, vid, ndoc, i_va, da, da_doc, left(nk_a, 38) as nk_a, Left(nk_b, 38) as nk_b, nazn, kod_a, kod_b»
    ‘With Sheets(«Лист1»).[L:M]: .Replace «?», «i»: .Replace «?», «I»: End With
    On Error Resume Next
    objRS.Open «drop table tmp», ConStr
    ‘создаем пустую таблицу и копируем в нее структуру из 4726539.dbf
    objRS.Open «SELECT * INTO tmp FROM rezultat WHERE 1>1 «, ConStr
    ‘записываем значения в созданную таблицу
    objRS.Open «insert into tmp SELECT » & fields & » from [rezultat$] in ‘» & ThisWorkbook.FullName & «‘ ‘Excel 8.0;'», ConStr
    Set objRS = Nothing
    ‘переименовываем полученный файл
    Name ThisWorkbook.Path & «TMP.DBF» As ThisWorkbook.Path & «rezultat » & Format(Now(), «DD_MM_YYYY hh_mm_ss») & «.dbf»
    End Sub

    весь код — может можно почистить ненужные строки
    типа ‘On Error Resume Next — 2 раза (оставить там где он действительно нужен)

    200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub Собрать()
    Dim iY1 As Long
    Dim iY2 As Long
    Dim iX1 As Integer

    iY2 = 2
    With Sheets(«Лист1»).[F:F]:
    .Replace «і», «i», , , 1:
    .Replace «І», «I», , , 1:
    .Replace «ААА», «БББ», , , 1:
    End With
    ‘On Error Resume Next
    Sheets(«Лист1»).Select

    With Sheets(«rezultat»)
    .Range(.Cells(2, 1), .Cells(Rows.Count, 16)).Clear

    For iY1 = 5 To Cells(Rows.Count, 1).End(xlUp).Row
    For iX1 = 8 To 10
    If Cells(iY1, iX1).Value > 0 Then
    .Cells(iY2, 1).NumberFormat = «@»
    .Cells(iY2, 1).Value = «123456»
    .Cells(iY2, 2).NumberFormat = «@»
    .Cells(iY2, 2).Value = «2526272829»
    .Cells(iY2, 3).NumberFormat = «@»
    .Cells(iY2, 3).Value = Cells(iY1, 25).Value
    .Cells(iY2, 4).NumberFormat = «@»
    .Cells(iY2, 4).Value = Cells(iY1, 24).Value
    .Cells(iY2, 5).Value = 1
    .Cells(iY2, 6).Value = Cells(iY1, iX1).Value * 100
    .Cells(iY2, 7).Value = 1
    .Cells(iY2, 8).Value = Cells(1, 5).Value + iY2 — 2
    .Cells(iY2, 9).Value = 980
    .Cells(iY2, 10).Value = Date
    .Cells(iY2, 11).Value = Date
    .Cells(iY2, 12).Value = «КЕПАКУВ»
    .Cells(iY2, 13).Value = Cells(iY1, 6).Value
    If iX1 = 8 Then .Cells(iY2, 14).Value = «#ФФФФФФФ (ТВП)#,#ффф » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    If iX1 = 9 Then .Cells(iY2, 14).Value = «#ВВВВВВВВВ (ВП)#,#ввв » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    If iX1 = 10 Then .Cells(iY2, 14).Value = «#ПППППППП (НП)#,#пппп » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    .Cells(iY2, 15).Value = «23456789»
    .Cells(iY2, 16).NumberFormat = «@»
    .Cells(iY2, 16).Value = Cells(iY1, 5).Value

    Читайте также  Как открыть файл с расширением EXE?

    iY2 = iY2 + 1
    End If
    Next
    Next

    .Select
    End With
    ‘Sub insert_into_dbf()
    Dim objRS: Set objRS = CreateObject(«ADODB.Recordset»)
    Dim ConStr$: ConStr = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» & ThisWorkbook.Path & «;Extended Properties=dBASE IV»
    Dim fields$: fields = «kb_a, kk_a, kb_b, kk_b, d_k, summa, vid, ndoc, i_va, da, da_doc, left(nk_a, 38) as nk_a, Left(nk_b, 38) as nk_b, nazn, kod_a, kod_b»
    ‘With Sheets(«Лист1»).[L:M]: .Replace «?», «i»: .Replace «?», «I»: End With
    On Error Resume Next
    objRS.Open «drop table tmp», ConStr
    ‘создаем пустую таблицу и копируем в нее структуру из 4726539.dbf
    objRS.Open «SELECT * INTO tmp FROM rezultat WHERE 1>1 «, ConStr
    ‘записываем значения в созданную таблицу
    objRS.Open «insert into tmp SELECT » & fields & » from [rezultat$] in ‘» & ThisWorkbook.FullName & «‘ ‘Excel 8.0;'», ConStr
    Set objRS = Nothing
    ‘переименовываем полученный файл
    Name ThisWorkbook.Path & «TMP.DBF» As ThisWorkbook.Path & «rezultat » & Format(Now(), «DD_MM_YYYY hh_mm_ss») & «.dbf»
    End Sub

    весь код — может можно почистить ненужные строки
    типа ‘On Error Resume Next — 2 раза (оставить там где он действительно нужен) docdim

    200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub Собрать()
    Dim iY1 As Long
    Dim iY2 As Long
    Dim iX1 As Integer

    iY2 = 2
    With Sheets(«Лист1»).[F:F]:
    .Replace «і», «i», , , 1:
    .Replace «І», «I», , , 1:
    .Replace «ААА», «БББ», , , 1:
    End With
    ‘On Error Resume Next
    Sheets(«Лист1»).Select

    With Sheets(«rezultat»)
    .Range(.Cells(2, 1), .Cells(Rows.Count, 16)).Clear

    For iY1 = 5 To Cells(Rows.Count, 1).End(xlUp).Row
    For iX1 = 8 To 10
    If Cells(iY1, iX1).Value > 0 Then
    .Cells(iY2, 1).NumberFormat = «@»
    .Cells(iY2, 1).Value = «123456»
    .Cells(iY2, 2).NumberFormat = «@»
    .Cells(iY2, 2).Value = «2526272829»
    .Cells(iY2, 3).NumberFormat = «@»
    .Cells(iY2, 3).Value = Cells(iY1, 25).Value
    .Cells(iY2, 4).NumberFormat = «@»
    .Cells(iY2, 4).Value = Cells(iY1, 24).Value
    .Cells(iY2, 5).Value = 1
    .Cells(iY2, 6).Value = Cells(iY1, iX1).Value * 100
    .Cells(iY2, 7).Value = 1
    .Cells(iY2, 8).Value = Cells(1, 5).Value + iY2 — 2
    .Cells(iY2, 9).Value = 980
    .Cells(iY2, 10).Value = Date
    .Cells(iY2, 11).Value = Date
    .Cells(iY2, 12).Value = «КЕПАКУВ»
    .Cells(iY2, 13).Value = Cells(iY1, 6).Value
    If iX1 = 8 Then .Cells(iY2, 14).Value = «#ФФФФФФФ (ТВП)#,#ффф » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    If iX1 = 9 Then .Cells(iY2, 14).Value = «#ВВВВВВВВВ (ВП)#,#ввв » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    If iX1 = 10 Then .Cells(iY2, 14).Value = «#ПППППППП (НП)#,#пппп » & Cells(iY1, 2).Text & » №03-12-» & Cells(iY1, 1).Text
    .Cells(iY2, 15).Value = «23456789»
    .Cells(iY2, 16).NumberFormat = «@»
    .Cells(iY2, 16).Value = Cells(iY1, 5).Value

    iY2 = iY2 + 1
    End If
    Next
    Next

    .Select
    End With
    ‘Sub insert_into_dbf()
    Dim objRS: Set objRS = CreateObject(«ADODB.Recordset»)
    Dim ConStr$: ConStr = «Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» & ThisWorkbook.Path & «;Extended Properties=dBASE IV»
    Dim fields$: fields = «kb_a, kk_a, kb_b, kk_b, d_k, summa, vid, ndoc, i_va, da, da_doc, left(nk_a, 38) as nk_a, Left(nk_b, 38) as nk_b, nazn, kod_a, kod_b»
    ‘With Sheets(«Лист1»).[L:M]: .Replace «?», «i»: .Replace «?», «I»: End With
    On Error Resume Next
    objRS.Open «drop table tmp», ConStr
    ‘создаем пустую таблицу и копируем в нее структуру из 4726539.dbf
    objRS.Open «SELECT * INTO tmp FROM rezultat WHERE 1>1 «, ConStr
    ‘записываем значения в созданную таблицу
    objRS.Open «insert into tmp SELECT » & fields & » from [rezultat$] in ‘» & ThisWorkbook.FullName & «‘ ‘Excel 8.0;'», ConStr
    Set objRS = Nothing
    ‘переименовываем полученный файл
    Name ThisWorkbook.Path & «TMP.DBF» As ThisWorkbook.Path & «rezultat » & Format(Now(), «DD_MM_YYYY hh_mm_ss») & «.dbf»
    End Sub

    весь код — может можно почистить ненужные строки
    типа ‘On Error Resume Next — 2 раза (оставить там где он действительно нужен) Автор — docdim
    Дата добавления — 04.03.2015 в 10:59

    Бесплатный конвертер XLS в DBF и DBF в XLS

    Конвертер XLS а также XLSX в DBF и DBF в XLSX представляет собой макрос EXCEL, которым можно использовать не только для конвертирования, но и для поиска, заполнения из файла другой структуры по ключевым полям записей и их модификация. Например, если требуется заполнить файл EXCEL, в котором присутствует какое либо ключевое поле (номер счета или код товара) из базы DBF с таким же ключевым полем.

    Или же обратная ситуация — есть EXCEL файл, надо модифицировать или заполнить DBF файл. Конечно потребуется коррекция VBA кода макроса, но сочинять и отлаживать «с нуля» не придется.

    Идея выложить подобный макрос появилась, когда самому потребовался подобный конвертор, а поиски в интернете указывали только на платные конвертеры, к тому же без возможности что либо изменить под себя. За основу была взята оригинальная надстройка XlsToDBF, автор Василий Малинин, которая распространялась в интернете бесплатно, но найти и скачать ее оказалось не просто. Больше попадались либо платные утилиты, либо он-лайн конверторы. Ни то ни другое не подходило.

    Тем более с выходом версии MS Office 2007 в программе Excel по кнопке ( ) в списке возможных вариантов формат dBASE (*.DBF) уже нет. В последующих подавно.

    Краткое описание файла конвертора с макросом XLSX_DBF

    В скачанном архиве XLSX_DBF.zip (в конце статьи) присутствуют файлы:

    Конвертор.xlsm — собственно сам EXCEL файл с макросами.

    Файлы для примера конвертации и заполнения

    in_file.DBF

    LK_in1.xlsx

    RK_in2.xlsx

    out1.xlsx

    out2.xlsx

    Еще два файла появятся после нажатия кнопки » Заполнить L,R DBF»

    SUB_K.DBF

    SUB_L.DBF

    Все действия по кнопкам легко подкорректировать в VBA из меню макросов

    По умолчанию в файле прописаны пути «D:File». Для удобства разархивируйте архив на диск D в корень и у Вас сохранится начальная настройка каталогов.

    Естественно какие то начальные знания VBA должны присутствовать. Подробных инструкций нет, но все и так максимально просто. Если Вы хоть раз работали с макросами, то подправить по себя наверняка сумеете.

    Для выполнения макроса необходимо в EXCEL включить разрешение на открытие и запуск макросов. В этих макросах ВИРУСОВ НЕТ. Для включения надо в меню «ФАЙЛ» выбрать «Сведения» -> «Параметры»

    Далее выбрать «Центр управления безопасностью» -> «Параметры центра управления безопасностью» -> «Параметры макросов» -> «Включить все макросы»

    Для запуска конвертора открываутся файл Конвертор.xlsm. Слева кнопки выбора файлов, справа кнопки запуска. Для примера представлены файлы EXCEL (Субсидии и льготы — Out1 и Out2), которые обновляются из IN_FILE.DBF, по ключевому полю LSCHET. В сроки файлов XLSX, где будет найден «Номер лицевого счета» будет заполнено значением из поля «DOLG» файла IN_FILE.DBF.

    Вторая часть Конвертор.xlsm демонстрирует создание и заполнение файлов SUB_K.DBF и SUB_L.DBF из LK_in1.xlsx и RK_in2.xlsx согласно заданной структуры. За основу создания взята надстройка XlsToDBF, преобразованная в макрос с исправлением некоторых ошибок.

    Макрос (надстройка) XlsToDBF и его описание

      • задать произвольное имя выходного DBF-файла
      • задать тип и размер для каждого поля по усмотрению пользователя
      • задать кодовую страницу (WINDOWS-1251 или DOS-866) для выходного DBF-файла
      • задать параметр MAC для корректного вывода DBF-файла на Macintosh

    Чтобы надстройка поняла, что от неё требуется и создала требуемый DBF-файл, необходимо задать тип, размер, имена полей для конечного DBF-файла, а также его название.

    Надстройка умеет работать с четырьмя основными форматами полей DBF: Character (Cnnn), Numeric (Nnn или Nnn.n), Date (D) и Logical (L), т.е такие поля как General, Memo, Currency и т.д. в конечном файле она создать не сумеет. Собственно, родной конвертер предыдущих версий Excel имел такое же ограничение.

    Для примера используется файл Price.xls из архива, Лист: Price. Существует таблица EXCEL, которую необходимо сохранить в DBF-файле.

    В конечном DBF-файле назначаем необходимые имена полей и форматы, чтобы:

    • Поле Идентификатор имело целочисленный тип (т.е Numeric) шириной в 14 знаков и называлось ID.
    • Поле Наименование — строковый тип (Character) шириной в 100 символов с названием NAME
    • Поле Единица измерения — строковый, 20 символов, с названием ONE_NAME
    • Поле Цена — числовой тип (Numeric) шириной в 14 знаков с двумя знаками за запятой с названием PRICE
    • Поле Включать в прайс — логический тип (Logical) с названием L_PRICE
    • Поле Дата обновления имело тип даты (Date) с названием D_UPDATE
    Читайте также  Как открыть файл XML на Mac?

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

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

    Первая ячейка первой строки, экспортируемой области, содержит имя конечного файла. Расширение в имени файла на процесс конвертации не влияет, т.е. конечный файл в любом случае будет иметь структуру DBF (dBASE).

    Вторая ячейка (B1) указывает макросу надстройки в какой кодовой странице сохранять DBF-файл. Если значение ячейки (B1) отличается от CP866 или не задано совсем, то конечный DBF-файл сохранится в кодовой странице WINDOWS CP1251.

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

    Третья строка описывает наименование полей (максимально 10 символов). Я думаю, больше комментировать здесь нечего.

    Начиная с четвёртой строки и до конца непрерывной области, располагаются данные. Желательно, чтобы данные соответствовали заданному типу. Красным цветом я отметил те поля, в которых значения не могут быть корректно преобразованы. В таких случаях надстройка задаёт им значения по умолчанию. Например, значение ДА не может быть преобразовано к логическому типу. Поэтому в конечном DBF-файле это поле будет иметь значение FALSE (F). В данном примере то же самое произойдёт и с датами, отмеченными красным цветом (в DBF-файле они будут пустые).

    В макросе файла Конвертор.xlsm эти операции прописаны в VBA коде, макрос — «Вывод_в_dbf()»

    Sub Вывод_в_dbf()
    Dim i As Integer
    Dim strMes As String
    Dim strMes1 As String
    Dim strMes2 As String
    Dim WBook As String
    Dim WMak As String
    Dim Wind1 As String
    strMes = «»
    Range(«D13:D200»).Value = «»
    Range(«D13»).Value = «Обработка 1»
    f_lgot = Range(«D8»).Value
    f_sub = Range(«D9»).Value
    f_dbf_l = Range(«D10»).Value
    f_dbf_r = Range(«D11»).Value

    WBook = ThisWorkbook.Name
    strMes2 = Range(«D10»).Value
    If is_file(f_lgot) = 1 Then
    Range(«D13»).Value = «Обработка 1»
    Workbooks.Open (f_lgot)
    Range(«A1»).Value = strMes2
    i = rep_file()
    Application.Run «‘Конвертор.xlsm’!XlsToDBF»
    ActiveWindow.Close SaveChanges:=False
    Windows(WBook).Activate

    strMes = strMes + «DBF Файл льгот » & Range(«D10″).Value & » заполнен» & Chr(13) + Chr(10)
    Else
    strMes = strMes + «. DBF Файл льгот НЕ заполнен!» & Chr(13) + Chr(10)
    End If

    Запуск макроса надстройки XlsToDBF

    После того, как мы подготовили данные для выгрузки, можно запустить макрос надстройки. Для этого нужно выделить любую ячейку в области данных или заголовка и нажать . В диалоговом окне «Макрос» в поле «Имя макроса:» нужно ВРУЧНУЮ ввести XlsToDBF (регистр не имеет значения) и нажать кнопку . Если на предыдущем этапе всё сделано верно, то DBF-файл будет сохранен с именем PRICE.DBF в той же папке, где расположена исходная книга Excel. В случае если книга новая и не сохранена, то DBF-файл будет сохранён в папке по умолчанию (скорее всего в папке «Мои документы»). Будьте внимательны: при повторном запуске макроса DBF-файл будет переписан без каких-либо предупреждений.

    Если работа надстройки устраивает, и Вы предполагаете часто её использовать, то для удобства создайте пользовательскую кнопку на ленте и назначьте ей макрос XlsToDBF.

    Скачать XLSX_DBF бесплатно

    Скачать XlsToDBF бесплатно

    Файл формата DBF: чем открыть, описание, особенности

    Формат DBF применяется к текстовым и числовым файлам Системы Управления Базой Данных (СУБД). В стать.

    Формат DBF применяется к текстовым и числовым файлам Системы Управления Базой Данных (СУБД). В статье рассмотрим особенности формата и чем открыть DBF файл.

    Общее описание формата DBF

    DBF расшифровывается как DataBase File. Файлы DBF первоначально использовались в dBase II вплоть до dBase Version IV.

    Внутри DBF-файл состоит из заголовка с порядковым номером формата и непосредственно информации в виде таблицы установленного размера.

    История возникновения

    В 1978 году Уэйн Рэтлифф запустил проект формата для СУБД Vulcan. В следующем году программа Вулкан в составе с первой сборкой формата DBF поступила в продажу.

    Затем в 1980 году Вулкан получил другое название – dBase II. В программе стала применяться вторая ревизия формата. Право продажи получила фирма Ashton−Tate.

    Далее последовали сборки dBase III и dBase III+, использовавшие третью версию DBF. Программы оказались несовместимы по размеру.

    Последний (седьмой) вариант формата появился вместе с dBase 7 for Windows.

    Как и чем открыть файл DBF расширения

    Мы подготовили список инструментов, чем открыть DBF в программе Excel или просмотреть онлайн.

    Как открыть формат DBF в Excel

    Начнем с электронных таблиц Excel. Программа входит в офисный пакет Microsoft и в ней присутствует функция чтения формата DBF.

    Если на компьютере не установлен пакет Office, то скачайте дистрибутив с сайта Microsoft и установите нужные программы.

    Чтобы открыть файл DBF в таблице Excel:

    • нажмите на документ правой кнопкой мыши, чтобы вызвать контекстное меню;
    • наведите курсор мыши на «Открыть» с помощью и переходите в пункт Выбрать программу;
    • выберите Microsoft Office Excel, нажмите «Ок»;
    • нужный файл откроется в виде таблицы Excel.

    Открываем расширение DBF онлайн

    Открывается файл формата DBF и на веб-сайте Jobtools. Правда, без редактирования.

    Чтобы попасть на страницу просмотрщика:

    • в URL-строке браузера введите адрес http://jobtools.ru
    • в окне кликните кнопку Файл, затем «Открыть»;
    • в поле DBF нажмите «Выбрать файл»;
    • найдите нужный документ и щелкните «Загрузить».

    Файл отобразится в окне браузера.

    Интерфейс простой, нет опций кроме просмотра и постраничной прокрутки.

    Чтобы открыть другой файл, нажмите кнопку «Reset» и повторите загрузку.

    Чем открыть DBF на компьютере

    Кроме стандартного Офиса открываются и правятся файлы DBF через сторонние программы.

    Приложение DBF Commander предоставляет распространенные операции с файлами DBF: просмотр, редактура и распечатка файлов. Поддерживается экспорт в форматы CSV, XML, HTML и Excel. Файл кодируется и декодируется алгоритмом AES-256 (Rijndael). Записи удаляются и восстанавливаются, доступна сборка таблицы.

    Какие могут быть проблемы с DBF файлом

    Случается, что при попытке открыть файл с расширением DBF программа выбивает ошибку File not found (Файл не найден).

    В этом случае откройте файл в другой программе. Подойдет Advantage Data Base. Создайте таблицу, импортируйте исходный файл и поменяйте компоненты.

    Другой выход – конвертируйте в текстовый формат doc, docx или exl и откройте в офисной программе.

    Следующий тип ошибки – file or table does not exist. Это значит, что файл оказался в папке с временной копией. Откройте папку и задайте значение TSession. для переменной Session.PrivateDir.

    Если программа выбивает ошибку Table Level Changed,значит,несовместимы компоненты. Установите компоненты TTable. Проверьте, правильно ли связаны файл DBF и хранилище pft.

    Если не открывается файл при подключении к базе, откройте соединение и задайте новое имя OleDbCommand cmd = new OleDbCommand («SELECT * FROM Employees») с расширением DBF.

  • Борис Аладышкин/ автор статьи

    Приветствую! Я являюсь руководителем данного проекта и занимаюсь его наполнением. Здесь я стараюсь собирать и публиковать максимально полный и интересный контент на темы связанные с современными технологиями и программным обеспечением. Уверен вы найдете для себя немало полезной информации. С уважением, Борис Аладышкин.

    Понравилась статья? Поделиться с друзьями:
    Itsovet61.ru
    Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: