Daten in dBASE-Datei exportieren. Kurze Beschreibung der Lösung

Trotz der Tatsache, dassdbf wurde schon lange in Betracht gezogen Vermächtnis Format bleibt das Thema angesichts der Anzahl der Fragen im Internet immer noch eine dringende Aufgabe. Ich bin insbesondere darauf gestoßen, als ich versucht habe, eine Karte in den Tisch einzuführen. Karte ArcGIS enthaltene Metadaten im Format dbf . Es machte Sinn, sie gleichzeitig zu lesen SQL Server , um Beschriftungen für Polygone, Linien und andere kartografische Objekte nicht manuell zu schreiben. In alten Zeiten VisualFoxPro 6 und SQLServer 7.0 sindwar kein Problem , aber seitdem hat sich viel verändert. Mit dem Ausgang SQLServer 2005 auf MSDN Es wurden Informationen angezeigt, dass der SQL Server-Import- und Export-Assistent das Importieren und Exportieren von dBASE-Dateien und anderen DBF-Dateien nicht unterstützt. Als Lösung wird die Verwendung von SQL Server Integration Services oder der Staging-Import empfohlen Access oder Excel.Die Situation bleibt formal bis heute bestehen,einschließlich SQLServer 2012. Dies ist nicht immer praktisch, da zusätzlich zu SQL Server , erfordert eine zusätzliche Installation MS Office und Entwicklungstools ETL -Pakete sind in der kostenlosen Edition nicht enthalten SQLServerExpress . In dieser Notiz werde ich versuchen zu importieren dbf V SQL Server ohne etwas anderes zu verwenden als SQL Server.

Es ist eine Datei „regions2010_wgs.dbf“ vorhandenvon hier . Öffnen Sie SQLServerManagementStudio im ObjectExplorer Wählen Sie die Datenbank aus, in deren Tabelle wir importieren möchten dbf , und von Kontextmenü wir reden Daten importieren:

Abb.1

Wir geben als Datenquelle an.NetFrameworkDataProviderforODBC, seit ODBCJetzt ist wieder alles unser Ein und Alles, als ConnectionString- die folgende Verbindungszeichenfolge:

Driver=(Microsoft dBase Driver (*.dbf));SourceType=DBF;SourceDB=NA;Exclusive=No; NULL=Nein;Gelöscht=Nein;BackgroundFetch=Nein

Abb.2

KlickenNächste . Wenn Sie jetzt drücken Zurück, werden wir sehen, dass die Verbindungseigenschaften von Zeile zu Spalte erweitert wurden, sodass wir eine Liste von ihnen sehen und sehen können, was sie jeweils bedeuten:

Abb. 3

Beispiele für Verbindungszeichenfolgen für ODBC -dBase-Treiber sind beispielsweise in angegebenMicrosoftKnowledgeBase oder auf der Ressource Connectionstrings.com . Im Allgemeinen lässt sich der Zweck bestimmter Eigenschaften anhand ihrer Namen leicht erraten, mit Ausnahme vielleicht der Eigenschaft „Deleted“, die über einen solchen Zweck verfügtgenau die entgegengesetzte Bedeutung . Bekanntlich ist der Vorgang des Löschens einer Zeile in dBase /FoxPro führt nicht zu einer sofortigen physischen Entfernung aus der Datei. Die Zeile wird lediglich als gelöscht markiert. Mit dem Befehl wird die physische Bereinigung von Zeilen mit Löschkennzeichen und die Neuorganisation der Datei durchgeführt PACK . Der Wert NO weist den Treiber an, die gelöschten Zeilen in den zurückgegebenen Ergebnissatz aufzunehmen. Um sie im Gegenteil nicht anzuzeigen, müssen Sie JA einstellen. Klicken Nächste.

Der nächste Bildschirm ist einfach. Stellt eine Verbindung her mitSQL Server , einschließlich der Datenbank, aus der die Tabelle mit den Ergebnissen des Imports stammt dbf:

Abb.4

Fortfahren. Sie werden zur Auswahl aufgefordertdbf -te Tabelle aus der Tabellenliste oder schreiben Sie manuell eine Abfrage. Macht zum Beispiel Sinn z FoxPro schüchterne Basis, Dabei handelt es sich wie bei jeder normalen Datenbank um einen Container, der mehrere Tabellen enthält, in diesem Fall in Form von separaten dbf-Dateien. Für Einzelpersonen dbf -file funktioniert das nicht – siehe zum BeispielOdbcConnection . GetSchema(" tables") allwrongfor . dbfileund Support-Mitarbeiter Microsoft wird in dieser Situation empfohlen OLEDBProviderfürVisualFoxPro . Erstens ereignete sich der Vorfall lange vor der radikalen Änderung der Generallinie der Partei. OLEDB dann gehörte alles uns aODBC , im Gegenteil, auf alte Legacy-Schnittstellen angewendet. Zweitens verstehe ich nicht, warum Sie die Liste durchsuchen müssen dbfwenn er schon allein ist.

Im Falle von verstreutdbf , das sich im selben Verzeichnis befindet, muss in der Zeile angegeben werden ODBC-connections (Abb. 3) DefaultDir-Eigenschaft, zum Beispiel

Driver=(Microsoft dBase Driver (*.dbf));sourcetype=DBF;DefaultDir=c:\Temp;exclusive=No;null=No;deleted=No;backgroundfetch=No

DannSie können „Daten aus einer oder mehreren Tabellen oder Ansichten kopieren“ aktivieren.

Abb.5

und eine Liste wird angezeigt dbf in diesem Verzeichnis, aus dem Sie aufgefordert werden, Folgendes auszuwählen:

Abb.6

Aber ich habe nicht gefragt Standardverzeichnis in Abb. 3, also entscheide ich mich, eine Anfrage zu schreiben:

Abb.7

und ich schreibe:

Abb.8

AAls Antwort erhalte ich die Fehlermeldung: Das Microsoft Jet-Datenbankmodul konnte das Objekt „regions2010_wgs.dbf“ nicht finden:

Abb.9

Dieser Fehler tritt auf, weil der Treiber immer noch dumm istakzeptiert Dateinamen im MS-DOS 8.3-Format . Wenn Sie die Datei „regions2010_wgs.dbf“ beispielsweise in Folgendes umbenennen:aaa . dbf , und die Aufforderung in Abb. 8 sollte dementsprechend durch ersetzt werdenWählen Sie * aus c:\Temp\aaa.dbf aus, der Fehler verschwindet. Sie werden aufgefordert, eine vorhandene Tabelle auszuwählen oder den Namen der Tabelle anzugeben, auf der erstellt werden soll SQL Server in der Datenbank Datenbank 1 (siehe Abb. 4) unter den Ergebnissen des Imports aus dbf. Ich belasse den vorgeschlagenen Namen wie er ist:

Abb.10

Klicken Sie hier auf die SchaltflächeVorschau , können Sie eine Vorschau des Inhalts anzeigen dbf o es soll übertragen werden SQL Server:

Abb.11

Alles ist in Ordnung, aber das Abrakadabra anstelle des russischen Textes ist deprimierend. Der Grund für sein Erscheinen in populärer Form wird vom angesehenen Autor erklärt Lalex. Russische Zeichen fehlen, weil der dumme Fahrer wartet dbf Datei unter DOS oov-Kodierung ( CP866, auch bekannt als OEM ). Er scheint über das Format nachzudenken dbfein sehr altes, rein Dosovsky-Erbe. ArcView betrachtet DBF standardmäßig als Windows-Format ( ANSI1251). Diese beiden Programme stehen also da wie zwei Bullen und stützen ihre Stirn ab .

