Funktionsbaustein ALSM EXCEL TO INTERNAL TABLE
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
siehe Kategorie: TP Funktionsbausteine.
Mit diesem Funktionsbaustein ALSM_EXCEL_TO_INTERNAL_TABLE kann direkt der Inhalt einer Excel-Datei in eine interne Tabelle in einem Programm gelesen werden. Der Baustein arbeitet mit OLE.
Muster
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME =
I_BEGIN_COL =
I_BEGIN_ROW =
I_END_COL =
I_END_ROW =
TABLES
INTERN =
" EXCEPTIONS
" INCONSISTENT_PARAMETERS = 1
" UPLOAD_OLE = 2
" OTHERS = 3
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
Einschränkungen und Empfehlungen Funktionsbaustein
- Aus dem SAP-Hinweis 933420 ergibt sich eine Beschränkung der Verwendung des Funktionsbausteins auf 9999 Zeilen und auf 50 Zeichen pro Feld.
- Es wird empfohlen
- Kopieren Sie sich den Baustein in den Kundennamensraum.
- Verwenden Sie als Bezugstyp für den Tabellenparameter INTERN eine eigene Struktur, die die gleichen Komponenten wie die Originalstruktur ALSMEX_TABLINE besitzt. Durch Verwendung geeigneter Komponententypen können Sie die Einschränkungen auf 50 Zeichen pro Zelle behoben werden, in dem man z. B. in der typisierenden Struktur eine Länge von 8000 Zeichen vorgibt.
Excel-Quelle
Funktionsbausteinaufruf
Ergebnislliste Funktionsbaustein
Coding bei einem Beispiel
DATA: lt_file_table TYPE filetable,
lv_rc TYPE i,
lv_file TYPE string.
lv_filename TYPE rlgrap-filename.
lt_intern TYPE STANDARD TABLE OF alsmex_tabline,
ls_intern TYPE alsmex_tabline
lt_intern_zeilen TYPE STANDARD TABLE OF alsmex_tabline,
ls_intern_zeilen TYPE alsmex_tabline,
"Open-Dialog (F4)
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Datei auswählen'
file_filter = 'Excel (ab MS-Office 2007) (*.xlsx)|*.xlsx|Excel (vor MS-Office 2007) (*.xls)|*.xls'
initial_directory = 'C:\TEMP'
multiselection = ' '
CHANGING
file_table = lt_file_table
rc = lv_rc
EXCEPTIONS
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
READ TABLE lt_file_table INTO lv_file INDEX 1.
lv_filename = lv_file.
ENDIF.
IF NOT lv_filename IS INITIAL.
"Upload der Excel-Datei
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = lv_filename
i_begin_col = 1
i_begin_row = 1
i_end_col = 30
i_end_row = 56000
TABLES
intern = lt_intern
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
SORT lt_intern BY row "Zeile
col. "spalte.
lt_intern_zeilen = lt_intern.
DELETE ADJACENT DUPLICATES FROM lt_intern_zeilen COMPARING row.
"Schleife über alle Zeilen
LOOP AT lt_intern_zeilen INTO ls_intern_zeilen.
"Innerere Schleife über alle Spalten einer Zeile
LOOP AT lt_intern INTO ls_intern WHERE row = ls_intern_zeilen-row.
"Zuweisung der Excel-Werte an eine interne Struktur
ENDLOOP.
ENDLOOP.
OSS-Hinweis
Literatur
- Function Modules in ABAP: A Quick Reference Guide, von Tanmaya Gupta (EN), S. 423
- Common SAP R/3 Functions Manual, von William Lawlor, S. 237 (EN)





