OLE2 Excel


Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Moderatoren: Jan, Steff

OLE2 Excel

Beitragvon dkast » 21.11.2017, 13:16

Hallo,
ich erstelle mir über die OLE2 Objekte eine Excel Datei mit 3 extra Tabellen (Also die links unten).

Ich schreibe meine ganzen Daten etwas schöner aufbereitet in die Einzellnen Tabellen.

Dabei sollen die Spaltenbreite automatisch angepasst werden über:

Code: Alles auswählen
  CALL METHOD OF
        go_column
        'Autofit'.


Im ersten Worksheet, also in der ersten Tabelle funktioniert das auch einwandfrei. Ab der 2. plötzlich nicht mehr und ich weiß nicht warum.

Verkürzter Programmablauf:
-> Excel erstellen
-> Worksheet hinzufügen (die 3 Tabellen)
-> Daten in alle 3 Tabellen schreiben und aufbereiten (Hier auch der Autofit)
-> Abspeichern
-> Free Objects

Ich habe was OLE angeht bisher leider wenig Erfahrung und bin für jeden Vorschlag dankbar :)
dkast
ForumUser
 
Beiträge: 45
Registriert: 31.03.2017, 10:54
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: OLE2 Excel

Beitragvon Daniel » 21.11.2017, 19:45

Autofit wirkt nur auf die markierten Zellen.

Code: Alles auswählen
*       Gesamte Tabelle formatieren
        CALL METHOD OF excel 'Columns' = column.
        CALL METHOD OF column 'Autofit'.
        FREE OBJECT column.

*       Teilweise formatierung
        CALL METHOD OF excel 'Range' = cell EXPORTING #1 = 'A1:IV65536'.
        CALL METHOD OF cell 'Select'.
        CALL METHOD OF excel 'Selection' = cell.
        GET PROPERTY OF cell 'Columns' = column.
        CALL METHOD OF column 'Autofit'.
*       Markierung nicht stehen lassen
        CALL METHOD OF excel 'Range' = cell EXPORTING #1 = 'A1'.
        CALL METHOD OF cell 'Select'.
        FREE OBJECT cell.
        FREE OBJECT column.

 
Daniel
Specialist
 
Beiträge: 209
Registriert: 10.09.2003, 13:20
Wohnort: Bielefeld
Dank erhalten: 15 mal

Re: OLE2 Excel

Beitragvon dkast » 29.11.2017, 10:51

Daniel hat geschrieben:Autofit wirkt nur auf die markierten Zellen.

Code: Alles auswählen
*       Gesamte Tabelle formatieren
        CALL METHOD OF excel 'Columns' = column.
        CALL METHOD OF column 'Autofit'.
        FREE OBJECT column.

*       Teilweise formatierung
        CALL METHOD OF excel 'Range' = cell EXPORTING #1 = 'A1:IV65536'.
        CALL METHOD OF cell 'Select'.
        CALL METHOD OF excel 'Selection' = cell.
        GET PROPERTY OF cell 'Columns' = column.
        CALL METHOD OF column 'Autofit'.
*       Markierung nicht stehen lassen
        CALL METHOD OF excel 'Range' = cell EXPORTING #1 = 'A1'.
        CALL METHOD OF cell 'Select'.
        FREE OBJECT cell.
        FREE OBJECT column.

 


Hallo,
danke schon mal aber wenn ich die Zeilen
Code: Alles auswählen
  CALL METHOD OF go_application 'Columns' = go_column.
       CALL METHOD OF go_column 'Autofit'.

vor jedem erstellen meienr Tabellen ausführe dann passiert trotzdem nichts. Muss das Objekt erst ncoh mit Free entschäft werden?
dkast
ForumUser
 
Beiträge: 45
Registriert: 31.03.2017, 10:54
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: OLE2 Excel

Beitragvon Daniel » 29.11.2017, 10:59

Ja. Erst der Free überträgt die Anweisungen.
Daniel
Specialist
 
Beiträge: 209
Registriert: 10.09.2003, 13:20
Wohnort: Bielefeld
Dank erhalten: 15 mal

Re: OLE2 Excel

Beitragvon black_adept » 29.11.2017, 13:22

Wchselst du auch vor jedem Autofit bzw. der Range-Definition das aktive Tabellenblatt?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 2727
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 398 mal
Ich bin: Freiberufler/in

Re: OLE2 Excel

Beitragvon Daniel » 29.11.2017, 13:50

Nein, das wähle ich nur wenn es erforderlich ist aus.
Ansonsten bleibt das ja stehen.
Daniel
Specialist
 
Beiträge: 209
Registriert: 10.09.2003, 13:20
Wohnort: Bielefeld
Dank erhalten: 15 mal

Re: OLE2 Excel

Beitragvon dkast » 06.12.2017, 14:42

black_adept hat geschrieben:Wchselst du auch vor jedem Autofit bzw. der Range-Definition das aktive Tabellenblatt?

Bringt auch nichts. Hättest du vielleicht ein kurzes unaufwändiges Beispiel für mich mit einer Excel-Datei mit 2 oder mehreren Tabellen bei denen der Autofit greift.
dkast
ForumUser
 
Beiträge: 45
Registriert: 31.03.2017, 10:54
Dank erhalten: 0 mal
Ich bin: Entwickler/in


Zurück zu ABAP® Core

  Aktuelle Beiträge   
DSGVO in SAP umsetzen
vor 39 Minuten von ralf.wenzel 0 Antw.
Berechtigungsprüfung Dialog- vs. RFC-User im Single Sign On
vor 2 Stunden von sapdepp 0 Antw.
Reporttransaktion für andere Mitarbeiter zugänglich machen
vor 5 Stunden von Tron 1 Antw.
Materialkalkulation
vor 8 Stunden von erp-bt 1 Antw.
gelöst Barcodes in Warenbewegungen & Belegen
vor 7 Stunden von marc.braun 1 Antw.

  Ähnliche Beiträge beta
OLE2-->Excel
26.04.2005, 19:32 von Besi 3 Antw.
OLE2 mit excel makro
25.07.2007, 13:39 von matthes 0 Antw.
Excel Makro aufrufen per OLE2
06.06.2008, 11:04 von reinhold 6 Antw.
OLE2-Excel Autofilter deaktivieren
15.07.2011, 10:58 von Ferum 1 Antw.
OLE2-Zugriff auf EXCEL: Methoden und Properties
13.03.2007, 09:10 von matthes 6 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!