2009-07-23 9 views
1

Ich versuche, eine XML-Datei in DBF zu konvertieren. Im Moment mache ich das manuell, öffne die XML-Datei in Excel 2003 und speichere sie als DBF 4-Dateityp. Dies ist ein langweiliger und zeitraubender Prozess, der durch die Tatsache verschlimmert wird, dass weder Office 2007 noch Office 2008 für Mac das Speichern als DBF mehr ermöglichen.XML-Datei in DBF konvertieren

Ich möchte einen Weg, dies zu automatisieren, wenn möglich. Weißt du irgendeinen Weg, dies tatsächlich zu tun? Ich weiß nicht einmal, welche Programmiersprache dafür zu verwenden ist ...

Antwort

2

Verwenden Sie einen XmlReader, formatieren Sie Ihre Daten und verwenden Sie OleDb, um in einer DBF-Datei zu speichern. Hier finden Sie eine Verbindungszeichenfolge für dbf: www.connectionstrings.com

+0

Ihre Lösung verwendet und es hat funktioniert. Vielen Dank! – alex

2

Visual FoxPro hat einen Befehl XMLTOCURSOR(), der XML in einen Visual FoxPro-Cursor konvertiert. Dieser Cursor kann mit dem Befehl COPY TO in einen plattenbasierten DBF umgewandelt werden.

Ein Vorbehalt, die Komplexität des XML könnte einen anderen Ansatz mit XMLAdapter erzwingen, besonders wenn es hierarchisches (verschachteltes) XML gibt. Der XMLAdapter in Visual FoxPro 9 verfügt über Verbesserungen, um mit diesem Format umzugehen.

Rick Schummer

+0

Die XML-Dateien sind in der Tat ziemlich komplex. Außerdem ist jede Datei ungefähr 100 MB groß. Wäre das ein Problem bei der Verwendung von XMLAdapter? – alex

+0

Ich bin mir nicht sicher, weil ich eine Datei dieser Größe nicht eingezogen habe. Es wäre jedoch nicht so schwer zu testen. –

1

die XML-Datei in Excel 2003 Wenn das Öffnen und als DBF 4 Dateityp Speicher funktioniert, was als können Sie sollen nur diesen Prozess über ein Programm emulieren. Es gibt mindestens zwei Ansätze:

1) VBA whithin Excel ausgeführt wird:

Der andere Ansatz VBA verwendet, die in Excel läuft und automatisiert die Sachen, die Sie manuell tun. Um ein Gefühl dafür zu bekommen. Sie könnten den Makrorekorder ausführen und die Umwandlung einmal manuell durchführen. Danach siehst du den VBA-Code, der die Dinge nachbildet, die du machst. Mit wenig Feinabstimmung sollten Sie in der Lage sein, den gesamten Prozess zu automatisieren.

2) Externe Anwendung: Im Grunde erstellen Sie ein Excel-Objekt in einer separaten Windows-Anwendung, die Excel kapselt und Sie tun die Dinge, die Sie manuell über dieses Objekt aus der Ferne tun würden.

Beispielcode mit VS 2008, C# und .NET:

....

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

...

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

...

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

....

und speichern Sie die Datei im DBF4-Format.

Ich hoffe, das hilft.

+0

Ich mag Ihren zweiten Ansatz wirklich, weil es einfach genug zu tun scheint. Ich werde es versuchen und sehen, was mir einfällt. Danke! – alex