mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 10:56:14 +08:00
58 lines
2.1 KiB
ABAP
58 lines
2.1 KiB
ABAP
*&---------------------------------------------------------------------*
|
|
*& Report ZDEMO_EXCEL43
|
|
*&
|
|
*&---------------------------------------------------------------------*
|
|
*&
|
|
*&
|
|
*&---------------------------------------------------------------------*
|
|
|
|
REPORT zdemo_excel43.
|
|
|
|
"
|
|
"Locally created Structure, which should be equal to the excels structure
|
|
"
|
|
TYPES: BEGIN OF lty_excel_s,
|
|
dummy TYPE dummy.
|
|
TYPES: END OF lty_excel_s.
|
|
|
|
DATA lt_tab TYPE TABLE OF lty_excel_s.
|
|
DATA: lt_filetable TYPE filetable,
|
|
ls_filetable TYPE file_table.
|
|
DATA lv_subrc TYPE i.
|
|
DATA: lo_excel TYPE REF TO zcl_excel,
|
|
lo_reader TYPE REF TO zif_excel_reader,
|
|
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
|
lo_salv TYPE REF TO cl_salv_table.
|
|
|
|
"
|
|
"Ask User to choose a path
|
|
"
|
|
cl_gui_frontend_services=>file_open_dialog( EXPORTING window_title = 'Excel selection'
|
|
file_filter = '*.xlsx'
|
|
multiselection = abap_false
|
|
CHANGING file_table = lt_filetable " Tabelle, die selektierte Dateien enthält
|
|
rc = lv_subrc
|
|
EXCEPTIONS file_open_dialog_failed = 1
|
|
cntl_error = 2
|
|
error_no_gui = 3
|
|
not_supported_by_gui = 4
|
|
OTHERS = 5 ).
|
|
IF sy-subrc <> 0.
|
|
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
|
|
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
|
|
ELSE.
|
|
CREATE OBJECT lo_reader TYPE zcl_excel_reader_2007.
|
|
LOOP AT lt_filetable INTO ls_filetable.
|
|
lo_excel = lo_reader->load_file( ls_filetable-filename ).
|
|
lo_worksheet = lo_excel->get_worksheet_by_index( iv_index = 1 ).
|
|
lo_worksheet->get_table( IMPORTING et_table = lt_tab ).
|
|
ENDLOOP.
|
|
ENDIF.
|
|
"
|
|
"Do the presentation stuff
|
|
"
|
|
|
|
cl_salv_table=>factory( IMPORTING r_salv_table = lo_salv
|
|
CHANGING t_table = lt_tab ).
|
|
lo_salv->display( ).
|