Ich habe mir das Beispiel von Alaska genommen um dbf in excel zu übertragen. Alles ohne zusätzliche Bibliothek.
Auch Umlaute passen. Die Datei lässt sich mit Excel öffnen.
Funktioniert auch sehr gut so lange ich weniger als ca. 200 Zeilen habe. Bei mehr friert das Programm ein.
Windows 11, genügend freier Speicher, xBase++ Version 2.0, Office 2019
An den Daten selbst kann es aber nicht liegen, da das Programm nicht immer an der selben Stelle abbricht.
Muss man hier was spezielles beachten damit xBase++ richtig arbeitet?
Code: Alles auswählen
oExcel := CreateObject("Excel.Application")
oExcel:DisplayAlerts := .F.
oExcel:visible := .T.
oBook := oExcel:workbooks:Add()
oSheet := oBook:ActiveSheet
oSheet:PageSetup:Orientation := xlLandscape
select 1
USE "dstati06.DBF" EXCLUSIVE ALIAS dstati
DbGoTop()
nRow := 1
// Überschriften
oSheet:Cells(nRow,1):Value := "DA_2023"
oSheet:Cells(nRow,2):Value := "Gesamtumsatz"
oSheet:Cells(nRow,3):Value := "Lieferadresse"
oSheet:Cells(nRow,4):Value := "Anlage"
oSheet:Cells(nRow,5):Value := "Lieferfirma"
oSheet:Cells(nRow,6):Value := "Ort"
oSheet:Cells(nRow,7):Value := "Firmenname"
oSheet:Columns( 1 ):NumberFormat := "0.00"
oSheet:Columns( 2 ):NumberFormat := "0.00"
nRow := 2
DO WHILE !EOF()
oSheet:Cells(nRow,1):Value := dstati->DA_2023
oSheet:Cells(nRow,2):Value := dstati->DA_GESAMT
oSheet:Cells(nRow,3):Value := dstati->DA_LIEFADR
oSheet:Cells(nRow,4):Value := dstati->DA_ANLAGE
oSheet:Cells(nRow,5):Value := dstati->DA_LFIRMA
oSheet:Cells(nRow,6):Value := dstati->DA_ORT
oSheet:Cells(nRow,7):Value := dstati->DA_NAME
nRow++
nCounter++
DbSkip(1)
if nCounter > 200
exit
endif
ENDDO
use
oSheet:Columns( 1 ):AutoFit()
oBook:SaveAs("d:\temp\MyExcel.xls",xlWorkbookNormal)
oExcel:Quit()
oExcel:Destroy()
Bernd