sap abap Import from excell to internal table that works 100%
*&---------------------------------------------------------------------*
*& Report ZTOEXCELL
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztoexcell.
DATA: it_files TYPE filetable.
DATA: lv_rc TYPE i.
DATA: lv_action TYPE i.
TYPES: begin of ty_data,
A type string,
B type string,
C type string,
D type string,
E type string,
F type string,
G type string,
H type string,
I type string,
K type string,
L type string,
M type string,
N type string,
O type string,
P type string,
end of ty_data.
*tabletype
TYPES: ty_it_itab type STANDARD TABLE OF ty_data WITH DEFAULT KEY.
*internal table
data: it_itab type ty_it_itab.
*file open dialog
cl_gui_frontend_services=>file_open_dialog( EXPORTING
file_filter = |xlsx (*.xlsx)\|*.xlsx\| { cl_gui_frontend_services=>filetype_all } |
CHANGING
file_table = it_files
rc = lv_rc
user_action = lv_action ).
IF lv_action = cl_gui_frontend_services=>action_ok.
IF lines( it_files ) > 0.
* read file und gui upload
DATA: lv_filesize TYPE w3param-cont_len,
lv_filetype TYPE w3param-cont_type,
it_bin_data TYPE w3mimetabtype.
cl_gui_frontend_services=>gui_upload( EXPORTING
filename = |{ it_files[ 1 ]-filename }|
filetype = 'BIN'
IMPORTING
filelength = lv_filesize
CHANGING
data_tab = it_bin_data ).
*solix - > xstring
data(lv_bin_data) = cl_bcs_convert=>solix_to_xstring( it_solix = it_bin_data ).
*create spreadsheet ref object
data(o_excel) = New cl_fdt_xl_spreadsheet( document_name = CONV #( it_files[ 1 ]-filename )
xdocument = lv_bin_data ).
*get first worksheet name
DATA: it_worksheet_names TYPE if_fdt_doc_spreadsheet=>t_worksheet_names.
o_excel->if_fdt_doc_spreadsheet~get_worksheet_names( IMPORTING worksheet_names = it_worksheet_names ).
if lines( it_worksheet_names ) > 0.
*first worksheet ref to itab
DATA(o_worksheet_itab) = o_excel->if_fdt_doc_spreadsheet~get_itab_from_worksheet( it_worksheet_names[ 1 ] ).
* ref to generic field symbol (excel data)
ASSIGN o_worksheet_itab->* to FIELD-SYMBOL(<worksheet>).
*move to table
MOVE-CORRESPONDING <worksheet> to it_itab.
WRITE: lines( it_itab ).
** output data GUI
cl_demo_output=>write_data( <worksheet> ).
DATA(lv_html) = cl_demo_output=>get( ).
cl_abap_browser=>show_html( EXPORTING
title = 'Excell worksheet'
html_string = lv_html
container = cl_gui_container=>default_screen ).
WRITE: Space.
endif.
ENDIF.
ENDIF.
Comments
Post a Comment