Преобразование XML-файла в DBF

Я пытаюсь преобразовать файл XML в DBF. Сейчас я делаю это вручную, открывая файл XML в Excel 2003 и сохраняя его как файл типа DBF 4. Это скучный и трудоемкий процесс, усугубляемый тем фактом, что ни Office 2007, ни Office 2008 для Mac больше не позволяют сохранять файлы в формате DBF.

Я хотел бы, чтобы автоматизировать это, если это возможно. Знаете ли вы какой-либо способ сделать это на самом деле? Я даже не знаю, какой язык программирования использовать для этого...


person alex    schedule 23.07.2009    source источник


Ответы (4)


Используйте XmlReader, отформатируйте данные и используйте OleDb для сохранения в файл dbf. Здесь вы можете найти строку подключения для dbf: www.connectionstrings.com

person Louis Haußknecht    schedule 23.07.2009

Visual FoxPro имеет команду XMLTOCURSOR(), которая преобразует XML в курсор Visual FoxPro. Этот курсор можно преобразовать в дисковый DBF с помощью команды COPY TO.

Одно предостережение: сложность XML может потребовать применения другого подхода с XMLAdapter, особенно при наличии иерархического (вложенного) XML. XMLAdapter в Visual FoxPro 9 имеет улучшения для работы с этим форматом.

Рик Шуммер

person Rick Schummer    schedule 24.07.2009
comment
Файлы XML действительно довольно сложны. Кроме того, каждый файл имеет размер около 100 МБ. Будет ли это проблемой при использовании XMLAdapter? - person alex; 24.07.2009
comment
Я не уверен, потому что я не загружал файл такого размера. Хотя проверить было бы не так уж и сложно. - person Rick Schummer; 26.07.2009

Если открытие XML-файла в Excel 2003 и сохранение его в виде файла типа DBF 4 работает, то вам следует просто эмулировать этот процесс с помощью программы. Есть как минимум два подхода:

1) VBA, работающий в Excel:

Другой подход заключается в использовании VBA, который работает в Excel и автоматизирует то, что вы делаете вручную. Чтобы прочувствовать это. Вы можете запустить средство записи макросов и снова выполнить преобразование вручную. После этого вы видите код VBA, который эмулирует то, что вы делаете. С небольшой настройкой вы сможете автоматизировать весь процесс.

2) Внешнее приложение: в основном вы создаете объект excel в отдельном приложении Windows, которое инкапсулирует Excel, и вы делаете то, что вы делаете вручную через этот объект удаленно.

Пример кода с использованием VS 2008, C# и .NET:

....

using System;
using Microsoft.Office.Interop.Excel;

...

Microsoft.Office.Interop.Excel.Application oExcelApplication = new 
Microsoft.Office.Interop.Excel.Application();

...

oExcelApplication.Workbooks.Open(....);

....

и сохраните файл в формате DBF4.

Надеюсь, это поможет.

person Community    schedule 25.07.2009
comment
Мне очень нравится ваш второй подход, потому что он кажется достаточно простым. Я попробую и посмотрю, что у меня получится. Спасибо! - person alex; 26.07.2009

Мне пришлось превратить XML в табличную структуру и сохранить ее как файл dbf.

Я использовал это приложение: https://www.youtube.com/watch?v=0rWbdLBQDdc

И я думаю, что он также может конвертировать многие файлы xml в пакетном режиме.

person Pomodoro Technique Game    schedule 13.08.2019