optimale Spaltenbreite in Excel [erledigt]

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Antworten
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

optimale Spaltenbreite in Excel [erledigt]

Beitrag 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
Zuletzt geändert von peternmb am Do, 18. Feb 2010 15:11, insgesamt 1-mal geändert.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: optimale Spaltenbreite in Excel

Beitrag von georg »

Hallo,


versuch es mal hiermit:

Code: Alles auswählen

oSheet:Columns(1):AutoFit()

Freundliche Grüsse,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: optimale Spaltenbreite in Excel

Beitrag 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"
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: optimale Spaltenbreite in Excel

Beitrag 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
Gruß
Hubert
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: optimale Spaltenbreite in Excel

Beitrag 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
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: optimale Spaltenbreite in Excel

Beitrag 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()
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: optimale Spaltenbreite in Excel

Beitrag 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.
Antworten