excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Wolfgang_B »

Hi,
ich bräuchte mal einen Tipp, wie man mit xBase-Mitteln eine Excel Datei in eine CSV Datei konvertiert, oder auch -> Wie könnte man Excel Daten direkt in DBF laden?
Zuletzt geändert von Wolfgang_B am Mi, 04. Aug 2021 15:59, insgesamt 1-mal geändert.
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF

Beitrag von Wolfgang Ciriack »

Hallo,
das einfachste ist über ein ActiveX Objekt:

Code: Alles auswählen

#include "ActiveX.ch"
...
     if ValType(oExcel := CreateObject("Excel.Application")) == 'O'
         oWorkBook := oExcel:Workbooks:Open(<Dateiname_mit_Pfad>)
         aValues   := oWorkBook:WorkSheets(1):UsedRange:Value
         oWorkBook:Close(.F.)
         oExcel:Quit()
         oWorkBook:Destroy()
         oExcel:Destroy()
...
Dann hast du alle Werte der Exceldatei in dem Array aValues und kannst Sie weiterverarbeiten.
Viele Grüße
Wolfgang
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF

Beitrag von brandelh »

Excel selbst kann man zwar dazu bringen in eine DBF zu schreiben, aber sowohl die Spaltenüberschriften als auch die Inhalte der Zellen sind viel flexibler als eine DBF erlaubt.
Ich würde daher den vorgeschlagenen Weg über ein Array gehen und für jede Zelle auch eine Typprüfung vor dem Speichern machen.
So kann man auch genau die Struktur vorgeben (Feldlängen etc.)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF

Beitrag von Tom »

Man kann auf Excel-Tabellen auch via ODBCDBE zugreifen. Die Excel-Datei selbst legt man in einem Benutzer-DSN als Datenbank an - oder beim Konnektieren. Und das USE ... VIA ODBCDBE geht dann z.B. auf eine Range in einer Tabelle. Die erste Zeile wird als Tabellenheader interpretiert. Und danach hantiert man mit dem Bereich wie mit einer DBF.
Herzlich,
Tom
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF

Beitrag von Koverhage »

ich würde über ActiveX (wie Wolfgang vorgeschlagen hat) öffen, die Spaltenüberschriften ändern und dann als DBF Datei speicher.
Gruß
Klaus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF

Beitrag von Tom »

Ich nutze beide Varianten, hat alles seine Vor- und Nachteile. Man kann die Excel-Tabelle aber auch direkt als CSV speichern und dann parsen. Oder zig andere Wege gehen.
Herzlich,
Tom
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: excel datei in CSV konvertieren oder Excel in DBF

Beitrag von Wolfgang_B »

ich habe den Code von Wolfgang implementiert. Läuft bestens!! Vielen Dank!

Auch für die sonstigen Tipps vielen Dank!
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 483
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 11 Mal

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von azzo »

Hallo Freunde,
man kann auch die xlsx-Datei in zip umbenennen und dann auf die xml Dateien zugreifen.
LG
Otto

Bild
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Jan »

Hallo Otto,

ich bin zwar nicht Dein Freund. Aber Deine Idee ist schon absolut interessant. Ein Gedanke, der sowas von abseits aller normaler Gedankengänge ist.

Wobei das natürlich dennoch komplex ist, denn die zip ist ja nicht eine einzelne große XML die man einfach mal eben so aufbröseln könnte. Und so wirklich einfach geht es ohnehin nur bei xlsx, die nicht noch intern verschachtelt sind oder mit Feldverknüpfungen etc. arbeiten. Aber es ist halt och ein Weg ohne Zusatzbibliotheken, installiertes Excel, oder ähnliche Tricks mit reinen Xbase++-Bordmitteln auf die Daten zugreifen zu können.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Koverhage »

Was hat das überhaupt mit dem Thema zu tun ?
Gruß
Klaus
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Jan »

Klaus,

Otto zeigt auf wie man eine xlsx direkt auslesen kann, ohne darauf per ActiveX zugreifen zu müssen (was halt eine Excel-Installation auf dem Rechern erfordert) oder eine externe Excel-Bibliothek. Die Datei ist schließlich eine gezippte Ansammlung von XML und Konfigurationen, und die kann man dann halt mit Xbase++-XML-Funktionen auslesen.

Otto hat ja auch einen Screenshot der XML mitgeliefert (mit welchem Editor er die auch immer geöffnet hat).

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Koverhage »

Jan,
ist mir trotzdem zu hoch Warum sollte ich eine xlsx Datei Zip umbenennen.
Wenn ich eine xlsx Datei habe und die in zip umbenenne bekomme ich eine xml Datei ? Super Tool.

Aber lassen wir das, ist ja als erledigt gekennzeichnet.
Gruß
Klaus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Tom »

XLSX ist eine ZIP-Datei, sie heißt nur nicht so, Klaus. Sie ordnet - wie eine ZIP-Datei, die mehrere Dateien enthält - die Worksheets und Daten als XML-Dateien in einer Ordnerstruktur an. Wenn man also wieder mit einem De-Zipper entkomprimiert, erhält man die einzelnen eingebetteten Daten als Dateistruktur. Das ist schon lässig, und wenn man die Struktur versteht, kann man damit elegant arbeiten, ohne Excel selbst oder z.B. die ODBCDBE nutzen zu müssen. Man muss sich nur in den Aufbau einfummeln.
Herzlich,
Tom
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Wolfgang_B »

interessant, was in den .XML Files alles im Klartext drinsteht ...
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Martin Altmann »

Das Prinzip ist bei den anderen neueren Officedateien genau so (docx, pptx) - nur falls es jemand noch nicht wissen sollte.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: excel datei in CSV konvertieren oder Excel in DBF [erledigt]

Beitrag von Koverhage »

Danke für die Aufklärung
Gruß
Klaus
Antworten