deutschsprachige FoxPro User Group
Forum View
Home
  
  Mit ODBC auf Excel-Tabellen- #3680 in section [119387]
Sec: (25) MS-Visual FoxPro 8.0
Von: Hans-Peter Grözinger
An: Heiko Zimmer
Am/Um: 20.09.2004 13:06:02 gelesen

Hallo Heiko !

 
 
Heißt denn das auch, daß in _einer_ Spalte eine unterschiedliche Anzahl von Nachkommastellen vorkommen?
ja, so isses.

Wie sollte sich dann die DBF-Tabelle verhalten?
So viele Nachkomma-Stellen speichern wie die Zeile/n mit dem meisten Nachkomma-Stellen?

 
 
Andere Möglichkeit: Speicher in Excel doch mal die Daten als DBF ab, vielleicht funktioniert das viel besser (geht natürlich auch per OLE).
In eine DBF speichern, wäre auch noch eine Möglichkeit, aber mein Auftraggeber verlangt das Einlesen ohne Umwege und ohne Konvertierung in andere Datenformate.
Wie meinst Du das mit OLE ?

Du öffnest die Excel-Tabelle per OLE-Automation in Excel und speicherts diese nach zb. dBASE IV ab.
 PROCEDURE IMPORTXLS 
*******************

*-- Instanz von Excel erzeugen und keine Warnmeldungen anzeigen
oExcel = CREATEOBJECT( "Excel.Application" )
oExcel.DisplayAlerts = .F.

*-- Pfad setzen und ins Importverzeichnis wechseln
lcPath = 'C:\TMP'
CD &lcPath

*-- Alle Excel-Tabellen in diesem Verzeichnis bestimmen
lnFiles = ADIR( laFiles, "*.XLS" )

*-- Schleife über alle gefundenen Dateien
FOR lnCount = 1 TO lnFiles

*-- Meldung anzeigen und Excel-Tabelle in DBF-Tabelle umwandeln
SET MESSAGE TO "Datei " + laFiles[lnCount, 1] + " (" + ALLTRIM( STR( lnCount ) ) + " von " + ALLTRIM( STR( lnFiles ) ) + ") wird als DBF gespeichert"
lcDBFFileName = XLS2DBF( laFiles[lnCount, 1], lcPath )

ENDFOR

*-- Excel schließen und Objekt wieder freigeben
oXLS = oExcel.QUIT()
RELEASE oExcel

*-- Meldung löschen
SET MESSAGE TO

RETURN


FUNCTION XLS2DBF
****************

PARAMETERS tcXLSFileName, tcPath

LOCAL lcDBFFileName, oXLS

*-- Dateinamen für DBF-Tabelle erzeugen
lcDBFFileName = STRTRAN( tcXLSFileName, ".XLS", ".DBF" )

*-- Vorhandene Tabelle öffnen
oExcel.Workbooks.OPEN( tcPath + "\" + tcXLSFileName )

*-- Zelle A1 aktivieren, damit die komplette Datei als DBF gespeichert werden kann.
oExcel.RANGE("A1").SELECT

*-- Tabelle speichern im DBF-Format (FileFormat = 11)
*-- SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru, TextCodePage, TextVisualLayout)
oXLS = oExcel.ActiveWorkbook.SAVEAS( tcPath + "\" + lcDBFFileName, 11 )

*-- Alle Tabellen wieder schließen
oXLS = oExcel.Workbooks.CLOSE

*-- DBF-Dateinamen zurück
RETURN( lcDBFFileName )

--
Hans-Peter



Heiko Zimmer   16.09.2004 14:04
Thomas Geissler  16.09.2004 16:31
Heiko Zimmer  17.09.2004 07:15
Alfred Bechtel  17.09.2004 12:52
Heiko Zimmer  17.09.2004 12:59
Alfred Bechtel  17.09.2004 16:23
Heiko Zimmer  20.09.2004 07:18
Alfred Bechtel  20.09.2004 10:13
Heiko Zimmer  20.09.2004 11:24
Hans-Peter Grözinger  20.09.2004 11:45
Heiko Zimmer  20.09.2004 11:59
Hans-Peter Grözinger  20.09.2004 13:06
Heiko Zimmer  20.09.2004 13:17
Hans-Peter Grözinger  20.09.2004 13:21
Heiko Zimmer  20.09.2004 13:34
Harro Schippan  20.09.2004 14:49
Hans-Peter Grözinger  20.09.2004 15:57
Harro Schippan  20.09.2004 16:33
Harro Schippan  20.09.2004 16:45
Hans-Peter Grözinger  20.09.2004 17:10
Claudia Przioda  21.09.2004 12:42
Hans-Peter Grözinger  21.09.2004 13:53
Claudia Przioda  22.09.2004 13:05
Hans-Peter Grözinger  22.09.2004 13:19
Jan Horstmann  21.09.2004 16:17
Heiko Zimmer  22.09.2004 11:50
Jan Horstmann  22.09.2004 14:36
moroivan  18.09.2004 12:39
Heiko Zimmer  20.09.2004 07:22
  
zurück zum Forum