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)