Der Grund ist also klar, es bleibt nur noch die Korrektur. Geben Sie Tänze mit einem Tamburin in die Verbindungslinie eincollate=MaschineoderRussisch / CodePage=ANSI / Sortierreihenfolge=1251führte nicht zum Erfolg. Geändert29. Byte Vaaa . dbf auf 0xC9 - null Emotionen. Tatsächlich ist das Codepage-Zeichen im Header dbf wird vom Fahrer ignoriert. Die Treibereinstellung kann jedoch in der Registrierung geändert werden. Es ist darin gespeichert DataCodePage auf dem Weg HKLM\ SOFTWARE\ Microsoft\ Jet\4.0\ Engines\ xBase oder HKLM\ SOFTWARE\ Microsoft\ Office\14.0\ AccessConnectivityEngine\ Engines\ Xbase oder dementsprechend HKLM\ SOFTWARE\ Wow6432 Node\ Microsoft\ Jet\4.0\ Engines\ xBase oder HKLM\ SOFTWARE\ Wow6432 Node\ Microsoft\ Office\14.0\ AccessConnectivityEngine\ Engines\ Xbase abhängig davon, ob es auf der Maschine installiert war Büro Und wenn ja, wie. Standardmäßig hat die Eigenschaft einen Wert OEM was dazu führt, dass der Treiber alles liest dbf s basiert auf dieser Kodierung. Wenn Sie es ändern in ANSI


Abb.12

Kyrillisch in ANSI dbf" e, natürlich, wird in menschlichen Begriffen gelesen:

Abb.13

Glücklicherweise ist kein Neustart erforderlich, sondern der Importassistent sollte geschlossen und erneut ab Abb. 1 wiederholt werden.

OK klickenNächste , beenden wir den Assistenten, wodurch er implizit erstellt und ausgeführt wird SSIS-Plastiktüte:

Abb.14

und wir bekommen Müll. Mensch!


Abb.15

Das ist in der Tat auch verständlich, warum. In der TabelleAbfrage Der Assistent hat ein Feld für die Importergebnisse erstellt Region Typ Varchar (200) ohne explizite Angabe der Kollation. Daher wird standardmäßig die Basissortierung verwendet. So kam es, dass die Basis Datenbank1 hatte eine nicht-russische Sortierung:


Abb.16

Um die Situation zu korrigieren, müssen Sie ein Feld erstellen Region Unicode oder korrigieren Sie die Sortierung. Übrigens, erhöhen wir die Länge. Ja, nur für den Fall.


Abb.17

Strukturänderungen speichern, Daten löschenTabellenabfrage abschneidenund wiederholen Sie den Import Abb. 1-14


Abb.18

Jetzt wird alles normal importiert. Das Einzige ist, ich sagte „Daten löschen“, aber ich habe vergessen, dies selbst zu tun, und auf dem Bild waren sie doppelt. Ich werde es nicht mehr wiederholen, weil es prinzipienlos ist. Die Bedeutung ist klar.

Alexey Shulenin

  • Lernprogramm

In diesem Artikel erkläre ich Ihnen, wie Sie in akzeptabler Zeit viele riesige DBF-Dateien, die aus Millionen von Datensätzen bestehen, in Ihre Datenbank auf einem MS-SQL-Server laden.

Die Aufgabe ist auf den ersten Blick trivial. Sie können den Assistenten im SQL Management Studio oder die OPENROWSET-Funktion über eine Abfrage verwenden.

Die erste Option wurde jedoch nach mehreren Versuchen aufgrund verschiedener Störungen und der Notwendigkeit, viele Dateien in eine Tabelle zu laden (ca. 100 Dateien), verworfen. Außerdem trat beim Laden über einen längeren Zeitraum ein Fehler auf.

Auch die zweite Option war aufgrund der unterschiedlichen Bitness der Treiber und der Bitness des Servers nicht geeignet.

Da die Datei einfach riesig ist, wurde beschlossen, sie über einen Stream zu lesen und in die Datenbank zu schreiben. Als nächstes müssen Sie, nachdem Sie eine Zeile in der Datei gelesen haben, diese Zeile in eine Tabelle schreiben. Das erste, was mir in den Sinn kam, war die Verwendung von „Einfügen“, aber das Schreiben würde in diesem Fall zu viel Zeit in Anspruch nehmen.

Und dann erinnerte ich mich an einen anderen Aufzeichnungsmechanismus über SqlBulkCopy, der es Ihnen ermöglicht, eine große Anzahl von Datensätzen ohne Einfügeabfragen hochzuladen.
Tatsächlich handelt es sich dabei um die Verwendung der Klasse SqlBulkCopy. Zum Schreiben müssen Sie lediglich die IDataReader-Schnittstelle implementieren.

Beginnen wir also mit der Implementierung der BDFBulkReader-Schnittstelle der öffentlichen Klasse: IDataReader

Beginnen wir mit einer Funktion, die den Wert des aktuellen Datensatzes zurückgibt:
öffentliches Objekt GetValue(int i) ( return R]; )
Ich möchte Sie darauf aufmerksam machen, dass die Felder in der Datei und die Felder in der Tabelle möglicherweise in unterschiedlicher Reihenfolge vorliegen. Und aus dem Index möchte ich den Wert für das entsprechende Tabellenfeld erhalten. Daher habe ich zusätzlich das FieldIndex-Wörterbuch verwendet, bei dem die Zuordnung von Feldnamen zu Zahlen in der SQL-Tabelle erfolgt. Der Feldname wird anhand der Nummer übernommen, und der Wert aus der Lesezeile der DBF-Datei wird anhand des Namens aus dem R-Wörterbuch übernommen. Infolgedessen gibt GetValue für den n-ten Index in der Datenbank den entsprechenden Wert zurück.
Wörterbuch R = neues Wörterbuch (); Wörterbuch FieldIndex = neues Wörterbuch ();

Wir übergeben FieldIndex, der bereits für die Tabelle ausgefüllt ist, und R füllt ihn, wenn der Leser die Read-Funktion aufruft, die wir in Zukunft auch implementieren werden.

Also, der Konstruktor:

System.IO.FileStream FS; Byte-Puffer; int_FieldCount; int FieldsLength; System.Globalization.DateTimeFormatInfo dfi = new System.Globalization.CultureInfo("en-US", false).DateTimeFormat; System.Globalization.NumberFormatInfo nfi = new System.Globalization.CultureInfo("en-US", false).NumberFormat; string FieldName; string FieldType; byteFieldSize; byteFieldDigs; int RowsCount; int ReadedRow = 0; Wörterbuch R = neues Wörterbuch (); Wörterbuch FieldIndex = neues Wörterbuch (); public BDFBulkReader(string FileName, Dictionary FieldIndex) ( FS = new System.IO.FileStream(FileName, System.IO.FileMode.Open); buffer = neues Byte; FS.Position = 4; FS.Read(buffer, 0, buffer.Length); RowsCount = buffer + (Puffer * 0x100) + (Puffer * 0x10000) + (Puffer * 0x1000000); Puffer = neues Byte; FS.Position = 8; FS.Read(Puffer, 0, Puffer.Länge); _FieldCount = (((Puffer + (Puffer * 0x100)) - 1) / 32) - 1; FieldName = neuer String[_FieldCount]; FieldType = neuer String[_FieldCount]; FieldSize = neues Byte[_FieldCount]; FieldDigs = neues Byte[_FieldCount]; Puffer = neu byte; FS.Position = 32; FS.Read(buffer, 0, buffer.Length); FieldsLength = 0; for (int i = 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; }

Seine Aufgaben bestehen darin, die Datei zu öffnen und die Namen der Felder, ihre Anzahl und ihre Typen zu bestimmen. Der zweite Parameter des Konstruktors ist, wie ich oben geschrieben habe, ein Korrespondenzwörterbuch, sodass wir beispielsweise durch die erste Feldnummer garantiert das gewünschte Feld aus der Datei erhalten.

Kommen wir nun zur Implementierung von bool Read(). Es wird „true“ zurückgegeben, wenn die Zeile erfolgreich gelesen wurde. Und false, wenn die Zeile nicht gelesen wurde und gleichzeitig das Ende der Daten erreicht wurde.

Public bool Read() ( if (ReadedRow >= RowsCount) return false; R.Clear(); buffer = new byte; FS.ReadByte(); FS.Read(buffer, 0, buffer.Length); int Index = 0 ; für (int i = 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; }

Ich möchte Sie noch einmal daran erinnern, dass die gelesene Zeile nach dem Aufruf in das R-Wörterbuch geschrieben wird, damit der Leser sie später lesen kann.
Es bleibt also nur noch die Methode zu implementieren, die die Anzahl der Felder zurückgibt:

Public int FieldCount ( get ( return _FieldCount; ) )

Und Stubs für die Schnittstelle:

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 dezimal GetDecimal(int i) ( return -1; ) public DateTime GetDateTime(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) ( false zurückgeben; ) public int GetValues(Objektwerte) ( -1 zurückgeben; )

Wo in Dispose() ich einfach die Datei schließe.

Sobald die Schnittstelle implementiert ist, können Sie eine Methode zum Laden der Datei schreiben:

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

Das ist alles. Alles, was noch an diese Funktion übergeben werden muss, ist der Dateispeicherort, der Tabellenname, die Verbindungszeichenfolge und das entsprechende passende Wörterbuch, zum Beispiel:

Wörterbuch FieldIndex= neues Wörterbuch (); FieldIndex.Add(0, "POSTCODE"); 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");

Das war's, vielen Dank für Ihre Aufmerksamkeit und viel Spaß beim Herunterladen.

Sie müssen Daten aus einem völligen Mist in MSSQL ziehen, der nur über ODBC verbunden werden kann. Darüber hinaus ist das Herstellen einer Verbindung auch faul. Es wäre schön, es im Handumdrehen zu erstellen.

Kurze Beschreibung der Lösung:

Beginnen wir mit dem Datenimport.
Wählen Sie den Quelltreiber aus. Net Framework Datenanbieter für ODBC"
Geben Sie die Verbindungslinie an.
Wählen Sie „Abfrage schreiben“, um die zu übertragenden Daten anzugeben
Wir schreiben eine Abfrage wie: select * from c:\Temp\filename.dbf
Vergessen Sie nicht, dass Dateinamen der MS-DOS 8.3-Kodierung entsprechen müssen

Vollständige Beschreibung der Lösung

Auch wenn DBF schon lange als Legacy-Format gilt, bleibt das Thema, gemessen an der Zahl der Fragen im Internet, immer noch eine dringende Aufgabe. Ich bin insbesondere darauf gestoßen, als ich versucht habe, eine Karte in den Tisch einzuführen. Die ArcGIS-Karte enthielt Metadaten im DBF-Format. Es war sinnvoll, sie gleichzeitig in SQL Server zu lesen, um Beschriftungen für Polygone, Linien und andere Kartenobjekte nicht manuell zu schreiben. Zu Zeiten von Visual FoxPro 6 und SQL Server 7.0 war das kein Problem, aber seitdem hat sich viel geändert. Mit der Veröffentlichung von SQL Server 2005 berichtete MSDN, dass der SQL Server-Import-/Export-Assistent den Import und Export von dBASE-Dateien und anderen DBF-Dateien nicht unterstützt. Die empfohlene Lösung ist die Verwendung von SQL Server Integration Services oder der Zwischenimport in Access oder Excel. Formal bleibt die Situation bis heute bestehen, auch bei SQL Server 2012. Dies ist nicht immer praktisch, da zusätzlich zu SQL Server eine zusätzliche Installation von MS Office erforderlich ist und die Tools zum Entwickeln von ETL-Paketen nicht in der kostenlosen Edition von enthalten sind SQL Server Express. In diesem Beitrag werde ich versuchen, dbf in SQL Server zu importieren, ohne etwas anderes als SQL Server zu verwenden.

Es gibt eine Datei „regions2010_wgs.dbf“, die hier entnommen wurde. Öffnen Sie SQL Server Management Studio, wählen Sie im Objekt-Explorer die Datenbank aus, in deren Tabelle wir dbf importieren möchten, und sagen Sie im Kontextmenü „Daten importieren“:

Als Datenquelle geben wir den .Net Framework Data Provider für ODBC an, da ODBC nun wieder unser Alles ist, und als ConnectionString den folgenden Verbindungsstring:

Driver=(Microsoft dBase Driver (*.dbf));SourceType=DBF;SourceDB=NA;Exclusive=No; NULL=Nein;Gelöscht=Nein;BackgroundFetch=Nein


Abb.2

Weiter klicken. Wenn wir jetzt „Zurück“ drücken, werden wir sehen, dass die Verbindungseigenschaften von Zeile zu Spalte erweitert wurden, sodass wir eine Liste davon sehen und sehen können, was sie jeweils bedeuten:

Beispiele für Verbindungszeichenfolgen für den dBase ODBC-Treiber finden Sie beispielsweise in der Microsoft Knowledge Base oder auf Connectionstrings.com. Im Allgemeinen lässt sich der Zweck bestimmter Eigenschaften anhand ihrer Namen leicht erraten, mit Ausnahme vielleicht der Eigenschaft „Deleted“, die genau die entgegengesetzte Bedeutung hat. Wie Sie wissen, wird durch das Löschen einer Zeile in dBase/FoxPro diese nicht sofort physisch aus der Datei entfernt. Die Zeile wird lediglich als gelöscht markiert. Die physische Bereinigung von Zeilen, die ein Löschkennzeichen haben, und die Neuorganisation der Datei werden mit dem PACK-Befehl durchgeführt. Der Wert NO weist den Treiber an, die gelöschten Zeilen in den zurückgegebenen Ergebnissatz aufzunehmen. Um sie im Gegenteil nicht anzuzeigen, müssen Sie JA einstellen. Weiter klicken.

Der nächste Bildschirm ist einfach. Es wird eine Verbindung zum SQL Server hergestellt, einschließlich der Datenbank, in der die Tabelle mit den Ergebnissen des Imports aus dbf erstellt wird:

Fortfahren. Es wird empfohlen, eine DBF-Tabelle aus der Tabellenliste auszuwählen oder manuell eine Abfrage zu schreiben. Sinnvoll ist dies beispielsweise für eine FoxPro-Datenbank, bei der es sich wie jede normale Datenbank um einen Container handelt, der mehrere Tabellen enthält, in diesem Fall in Form separater DBF-Dateien. Für eine einzelne DBF-Datei funktioniert dies nicht – siehe zum Beispiel OdbcConnection.GetSchema("tables"), alles falsch für .dbf-Datei und Microsoft-Supportmitarbeiter haben in dieser Situation die Verwendung des OLE DB-Anbieters für Visual FoxPro empfohlen. Erstens ereignete sich der Vorfall lange vor der radikalen Änderung der Generallinie der Partei. OLE DB war damals unser Ein und Alles, ODBC hingegen gehörte zu den alten Legacy-Schnittstellen. Zweitens verstehe ich nicht, warum ich die DBF-Liste durchsuchen soll, wenn es bereits nur eine gibt.

Bei separaten Datenbanken, die sich im selben Verzeichnis befinden, müssen Sie die Eigenschaft DefaultDir in der ODBC-Verbindungszeile (Abb. 3) festlegen, z. B.

Driver=(Microsoft dBase Driver (*.dbf));sourcetype=DBF;DefaultDir=c:\Temp;exclusive=No;null=No;deleted=No;backgroundfetch=No

Anschließend können Sie „Daten aus einer oder mehreren Tabellen oder Ansichten kopieren“ aktivieren.

Und eine Liste der DBFS in diesem Verzeichnis wird angezeigt, aus der Sie aufgefordert werden, Folgendes auszuwählen:

Aber ich habe DefaultDir in Abb. 3 nicht angegeben, also schreibe ich eine Anfrage:

Und ich schreibe:

Als Antwort erhalte ich die Fehlermeldung „Das Microsoft Jet-Datenbankmodul konnte das Objekt „regions2010_wgs.dbf“ nicht finden“:

Dieser Fehler tritt auf, weil der dumme Treiber immer noch Dateinamen im MS-DOS 8.3-Format akzeptiert. Wenn Sie die Datei „regions2010_wgs.dbf“ beispielsweise in „aaa.dbf“ umbenennen und die Abfrage in Abb. 8 entsprechend durch „select * from c:\Temp\aaa.dbf“ ersetzen, verschwindet der Fehler. Sie werden aufgefordert, eine vorhandene auszuwählen oder den Namen der Tabelle anzugeben, die auf SQL Server in der Datenbank Database1 (siehe Abb. 4) für die Ergebnisse des Imports aus dbf erstellt wird. Ich belasse den vorgeschlagenen Namen wie er ist:

Wenn Sie hier auf die Schaltfläche „Vorschau“ klicken, können Sie eine Vorschau des Inhalts der Datenbank anzeigen, die an SQL Server übertragen werden soll:

Alles ist in Ordnung, aber das Abrakadabra anstelle des russischen Textes ist deprimierend. Den Grund für sein Erscheinen in populärer Form erklärt der angesehene Autor Lalex hier. Russische Zeichen verschwinden, weil der dumme Treiber eine dbf-Datei in DOS-Kodierung (CP866, auch bekannt als OEM) erwartet. Er scheint das DBF-Format für ein sehr altes, reines DOS-Erbe zu halten. ArcView betrachtet DBF standardmäßig als Windows-Format (ANSI 1251). Diese beiden Programme stehen also da wie zwei Bullen und stützen ihre Stirn ab.

Der Grund ist also klar, es bleibt nur noch die Korrektur. Das Tanzen mit einem Tamburin und die Eingabe von collate=Machine oder Russian / CodePage=ANSI / Collating Sequence=1251 in die Verbindungszeile führten nicht zum Erfolg. Ich habe das 29. Byte in aaa.dbf in 0xC9 geändert – null Emotionen. Tatsächlich wird das Codepage-Attribut im DBF-Header vom Treiber ignoriert. Die Treibereinstellung kann jedoch in der Registrierung geändert werden. Es wird in der DataCodePage unter dem Pfad HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\xBase oder HKLM\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Xbase bzw. HKLM\SOFTWARE\Wow6432Node\ gespeichert. Microsoft\Jet \4.0\Engines\xBase oder HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Xbase, je nachdem, ob und wie Office auf dem Computer installiert wurde. Standardmäßig ist die Eigenschaft tatsächlich auf OEM gesetzt, wodurch der Treiber gezwungen wird, alle DBFS basierend auf dieser Kodierung zu lesen. Wenn Sie es in ANSI ändern

Kyrillisch in ANSI dbf"e wird natürlich auf menschliche Weise gelesen.

DBF – eine Datenbankdatei, deren Arbeitsfähigkeit zuvor in die Umgebung integriert war Microsoft Office. Access- und Excel-Anwendungen arbeiteten mit dem Format, später wurde Access aus dem Paket entfernt und wurde zu einem separaten Programm, und in Excel ist die DataBaseFile-Unterstützung seit 2007 erheblich eingeschränkt.

Wenn es nicht möglich ist, eine DBF-Datei direkt in Excel zu öffnen, müssen Sie sie zunächst konvertieren.

Obwohl DBF von vielen als veraltetes Format angesehen wird, wird es in Fachprogrammen in den Bereichen Wirtschaft, Design und Ingenieurwesen immer noch häufig verwendet. Überall dort, wo es darum geht, mit großen Informationsmengen zu arbeiten, sie zu strukturieren und zu verarbeiten sowie Abfragen auszuführen. Beispielsweise basiert das Softwarepaket 1C Enterprise vollständig auf der Datenbankverwaltung. Und da viele Office-Dokumentationen und -Daten in Excel verarbeitet werden, ist die Frage der integrierten Arbeit mit diesen Formaten relevant und gefragt.

Excel-Probleme beim Arbeiten mit DBF

Excel 2003 hatte die Möglichkeit, DBF zu öffnen und zu bearbeiten sowie XLS-Dokumente in diesem Format zu speichern:

  1. Wählen Sie „Datei“ aus der Menüleiste.
  2. Klicken Sie anschließend auf „Speichern unter“.
  3. Wählen Sie „*.dbf“ aus der Dropdown-Liste.

WICHTIG. Seit 2007 können Sie das Datenbankformat in Excel öffnen und anzeigen, aber Sie können darin keine Änderungen vornehmen oder XLS-Dokumente speichern. Standardmittel Programme bieten diese Möglichkeit nicht mehr an.

Allerdings gibt es spezielle Add-Ons für die Anwendung, die diese um eine solche Funktion erweitern. Programmierer veröffentlichen ihre Entwicklungen online in verschiedenen Foren, die Sie finden können verschiedene Varianten. Das beliebteste Add-on namens XslToDBF kann von der Entwickler-Website http://basile-m.narod.ru/xlstodbf/download.html heruntergeladen werden. Der Download ist kostenlos, aber wenn Sie möchten, können Sie das Projekt unterstützen, indem Sie einen beliebigen Betrag auf Ihr Portemonnaie oder Ihre Karte überweisen.

Installation und Verwendung:

  1. Laden Sie das Archiv von der oben genannten Website herunter.
  2. Extrahieren Sie XlsToDBF.xla daraus und speichern Sie es auf Ihrem Computer.
  3. Gehen Sie in Excel zum Menü mit dem Microsoft-Symbol links „Optionen“.
  4. Wählen Sie unter Excel-Optionen die Option Add-Ins aus.
  5. Klicken Sie in der Zeile „Add-Ins verwalten/Excel“ auf „Los“.
  6. Klicken Sie auf Durchsuchen und suchen Sie die gespeicherte Datei XlsToDBF.xla.
  7. Der Eintrag „XLS -> DBF“ sollte mit aktiviertem Kontrollkästchen in der Liste der Add-ons erscheinen. Überprüfen Sie, ob es nicht vorhanden ist.
  8. Jetzt können Sie .xls im .dbf-Format speichern. Sie können es von derselben Website herunterladen detaillierte Anleitung durch Nutzung. Die Hauptsache ist, tabellarische Daten richtig aufzubereiten.
  9. Sobald die Tabelle fertig ist, wählen Sie eine beliebige gefüllte Zelle aus und drücken Sie Alt und F
  10. Geben Sie im sich öffnenden Makrofenster XlsToDBF in das Feld ein. Die Groß- und Kleinschreibung spielt keine Rolle.
  11. Klicken Sie auf Ausführen.
  12. Wenn Sie die Daten korrekt vorbereitet und formatiert haben, wird die Datenbankdatei auch in dem Ordner gespeichert, in dem sich das Quell-XLS befindet.

Wenn Sie in Office nichts ändern möchten und Add-Ins und Anwendungen von Drittanbietern nicht vertrauen, können Sie einen zeitaufwändigeren Weg zum Konvertieren einer XLS-Datei in DBF vorschlagen:

  1. Kaufen und installieren Microsoft-Programm Zugang.
  2. Bereiten Sie das Dokument in Excel vor und speichern Sie es.
  3. Klicken Sie in MS Access auf die Schaltfläche „Öffnen“ und wählen Sie die Datei aus.
  4. Jetzt müssen Sie den Import richtig konfigurieren.
  5. Wählen Sie das Blatt aus, mit dem Sie beginnen möchten. Wenn es mehrere davon gibt, müssen Sie immer noch einen nach dem anderen ausführen.
  6. Wenn die Tabelle eine Kopfzeile hat, aktivieren Sie das entsprechende Kontrollkästchen.
  7. Als nächstes können Sie den Tabellennamen ändern.
  8. Klicken Sie nun auf „Externe Daten“.
  9. Klicken Sie auf die Schaltfläche „Exportieren“, „Erweitert“.
  10. Wählen Sie dBase-Datei.
  11. Geben Sie einen Namen und einen Speicherort an.

Diese Methode funktioniert nicht immer erfolgreich, es kommt häufig zu Fehlern bei der Datenverarbeitung und der anschließenden Speicherung. Und es ist sehr langwierig und unbequem.

Konvertierung

Um nicht selbst darunter zu leiden Office-Programme Es wurden viele Anwendungen erstellt, mit denen Sie Daten von einem Format in ein anderes übertragen können. Zunächst einmal fast alles leistungsstarke Programme Für die Arbeit mit DBMS setzen sie die Möglichkeit voraus, nach XLS zu exportieren und von dort zu laden. Zweitens gibt es kleine Energieversorger, die sich auf die Konvertierung spezialisiert haben. Hier sind einige davon:


In all diesen Programmen läuft die Konvertierung darauf hinaus, die Quelldatei zu öffnen und dann den Befehl „Konvertieren“ oder „Exportieren“ auszuführen.

es gibt auch kostenlose Dienstleistungen Online-Konvertierungen. Auf solchen Websites werden Sie aufgefordert, die Quelldatei zu senden (herunterzuladen). Klicken Sie auf „Konvertieren“. Anschließend wird ein Link zum konvertierten Dokument angezeigt. Inwieweit Sie solchen Diensten vertrauen können, ist eine individuelle Entscheidung auf eigene Gefahr und Gefahr.

Sie können die DBF also in Excel öffnen, aber wenn die Version 2007 oder neuer ist, können Sie nichts mehr damit machen, schauen Sie einfach nach. Für die Bearbeitung und Speicherung in XLS sowie für die Konvertierung in die umgekehrte Richtung gibt es spezielle Add-Ons bzw. Programme. Wenn Sie Erfahrung mit der Konvertierung und Arbeit mit DBF in verschiedenen Anwendungen haben, teilen Sie uns Ihre Tipps in den Kommentaren mit.

DBF ist ein beliebtes Format zum Speichern und Austauschen von Daten zwischen verschiedenen Programmen und vor allem zwischen Anwendungen, die Datenbanken und Tabellenkalkulationen verwalten. Obwohl es veraltet ist, ist es in verschiedenen Bereichen weiterhin gefragt. Sie arbeiten beispielsweise weiterhin aktiv mit ihm zusammen Buchhaltungsprogramme, und Regulierungs- und Regierungsbehörden akzeptieren einen erheblichen Teil der Berichte in diesem Format.

Aber leider unterstützt Excel seit Excel 2007 dieses Format nicht mehr vollständig. Jetzt können Sie in diesem Programm nur noch den Inhalt der DBF-Datei anzeigen und das Speichern von Daten mit der angegebenen Erweiterung mithilfe der integrierten Tools der Anwendung ist nicht mehr möglich. Glücklicherweise gibt es andere Optionen zum Konvertieren von Daten Excel-Programme in dem Format, das wir brauchen. Schauen wir uns an, wie dies bewerkstelligt werden kann.

In Excel 2003 und früheren Versionen des Programms konnten Sie Daten mit der Standardmethode im DBF-Format (dBase) speichern. Dazu musste man auf den Artikel klicken "Datei" V horizontales Menü Anwendungen aus und wählen Sie dann eine Position in der Liste aus, die geöffnet wird "Speichern als…". Im sich öffnenden Speicherfenster müssen Sie den Namen des gewünschten Formats aus der Liste auswählen und auf die Schaltfläche klicken "Speichern".

Doch leider hielten Microsoft-Entwickler ab Excel 2007 dBase für veraltet und moderne Excel-Formate für zu komplex, als dass sie Zeit und Geld für die Gewährleistung der vollständigen Kompatibilität aufwenden müssten. Daher behielt Excel die Möglichkeit, DBF-Dateien zu lesen, die Unterstützung für das Speichern von Daten in diesem Format mit integrierten Softwaretools wurde jedoch eingestellt. Es gibt jedoch einige Möglichkeiten, in Excel gespeicherte Daten mithilfe von Add-Ins und anderer Software in DBF zu konvertieren.

Methode 1: WhiteTown Converters Pack

Es gibt eine Reihe von Programmen, mit denen Sie Daten von Excel in DBF konvertieren können. Einer der meisten einfache Wege Das Konvertieren von Daten aus Excel in DBF besteht darin, ein Paket von Dienstprogrammen zum Konvertieren von Objekten mit verschiedenen Erweiterungen WhiteTown Converters Pack zu verwenden.

Obwohl der Installationsvorgang für dieses Programm einfach und intuitiv ist, werden wir uns dennoch ausführlich damit befassen und auf einige Nuancen hinweisen.

  1. Nachdem Sie das Installationsprogramm heruntergeladen und gestartet haben, öffnet sich sofort ein Fenster Installationsassistenten, wodurch Sie aufgefordert werden, eine Sprache für weitere Installationsvorgänge auszuwählen. Standardmäßig sollte die Sprache angezeigt werden, die auf Ihrer Windows-Kopie installiert ist. Sie können diese jedoch bei Bedarf ändern. Wir werden das nicht tun und einfach auf den Knopf drücken. "OK".
  2. Als nächstes öffnet sich ein Fenster, in dem der Standort angegeben wird Systemfestplatte, wo das Dienstprogramm installiert wird. Standardmäßig ist dies der Ordner « Programmdateien» auf der Festplatte "C". Auch hier ist es besser, nichts zu ändern und die Taste zu drücken "Weiter".
  3. Anschließend öffnet sich ein Fenster, in dem Sie auswählen können, welche konkreten Transformationsrichtungen Sie haben möchten. Standardmäßig sind alle verfügbaren Konvertierungskomponenten ausgewählt. Einige Benutzer möchten jedoch möglicherweise nicht alle installieren, da jedes Dienstprogramm Speicherplatz auf der Festplatte beansprucht. Wichtig ist uns in jedem Fall, dass neben dem Artikel ein Häkchen steht „XLS (Excel) zu DBF-Konverter“. Der Benutzer kann die restlichen Komponenten des Dienstprogrammpakets nach eigenem Ermessen installieren. Nachdem Sie die Einstellungen vorgenommen haben, vergessen Sie nicht, auf die Schaltfläche zu klicken "Weiter".
  4. Anschließend öffnet sich ein Fenster, in dem Sie dem Ordner eine Verknüpfung hinzufügen "Start". Standardmäßig wird die Verknüpfung aufgerufen „Weiße Stadt“, aber Sie können den Namen ändern, wenn Sie möchten. Drücken Sie den Knopf "Weiter".
  5. Anschließend öffnet sich ein Fenster mit der Frage, ob eine Verknüpfung auf dem Desktop erstellt werden soll. Wenn Sie möchten, dass es hinzugefügt wird, lassen Sie ein Häkchen neben dem entsprechenden Parameter. Wenn Sie es nicht möchten, deaktivieren Sie es. Dann drücken Sie wie immer den Knopf "Weiter".
  6. Danach öffnet sich ein weiteres Fenster. Es zeigt die grundlegenden Installationsparameter. Wenn der Benutzer mit etwas nicht zufrieden ist und die Parameter bearbeiten möchte, dann drückt er die Taste "Zurück". Wenn alles in Ordnung ist, klicken Sie auf den Button "Installieren".
  7. Der Installationsvorgang beginnt, dessen Fortschritt durch eine dynamische Anzeige angezeigt wird.
  8. Anschließend öffnet sich eine Informationsmeldung Englische Sprache, der sich für die Installation dieses Pakets bedankt. Drücken Sie den Knopf "Weiter".
  9. Im letzten Fenster Installationsassistenten Es wird berichtet, dass das WhiteTown Converters Pack-Programm erfolgreich installiert wurde. Alles was wir tun müssen, ist den Knopf zu drücken "Vollständig".
  10. Danach wird ein Ordner namens „Weiße Stadt“. Es enthält Dienstprogramm-Verknüpfungen für bestimmte Konvertierungsbereiche. Öffnen Sie diesen Ordner. Im WhiteTown-Paket finden wir eine große Anzahl an Dienstprogrammen für verschiedene Konvertierungsbereiche. Darüber hinaus verfügt jede Richtung über ein eigenes Dienstprogramm für 32-Bit- und 64-Bit-Betriebssysteme Windows-Systeme. Öffnen Sie die Anwendung mit dem Namen „XLS-zu-DBF-Konverter“, entsprechend der Bitanzahl Ihres Betriebssystems.
  11. Das XLS-zu-DBF-Konverterprogramm wird gestartet. Wie Sie sehen, ist die Benutzeroberfläche auf Englisch, aber dennoch intuitiv.

    Die Registerkarte wird sofort geöffnet "Eingang" ("Eingeben"). Es soll das Objekt angeben, das konvertiert werden soll. Klicken Sie dazu auf den Button "Hinzufügen" ("Hinzufügen").

  12. Danach öffnet sich ein Standardfenster zum Hinzufügen eines Objekts. Darin müssen Sie in das Verzeichnis gehen, in dem sich die von uns benötigte Excel-Arbeitsmappe mit der Erweiterung xls oder xlsx befindet. Nachdem das Objekt gefunden wurde, wählen Sie seinen Namen aus und klicken Sie auf die Schaltfläche "Offen".
  13. Wie Sie sehen, wurde danach der Pfad zum Objekt im Tab angezeigt "Eingang". Drücken Sie den Knopf "Nächste" ("Weiter").
  14. Danach werden wir automatisch zum zweiten Tab weitergeleitet "Ausgabe" ("Abschluss"). Hier müssen Sie angeben, in welches Verzeichnis das fertige Objekt mit der DBF-Erweiterung ausgegeben wird. Um den Ordner zum Speichern der fertigen DBF-Datei auszuwählen, klicken Sie auf die Schaltfläche "Durchsuche..." ("Sicht"). Es öffnet sich eine kleine Liste mit zwei Elementen "Datei aussuchen" („Wählen Sie eine Datei aus“) Und "Ordner auswählen" ("Ordner auswählen"). Tatsächlich bedeuten diese Punkte nur die Auswahl verschiedener Arten von Navigationsfenstern, um den Speicherordner anzuzeigen. Wir treffen eine Wahl.
  15. Im ersten Fall handelt es sich um ein normales Fenster "Speichern als…". Es werden sowohl Ordner als auch vorhandene dBase-Objekte angezeigt. Wir gehen in das Verzeichnis, in dem wir speichern möchten. Als nächstes auf dem Feld "Dateiname" Wir geben den Namen an, unter dem das Objekt nach der Konvertierung aufgeführt werden soll. Klicken Sie anschließend auf die Schaltfläche "Speichern".

    Wenn Sie die Option wählen "Ordner auswählen", dann öffnet sich ein vereinfachtes Verzeichnisauswahlfenster. Es werden nur Ordner angezeigt. Wählen Sie den zu speichernden Ordner aus und klicken Sie auf die Schaltfläche "OK".

  16. Wie Sie sehen, wird nach jeder dieser Aktionen der Pfad zum Ordner zum Speichern des Objekts auf der Registerkarte angezeigt "Ausgabe". Um zur nächsten Registerkarte zu gelangen, klicken Sie auf die Schaltfläche "Nächste" ("Weiter").
  17. IN letzte Registerkarte "Optionen" ("Optionen") Es gibt viele Einstellungen, aber uns interessiert am meisten „Art der Memofelder“ („Memofeldtyp“). Klicken Sie auf das Feld, in dem die Standardeinstellung steht "Auto" ("Auto"). Eine Liste der dBase-Typen zum Speichern des Objekts wird geöffnet. Dieser Parameter ist sehr wichtig, da nicht alle Programme, die mit dBase arbeiten, alle Arten von Objekten mit dieser Erweiterung verarbeiten können. Daher müssen Sie im Voraus wissen, welchen Typ Sie wählen sollen. Zur Auswahl stehen sechs verschiedene Typen:
    • dBASE III;
    • FoxPro;
    • dBASE IV;
    • Visual FoxPro;
    • >SMT;
    • dBASE-Stufe 7.

    Wir treffen eine Auswahl des Typs, der für die Verwendung in einem bestimmten Programm benötigt wird.

  18. Nachdem Sie Ihre Wahl getroffen haben, können Sie mit dem eigentlichen Konvertierungsvorgang fortfahren. Klicken Sie dazu auf den Button "Start" ("Start").
  19. Der Konvertierungsvorgang beginnt. Wenn eine Excel-Arbeitsmappe mehrere Blätter mit Daten enthält, wird für jedes davon eine separate DBF-Datei erstellt. Der Abschluss des Konvertierungsvorgangs wird durch eine grüne Fortschrittsanzeige angezeigt. Nachdem er das Ende des Feldes erreicht hat, klicken Sie auf die Schaltfläche "Beenden" ("Beenden").

Das fertige Dokument befindet sich in dem Verzeichnis, das in der Registerkarte angegeben wurde "Ausgabe".

Der einzige wesentliche Nachteil der Methode mit dem Dienstprogramm WhiteTown Converters Pack besteht darin, dass Sie nur 30 Konvertierungsvorgänge kostenlos durchführen können und dann eine Lizenz erwerben müssen.

Methode 2: XlsToDBF-Add-in

Sie können eine Excel-Arbeitsmappe direkt über die Anwendungsschnittstelle in dBase konvertieren, indem Sie Add-ons von Drittanbietern installieren. Eines der besten und bequemsten davon ist das XlsToDBF-Add-on. Betrachten wir den Algorithmus für seine Anwendung.

  1. Nachdem Sie das XlsToDBF.7z-Archiv mit dem Add-In heruntergeladen haben, entpacken Sie daraus ein Objekt namens XlsToDBF.xla. Da das Archiv eine 7z-Erweiterung hat, kann das Entpacken entweder erfolgen Standardprogramm für diese Erweiterung 7-Zip, oder verwenden Sie einen anderen Archivierer, der die Arbeit damit unterstützt.
  2. Starten Sie anschließend das Excel-Programm und gehen Sie zur Registerkarte "Datei". Als nächstes gehen wir zum Abschnitt über "Optionen"über das Menü auf der linken Seite des Fensters.
  3. Klicken Sie im sich öffnenden Parameterfenster auf das Element „Zusätze“. Gehen Sie zur rechten Seite des Fensters. Ganz unten gibt es ein Feld "Kontrolle". Wir bewegen den Schalter darin in die Position „Excel-Add-Ins“ und klicken Sie auf die Schaltfläche "Gehen...".
  4. Es öffnet sich ein kleines Add-on-Verwaltungsfenster. Klicken Sie dort auf den Button "Rezension…".
  5. Das Fenster zum Öffnen des Objekts wird geöffnet. Wir müssen in das Verzeichnis gehen, in dem sich das entpackte XlsToDBF-Archiv befindet. Gehen Sie zum gleichnamigen Ordner und wählen Sie das Objekt mit dem Namen aus „XlsToDBF.xla“. Klicken Sie anschließend auf die Schaltfläche "OK".
  6. Dann kehren wir zum Add-On-Verwaltungsfenster zurück. Wie Sie sehen können, wurde der Name in der Liste angezeigt „XLS -> DBF“. Das ist unser Überbau. Daneben sollte ein Häkchen stehen. Wenn kein Häkchen vorhanden ist, überprüfen Sie es und klicken Sie dann auf die Schaltfläche "OK".
  7. Das Add-on ist also installiert. Jetzt öffnen wir das Excel-Dokument, dessen Daten in dBase konvertiert werden sollen, oder geben es einfach in das Blatt ein, wenn das Dokument noch nicht erstellt wurde.
  8. Jetzt müssen wir die Daten noch manipulieren, um sie für die Konvertierung vorzubereiten. Zunächst fügen wir zwei Zeilen über dem Tabellenkopf ein. Sie sollten die allerersten auf dem Blatt sein und Namen auf der vertikalen Koordinatenleiste haben „1“ Und „2“.

    In der oberen linken Zelle geben wir den Namen ein, den wir der erstellten DBF-Datei zuweisen möchten. Es besteht aus zwei Teilen: dem Namen selbst und der Erweiterung. Es ist nur lateinisches Alphabet erlaubt. Ein Beispiel für einen solchen Namen ist "UCHASTOK.DBF".

  9. In der ersten Zelle rechts neben dem Namen müssen Sie die Kodierung angeben. Bei Verwendung dieses Add-Ins gibt es zwei Codierungsoptionen: CP866 Und CP1251. Wenn die Zelle B2 ist leer oder hat einen anderen Wert als „CP866“, dann wird die Standardkodierung angewendet CP1251. Wir stellen die Kodierung ein, die wir für notwendig halten, oder lassen das Feld leer.
  10. Als nächstes machen wir weiter nächste Zeile. Tatsache ist, dass in der dBase-Struktur jede Spalte, die als Feld bezeichnet wird, ihren eigenen Datentyp hat. Es gibt solche Bezeichnungen:
    • N(Numerisch) – numerisch;
    • L(Logisch) – logisch;
    • D(Datum datum;
    • C(Zeichenkette.

    Darüber hinaus ist in der Zeichenfolge ( CNN) und numerischer Typ ( Nnn) nach dem Namen in Form eines Buchstabens sollte angegeben werden Höchstbetrag Zeichen im Feld. Wenn der numerische Typ Dezimalstellen verwendet, muss deren Zahl auch nach dem Punkt angegeben werden ( Nnn.n).

    Es gibt andere Datentypen im dBase-Format (Memo, Allgemein usw.), mit denen dieses Add-on jedoch nicht arbeiten kann. Allerdings konnte Excel 2003, als es die Konvertierung in DBF noch unterstützte, nicht damit arbeiten.

    In unserem speziellen Fall ist das erste Feld eine Zeichenfolge mit einer Breite von 100 Zeichen ( C100), und die übrigen Felder sind numerisch, 10 Zeichen breit ( N10).

  11. Die nächste Zeile enthält die Namen der Felder. Tatsache ist aber, dass sie auch im lateinischen Alphabet eingegeben werden müssen und nicht wie bei uns im kyrillischen Alphabet. Außerdem sind Leerzeichen in Feldnamen nicht zulässig. Wir benennen sie gemäß diesen Regeln um.
  12. Danach kann die Datenaufbereitung als abgeschlossen betrachtet werden. Markieren Sie mit gedrückter linker Maustaste den gesamten Tabellenbereich auf dem Blatt. Gehen Sie dann zur Registerkarte "Entwickler". Standardmäßig ist es deaktiviert, daher müssen Sie es vor weiteren Manipulationen aktivieren und Makros aktivieren. Weiter auf der Multifunktionsleiste im Einstellungsblock "Code" Klicken Sie auf das Symbol „Makros“.

    Sie können es etwas einfacher machen, indem Sie eine Hotkey-Kombination eingeben Alt+F8.

  13. Das Makrofenster öffnet sich. Auf dem Feld „Makroname“ Geben Sie den Namen unseres Add-Ins ein „XlsToDBF“ ohne Anführungszeichen. Das Register ist nicht wichtig. Klicken Sie anschließend auf die Schaltfläche "Laufen".
  14. Makro ein Hintergrund führt die Verarbeitung durch. Anschließend wird im selben Ordner, in dem sich die Excel-Quelldatei befindet, ein Objekt mit der Erweiterung DBF und dem in der Zelle angegebenen Namen erstellt A1.

Wie Sie sehen, ist diese Methode viel komplizierter als die vorherige. Außerdem ist die Anzahl der verwendbaren Feldtypen und die Anzahl der Objekttypen, die mit der DBF-Erweiterung erstellt werden können, recht begrenzt. Ein weiterer Nachteil besteht darin, dass das dBase-Objekterstellungsverzeichnis nur vor dem Konvertierungsvorgang zugewiesen werden kann, indem die Quell-Excel-Datei direkt in den Zielordner verschoben wird. Zu den Vorteilen diese Methode Es ist anzumerken, dass es im Gegensatz zur vorherigen Option absolut kostenlos ist und fast alle Manipulationen direkt über die Excel-Schnittstelle durchgeführt werden.

Methode 3: Microsoft Access-Programm

Obwohl neue Versionen von Excel nicht über eine integrierte Möglichkeit zum Speichern von Daten im DBF-Format verfügen, gibt es dennoch eine Option, die genutzt werden kann Microsoft-Anwendungen Access kommt der Bezeichnung „Standard“ am nächsten. Tatsache ist, dass dieses Programm vom selben Hersteller wie Excel veröffentlicht wurde und auch im Microsoft Office-Paket enthalten ist. Darüber hinaus ist dies die sicherste Option, da Sie keinen Kontakt aufnehmen müssen Software Dritthersteller. Microsoft Access ist speziell für die Arbeit mit Datenbanken konzipiert.

  1. Nachdem alle notwendigen Daten des Blattes in Excel eingegeben wurden, müssen Sie es zur Konvertierung in das DBF-Format zunächst in einem der Excel-Formate speichern. Klicken Sie dazu auf das Diskettensymbol in der oberen linken Ecke des Programmfensters.
  2. Das Speicherfenster öffnet sich. Wir gehen in das Verzeichnis, in dem die Datei gespeichert werden soll. Von diesem Ordner aus müssen Sie ihn dann in Microsoft Access öffnen. Das Buchformat kann auf dem Standard-XLSX belassen werden oder Sie können es in XLS ändern. In diesem Fall ist dies nicht kritisch, da wir die Datei ohnehin nur speichern, um sie in DBF zu konvertieren. Nachdem alle Einstellungen abgeschlossen sind, klicken Sie auf die Schaltfläche "Speichern" und schließen Sie das Excel-Fenster.
  3. Starten Sie das Microsoft Access-Programm. Gehen Sie zur Registerkarte "Datei", wenn es in einem anderen Tab geöffnet wurde. Klicken Sie auf den Menüpunkt "Offen", befindet sich auf der linken Seite des Fensters.
  4. Das Fenster zum Öffnen der Datei wird geöffnet. Wir gehen in das Verzeichnis, in dem wir die Datei in einem der Excel-Formate gespeichert haben. Damit es im Fenster angezeigt wird, schieben Sie den Dateiformatschalter auf Position „Excel-Arbeitsmappe (*.xlsx)“ oder « Microsoft Excel(*.xls)", je nachdem, in welchem ​​davon das Buch gespeichert wurde. Nachdem der Name der benötigten Datei angezeigt wird, wählen Sie diese aus und klicken Sie auf die Schaltfläche "Offen".
  5. Es öffnet sich ein Fenster „Link zur Tabellenkalkulation“. Es ermöglicht Ihnen, Daten so korrekt wie möglich aus einer Excel-Datei nach Microsoft Access zu verschieben. Wir müssen die Excel-Tabelle auswählen, aus der wir Daten importieren möchten. Tatsache ist, dass Sie, selbst wenn die Excel-Datei Informationen auf mehreren Blättern enthielt, diese nur separat in Access importieren und dementsprechend dann in separate DBF-Dateien konvertieren können.

    Es ist auch möglich, Informationen aus einzelnen Bereichen in Blätter zu importieren. In unserem Fall ist dies jedoch nicht notwendig. Stellen Sie den Schalter auf Position "Blätter", und wählen Sie dann das Blatt aus, aus dem wir die Daten entnehmen möchten. Die Richtigkeit der Informationsanzeige kann am unteren Rand des Fensters überprüft werden. Wenn alles zufriedenstellend ist, drücken Sie die Taste. "Weiter".

  6. Wenn Ihre Tabelle im nächsten Fenster Überschriften enthält, müssen Sie das Kontrollkästchen daneben aktivieren „Die erste Zeile enthält die Spaltenüberschriften“. Klicken Sie dann auf den Button "Weiter".
  7. Im neuen Fenster „Tabellenlink“ können Sie optional den Namen des verknüpften Elements ändern. Klicken Sie dann auf den Button "Bereit".
  8. Anschließend öffnet sich ein Dialogfenster, das anzeigt, dass die Verknüpfung der Tabelle mit der Excel-Datei abgeschlossen ist. Klicken Sie auf die Schaltfläche "OK".
  9. Auf der linken Seite der Programmoberfläche erscheint der Name der Tabelle, die wir ihr im letzten Fenster zugewiesen haben. Doppelklicken Sie mit der linken Maustaste darauf.
  10. Anschließend wird die Tabelle im Fenster angezeigt. Wechsel zur Registerkarte "Externe Daten".
  11. Auf dem Band in der Toolbox "Export" Klicken Sie auf die Inschrift "Zusätzlich". Wählen Sie in der sich öffnenden Liste das Element aus „dBase-Datei“.
  12. Das Fenster zum Exportieren in das DBF-Format wird geöffnet. Auf dem Feld "Dateiname" Sie können den Dateispeicherort und seinen Namen angeben, wenn die Standardspeicherorte aus irgendeinem Grund nicht für Sie geeignet sind.

    Auf dem Feld "Datei Format" Wählen Sie einen von drei DBF-Formattypen aus:

    • dBASE III(Default);
    • dBASE IV;
    • dBASE 5.

    Dabei ist zu berücksichtigen, dass je moderner das Format (je höher die Seriennummer), desto mehr Möglichkeiten zur Verarbeitung der darin enthaltenen Daten bestehen. Das heißt, es besteht eine höhere Wahrscheinlichkeit, dass alle Tabellendaten in der Datei gespeichert werden. Aber gleichzeitig ist die Wahrscheinlichkeit geringer, dass das Programm, in das Sie in Zukunft importieren werden, nicht funktioniert dbf-Datei, wird mit diesem Typ kompatibel sein.

    Nachdem alle Einstellungen vorgenommen wurden, klicken Sie auf die Schaltfläche "OK".

  13. Wenn danach eine Fehlermeldung erscheint, versuchen Sie, die Daten in einem anderen DBF-Format zu exportieren. Wenn alles gut gelaufen ist, erscheint ein Fenster, das Sie darüber informiert, dass der Export erfolgreich war. Klicken Sie auf die Schaltfläche "Schließen".

Die erstellte Datei im dBase-Format befindet sich in dem Verzeichnis, das im Exportfenster angegeben wurde. Anschließend können Sie beliebige Manipulationen daran vornehmen, einschließlich des Imports in andere Programme.

Wie Sie sehen, verfügen moderne Excel-Versionen nicht über die Möglichkeit, Dateien mit integrierten Tools im DBF-Format zu speichern. Dieses Verfahren kann mit anderen Programmen und Add-ons durchgeführt werden. Es ist zu beachten, dass die funktionellste Konvertierungsmethode die Verwendung des WhiteTown Converters Pack ist. Leider ist die Anzahl der kostenlosen Konvertierungen darin begrenzt. Mit dem XlsToDBF-Add-on können Sie die Konvertierung völlig kostenlos durchführen, der Vorgang ist jedoch viel komplizierter. Darüber hinaus ist die Funktionalität dieser Option sehr eingeschränkt.

Die „goldene Mitte“ ist die Methode mit dem Access-Programm. Wie Excel ist es eine Entwicklung von Microsoft und daher Anwendung Dritter Du kannst ihn nicht mehr anrufen. Außerdem diese Option ermöglicht Ihnen die Konvertierung Excel-Datei in verschiedene Arten von dBase-Formaten. Obwohl Access in diesem Indikator dem WhiteTown-Programm immer noch unterlegen ist.

gastroguru 2017