Export DBF -> CSV
Moderator: Moderatoren
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Export DBF -> CSV
Hallo miteinander,
Microsoft stellt mir mal wieder eine neue Aufgabe. Bisher konnte ich mit Office 2010 im Rahmen von Serienbriefen DBF-Dateien als Datenquelle einlesen. Jetzt musste ich auf das neue Office 2016 umstellen und da werden DBF-Datenquellen nicht mehr unterstützt. Habt Ihr eine Idee, wie ich das am einfachsten hinbekomme ?
Wie erreiche ich am einfachsten ein Export in eine CSV-Datei, in der die Feldnamen als erste Zeile mit eingebunden sind ?
Ein "einfaches" Export in eine Txt-Datei ereiche ich mit "copy all to test_1.txt delimited", jedoch fehlen mir für ein erfolgreiches Einlesen in Word die Feldnamen. Gibt es hier eine einfache Lösung ?
Besten Dank für eure Tipps.
Lutz
P.S.: Natürlich kann ich die DBF-Tabelle mit Excel öffnen und als Excel-Datei speichern und dann in Word die Excel-Tabelle als Datenquelle einlesen. Aber das sind - gerade wenn man etwas unter Zeitdruck steht - ein paar Schritte zuviell, bei denen dann leicht Fehler gemacht werden können.
Microsoft stellt mir mal wieder eine neue Aufgabe. Bisher konnte ich mit Office 2010 im Rahmen von Serienbriefen DBF-Dateien als Datenquelle einlesen. Jetzt musste ich auf das neue Office 2016 umstellen und da werden DBF-Datenquellen nicht mehr unterstützt. Habt Ihr eine Idee, wie ich das am einfachsten hinbekomme ?
Wie erreiche ich am einfachsten ein Export in eine CSV-Datei, in der die Feldnamen als erste Zeile mit eingebunden sind ?
Ein "einfaches" Export in eine Txt-Datei ereiche ich mit "copy all to test_1.txt delimited", jedoch fehlen mir für ein erfolgreiches Einlesen in Word die Feldnamen. Gibt es hier eine einfache Lösung ?
Besten Dank für eure Tipps.
Lutz
P.S.: Natürlich kann ich die DBF-Tabelle mit Excel öffnen und als Excel-Datei speichern und dann in Word die Excel-Tabelle als Datenquelle einlesen. Aber das sind - gerade wenn man etwas unter Zeitdruck steht - ein paar Schritte zuviell, bei denen dann leicht Fehler gemacht werden können.
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Export DBF -> CSV
Servus Lutz,Lutz Rübe hat geschrieben:Wie erreiche ich am einfachsten ein Export in eine CSV-Datei, in der die Feldnamen als erste Zeile mit eingebunden sind ?
nach dem Export die Datei mit fopen öffnen, mit fread() alles einlesen, dann einfach Datei neu mit Feldnamen am Anfang schreiben.
Ist max. ein 10-Zeiler...
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Export DBF -> CSV
hast du es mit Excel 2016 ausprobiert ? wenn es damit geht müsste es auch mit Word gehen.Lutz Rübe hat geschrieben:Jetzt musste ich auf das neue Office 2016 umstellen und da werden DBF-Datenquellen nicht mehr unterstützt.
...
P.S.: Natürlich kann ich die DBF-Tabelle mit Excel öffnen und als Excel-Datei speichern und dann in Word die Excel-Tabelle als Datenquelle einlesen.
IMHO wird seit Office 2011 der ODBC Treiber nicht "default" installiert über den der Zugriff auf DBF Dateien geht.
wenn er nun die (temporäre) DBF "frisst" dann benenne die doch mal um in *.XLS und versuche es damit.
eine CSV Datei, mit Header, "könntest" du dir auch selbst basteln ... aber warum nicht gleich "richtig" !
In Outlook hast du "Contact" und da sollten die Daten für ein Mailmerge vorliegen.
gruss by OHR
Jimmy
Jimmy
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
Hallo Werner,
ich suche eine einfachere Lösung - so wie sie Jimmy angedeutet hat. Aber wenn diese nicht funktioniert wird mir nichts anderes übrigbleiben.
Hallo Jimmy,
eigenartigerweise kann ich mit Excel 2016 die dbf-Dateien öffnen, aber nicht mit Word 2016. Ist vielleicht nur eine Konfigurationssache in Word, denn wenn es mit Excel geht, warum nicht mit Word ?? Deine Idee mit umbenennen der dbf in eine xls Datei funktioniert übrigens einwandfrei.
Da ich keine Adressdateien verarbeiten will sondern adress-unabhängige Daten (Startkarten für Skat-Turniere), hilft mir der Hinweis auf Outlook auch nicht.
Vielen Dank erst mal für eure Ideen und Hinweise.
Gruß
Lutz
ich suche eine einfachere Lösung - so wie sie Jimmy angedeutet hat. Aber wenn diese nicht funktioniert wird mir nichts anderes übrigbleiben.
Hallo Jimmy,
eigenartigerweise kann ich mit Excel 2016 die dbf-Dateien öffnen, aber nicht mit Word 2016. Ist vielleicht nur eine Konfigurationssache in Word, denn wenn es mit Excel geht, warum nicht mit Word ?? Deine Idee mit umbenennen der dbf in eine xls Datei funktioniert übrigens einwandfrei.
Da ich keine Adressdateien verarbeiten will sondern adress-unabhängige Daten (Startkarten für Skat-Turniere), hilft mir der Hinweis auf Outlook auch nicht.
Vielen Dank erst mal für eure Ideen und Hinweise.
Gruß
Lutz
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Export DBF -> CSV
Servus Lutz,
Code: Alles auswählen
procedure main
local cText, cOK := "nicht", cFelder := ""
cls
use adresse.dbf
copy to test.txt deli
if .not. empty(cText := memoread("test.txt"))
aeval(dbstruct(), {|x|cFelder += x[1] + ","})
cText := left(cFelder, len(cFelder) -1) + chr(13) + chr(10) + cText
if memoWrit("test.txt", cText)
cOK := "alles"
endif
endif
dbCloseArea()
? cOK, "erfolgreich!"
wait
return
Zuletzt geändert von Werner_Bayern am Sa, 19. Dez 2015 16:51, insgesamt 1-mal geändert.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
ich drucke meine immer direkt in eine Datei, so kann man Anpassungen vornehmen und auch die Felder begrenzen
Gruß
Hubert
Hubert
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
Hallo Werner,
das ist ja fast wie Weihnachten.....
nachdem ich noch ein "SET CHARSET TO ANSI" am Anfang eingefügt habe, werden jetzt auch die Umlaute korrekt in die CSV-Datei übertragen. Lediglich der letzte Datensatz in der CSV-Datei ist von Word nicht lesbar, da er "nur" das Datei-Ende-Zeichen enthält.
Das Zeichen ist im Code hier nicht sichtbar. Es sieht in etwa aus wie in der Schriftart "Wingdings" die Nr. 126 ().
Aber sonst: passt alles wunderbar. Besten Dank....
und frohe Feiertage
Lutz
das ist ja fast wie Weihnachten.....
nachdem ich noch ein "SET CHARSET TO ANSI" am Anfang eingefügt habe, werden jetzt auch die Umlaute korrekt in die CSV-Datei übertragen. Lediglich der letzte Datensatz in der CSV-Datei ist von Word nicht lesbar, da er "nur" das Datei-Ende-Zeichen enthält.
Code: Alles auswählen
"v. Roos","Jörg","","Königstor 48","","34117","Kassel","","",20070221
"von Ulm","Hans-Joachim","H","Wilhelm-von-Capitaine Str. 6","","50858","Köln","","",20080218
"von der Heidt","Heinz","H","Fritz-Bechtold-Str. 14","","83278","Traunstein","","",20080218
Aber sonst: passt alles wunderbar. Besten Dank....
und frohe Feiertage
Lutz
-
- 1000 working lines a day
- Beiträge: 525
- Registriert: Mi, 01. Feb 2006 16:22
- Wohnort: 06618 Naumburg
Re: Export DBF -> CSV
Hallo,Lutz Rübe hat geschrieben:... Lediglich der letzte Datensatz in der CSV-Datei ist von Word nicht lesbar, da er "nur" das Datei-Ende-Zeichen enthält.
Das Zeichen ist im Code hier nicht sichtbar. Es sieht in etwa aus wie in der Schriftart "Wingdings" die Nr. 126 ().
Lutz
ich entferne bei selber erstellten Text/CSV-Dateien das Zeichen vor dem Verarbeiten mit einer kleinen Funktion:
Code: Alles auswählen
function leerweg(file)
ctxt := MemoRead(file)
ctxt=substr(ctxt,-(len(ctxt)-2))
memowrit( file,ctxt )
return .t.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
Man darf nicht memowrit() nutzen, da dieses genau das Zeichen immer wieder anfügt
http://www.xbaseforum.de/viewtopic.php? ... t=Str2Disk*
Str2Disk() löst das Problem endgültig (so ähnlich auch in den Tools)
http://www.xbaseforum.de/viewtopic.php? ... t=Str2Disk*
Str2Disk() löst das Problem endgültig (so ähnlich auch in den Tools)
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
nichts, das nutzt meine Funktion intern
Aber auch SET ALTERNATE TO ... erledigt Ihren Dienst
Aber auch SET ALTERNATE TO ... erledigt Ihren Dienst
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
Ich staune immer wieder. was für Bögen ihr da machen müsst, um etwas Simples zu erreichen.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Export DBF -> CSV
Bitte, gern geschehen.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Export DBF -> CSV
tja Herbert, einfach kann jeder.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
hm, die Frage ist eher, wie viel Aufwand notwendig wird, um etwas "Einfaches" zu erreichen.
Ich mache ja auch nicht nur einfache Dinge...
Ich mache ja auch nicht nur einfache Dinge...
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
Es gibt ja auch die Funktion strfile() aus den Tools, das ist auch einfach
Viele Grüße
Wolfgang
Wolfgang
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Re: Export DBF -> CSV
Vielen Dank an alle, =D> =D> =D>
mit Hilfe eurer Tips und Code-Schnipsel habe ich jetzt mein Programm gefunden, das eine CSV-Datei erstellt, die von Word als Quelldatei für meine "Serienbrieffunktion" verarbeitet werden kann. Ihr als Profis würdet aus meinem 29-Zeiler das ganze auf einen 10 Zeiler reduzieren und optimieren können, aber für meine Anforderungen ist diese Lösung vollkommen ausreichend.
Besten Dank noch mal an alle und einen guten Rutsch in's neue Jahr.
Lutz
P.S.: Falls Interesse besteht, kann ich auch gerne den Code hier noch veröffentlichen.
mit Hilfe eurer Tips und Code-Schnipsel habe ich jetzt mein Programm gefunden, das eine CSV-Datei erstellt, die von Word als Quelldatei für meine "Serienbrieffunktion" verarbeitet werden kann. Ihr als Profis würdet aus meinem 29-Zeiler das ganze auf einen 10 Zeiler reduzieren und optimieren können, aber für meine Anforderungen ist diese Lösung vollkommen ausreichend.
Besten Dank noch mal an alle und einen guten Rutsch in's neue Jahr.
Lutz
P.S.: Falls Interesse besteht, kann ich auch gerne den Code hier noch veröffentlichen.