Seite 1 von 1

optimale Spaltenbreite in Excel [erledigt]

Verfasst: Mi, 17. Feb 2010 15:33
von peternmb
Hallo, ich meine ich hätte das irgendwo im Forum schonmal gesehen, finde es allerdings nicht mehr.

Ich übernehme die Daten einer DBF-Datei nach Excel, allerdings passt bei einigen Spalten die Breite nicht.
Das Festlegen der Spaltenbreite sollte entweder automatisch gehen (autofit ?) oder, es wäre auch kein Problem, bei den "nichtpassenden" Spalten die richtige Breite manuell festzulegen.

Code: Alles auswählen

PROCEDURE main
  LOCAL oExcel, oBook
  LOCAL cDir  := CurDrive()+":\"+CurDir()
  //
  oExcel := CreateObject("Excel.Application")
  IF Empty( oExcel )
    MsgBox( "Excel ist nicht installiert!" )
    RETURN
  ENDIF
  //
  oExcel:DisplayAlerts := .F.
  oExcel:visible       := .T.
  oBook  := oExcel:workbooks:Open(cDir+"\Testdatei.dbf")
  //
  oBook:SaveAs( cDir+"\Testdatei.xls" , xlWorkbookNormal )
  //
  oExcel:Quit()
  oExcel:Destroy()
  //
RETURN

Re: optimale Spaltenbreite in Excel

Verfasst: Do, 18. Feb 2010 8:37
von georg
Hallo,


versuch es mal hiermit:

Code: Alles auswählen

oSheet:Columns(1):AutoFit()

Freundliche Grüsse,

Georg

Re: optimale Spaltenbreite in Excel

Verfasst: Do, 18. Feb 2010 12:19
von peternmb
georg hat geschrieben:versuch es mal hiermit:

Code: Alles auswählen

oSheet:Columns(1):AutoFit()
klappt leider nicht. Ich erhalte eine Fehlermeldung "unknown Variable Operation oSheet"

Re: optimale Spaltenbreite in Excel

Verfasst: Do, 18. Feb 2010 12:43
von brandelh
Hi,

oSheet referenziert im genannten Beispiel die aktuelle Tabelle im XLS (== oBook) und muss vorher natürlich gesetzt werden ... den genauen Befehl weiß ich jetzt aber nicht auswendig, suche nach "oSheet := oBook"
ich meine ActiveSheet() oder so ...

das habe ich gefunden ...
oSheet := oBook:workbooks:ActiveSheet

Re: optimale Spaltenbreite in Excel

Verfasst: Do, 18. Feb 2010 14:02
von peternmb
brandelh hat geschrieben: das habe ich gefunden ...
oSheet := oBook:workbooks:ActiveSheet
funktioniert leider auch nicht.Ich bekomme die Fehlermeldung
Object has no member with this name
Operation workbooks
wenn ich es so versuche:

Code: Alles auswählen

oSheet := oBook:ActiveSheet
kommt keine Fehlermeldung, die Tabelle geht in auf, zuckt ohne daß sich etwas verändert und Excel beendet sich

Re: optimale Spaltenbreite in Excel

Verfasst: Do, 18. Feb 2010 14:36
von Bertram Hansen
Hallo,

folgender Code funktioniert bei mir fehlerfrei:

Code: Alles auswählen

  ::oBook  := ::oExcel:workbooks:Add()
  ::oSheet := ::oBook:ActiveSheet
  ::oSheet:columns(1):autoFit()

Re: optimale Spaltenbreite in Excel

Verfasst: Do, 18. Feb 2010 15:11
von peternmb
Bertram Hansen hat geschrieben:Hallo,

folgender Code funktioniert bei mir fehlerfrei:

Code: Alles auswählen

  ::oBook  := ::oExcel:workbooks:Add()
  ::oSheet := ::oBook:ActiveSheet
  ::oSheet:columns(1):autoFit()
JA Danke, so funktioniert es.