ABAP2XLS

Excel-Dateien lassen sich ohne weiteres aus SAP heraus erzeugen. Es gibt die Möglichkeit, dies per OLE (Object Linking and Embedding) oder mittels DOI (Desktop Office Integration) tun. Diese beiden Methoden haben jedoch zwei große Nachteile:

  1. Die Anwendung/ Erstellung von Excel-Dateien ist recht kompliziert und aufwändig
  2. Dateien können nur Online, also im Dialog mit dem Anwender erzeugt werden. Die Erzeugung von Excel-Dateien im Hintergrund ist nicht möglich.

ABAP2XLS - Angry Birds

ABAP2XLS bildet die meisten Funktionen – und das sind sehr viele!! – mit eigenen Klassen und Methoden ab. Die Entwicklung wird von einer Gruppe sehr engagierter SAP-Programmierer stetig weiter geführt und verbessert.

Eine kurze Übersicht über die Funktionen und das Entwicklerteam gibt es im SCN – ABAP2XLS. Die Möglichkeiten sind wirklich fantastisch. Es können jede Menge Funktionen und Formatierungen vorgenommen werden.

Demo-Programm

Folgendes Demo-Programm zeigt, wie einfach es ist, eine Excel-Datei mithilfe von ABAP2XLS zu erzeugen:

REPORT  zdemo_excel1.

DATA: lo_excel                TYPE REF TO zcl_excel,
      lo_worksheet            TYPE REF TO zcl_excel_worksheet,
      lo_hyperlink            TYPE REF TO zcl_excel_hyperlink,
      column_dimension        TYPE REF TO zcl_excel_worksheet_columndime.

CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

START-OF-SELECTION.
  " Creates active sheet
  CREATE OBJECT lo_excel.

  " Get active sheet
  lo_worksheet = lo_excel->get_active_worksheet( ).
  lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ).
  lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ).
  lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
  lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ).
  lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ).

  column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
  column_dimension->set_width( ip_width = 11 ).

*** Create output
  lcl_output=>output( lo_excel ).

Die Umfangreiche Demo-Sammlung ist in einem eigenen Show-Center untergebracht, in dem der Quelltext als auch die Ausgabe angezeigt werden:

ABAP2XLS Democenter

Enno Wulff