Seite 1 von 1

Excel-Format beim Datenexport [erledigt]

Verfasst: Do, 18. Nov 2021 17:54
von peternmb
Hallo,

bisher erstelle ich für den Datenexport eine Datei im Excel 97-2003-Format (Endung xls).
Kann ich diese Datei ohne größere Codeänderungen auch im neueren xlsx-Format erstellen?

Mein Standard-Code sieht bisher etwa so aus:

Code: Alles auswählen

LOCAL oExcel, oBook, xls_datei
//
xls_datei:=XbpFileDialog():new():create():saveas(Hauptpfad+"\Export\TEST.xls")   
//
if !empty(xls_datei)
   oExcel := CreateObject("Excel.Application")
   IF Empty( oExcel )
     MsgBox( "Um diese Funktion zu nutzen muss auf Ihrem Rechner Excel installiert sein!","Problem" )
     RETURN
   ENDIF
   //
   oExcel:DisplayAlerts := .F.
   oExcel:visible       := .F.
   oBook  := oExcel:workbooks:Open(Hauptpfad+"\Daten\TEST.dbf")
   //
   oSheet := oBook:ActiveSheet
   oSheet:columns(5):autoFit()
   oSheet:columns(6):autoFit()
   //
   oBook:SaveAs( xls_datei , xlWorkbookNormal )
   //
else

Re: Excel-Format beim Datenexport

Verfasst: Do, 18. Nov 2021 20:21
von Marcus Herz
Der Parameter beim saveas bestimmt das format. Musst googeln, hab das erst morgen zur hand

Re: Excel-Format beim Datenexport

Verfasst: Do, 18. Nov 2021 20:36
von HaPe

Code: Alles auswählen

*-- XlFileFormat
#DEFINE xlSYLK                                                                 2
#DEFINE xlWKS                                                                  4
#DEFINE xlWK1                                                                  5
#DEFINE xlCSV                                                                  6
#DEFINE xlDBF2                                                                 7
#DEFINE xlDBF3                                                                 8
#DEFINE xlDIF                                                                  9
#DEFINE xlCurrentPlatformText                                                  0xFFFFEFC2
#DEFINE xlWorkbookNormal                                                       0xFFFFEFD1
#DEFINE xlDBF4                                                                 11
#DEFINE xlWJ2WD1                                                               14
#DEFINE xlWK3                                                                  15
#DEFINE xlExcel2                                                               16
#DEFINE xlTemplate                                                             17
#DEFINE xlAddIn                                                                18
#DEFINE xlTextMac                                                              19
#DEFINE xlTextWindows                                                          20
#DEFINE xlTextMSDOS                                                            21
#DEFINE xlCSVMac                                                               22
#DEFINE xlCSVWindows                                                           23
#DEFINE xlCSVMSDOS                                                             24
#DEFINE xlIntlMacro                                                            25
#DEFINE xlIntlAddIn                                                            26
#DEFINE xlExcel2FarEast                                                        27
#DEFINE xlWorks2FarEast                                                        28
#DEFINE xlExcel3                                                               29
#DEFINE xlWK1FMT                                                               30
#DEFINE xlWK1ALL                                                               31
#DEFINE xlWK3FM3                                                               32
#DEFINE xlExcel4                                                               33
#DEFINE xlWQ1                                                                  34
#DEFINE xlExcel4Workbook                                                       35
#DEFINE xlTextPrinter                                                          36
#DEFINE xlWK4                                                                  38
#DEFINE xlExcel5                                                               39
#DEFINE xlExcel7                                                               39
#DEFINE xlWJ3                                                                  40
#DEFINE xlWJ3FJ3                                                               41
#DEFINE xlExcel9795                                                            43
#DEFINE xlHtml                                                                 44
#DEFINE xlWebArchive                                                           45
#DEFINE xlXMLSpreadsheet                                                       46
#DEFINE xlExcel12                                                              50
#DEFINE xlOpenXMLWorkbook                                                      51
#DEFINE xlWorkbookDefault                                                      51
#DEFINE xlOpenXMLWorkbookMacroEnabled                                          52
#DEFINE xlOpenXMLTemplateMacroEnabled                                          53
#DEFINE xlOpenXMLTemplate                                                      54
#DEFINE xlOpenXMLAddIn                                                         55
#DEFINE xlExcel8                                                               56
#DEFINE xlOpenDocumentSpreadsheet                                              60

Re: Excel-Format beim Datenexport

Verfasst: Do, 18. Nov 2021 22:29
von BJelinek
Hallo
ich mach das so.

Code: Alles auswählen

//
if BFBExcelVersion(oExcel) >= 2010
  oBook:SaveAs(cXLSDatei+"x",xlOpenXMLWorkbook)
else
  oBook:SaveAs(cXLSDatei,xlWorkbookNormal)
endif
//




FUNC BFBExcelVersion(oExcel)
local nVersion := 0
local XX
XX := oExcel:Application:Version()
if valtype(XX) = "C"
 XX := VAL(XX)
endif
if     XX = 8  ; nVersion := 97
elseif XX = 9  ; nVersion := 2000
elseif XX = 10 ; nVersion := 2002
elseif XX = 11 ; nVersion := 2003
elseif XX = 12 ; nVersion := 2007
elseif XX = 14 ; nVersion := 2010
elseif XX = 15 ; nVersion := 2013
elseif XX = 16 ; nVersion := 2016
elseif XX > 16 ; nVersion := 2999
endif
return nVersion


Re: Excel-Format beim Datenexport

Verfasst: Fr, 19. Nov 2021 14:01
von peternmb
Vielen Dank, funktioniert prima mit sehr wenig Aufwand :razz: