mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 11:06:15 +08:00
Add extraction of data validations
This commit is contained in:
parent
8811d2c755
commit
4310280806
|
@ -106,8 +106,8 @@
|
|||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="ALTERNATE_ZIP" VERSION="1" LANGU="E" DESCRIPT="Alternate Zip Utility" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="OBJECT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="EXCEL2007" VERSION="1" LANGU="E" DESCRIPT="Excel 2007 data" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XSTRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="MT_REF_FORMULAE" VERSION="1" LANGU="E" DESCRIPT="Referenced formulae before resolving" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TYT_REF_FORMULAE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="SHARED_STRINGS" VERSION="1" LANGU="E" DESCRIPT="Table with Strings" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRINGTAB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="STYLES" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="T_STYLE_REFS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="SHARED_STRINGS" VERSION="1" LANGU="E" DESCRIPT="Table with Strings" EXPOSURE="1" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRINGTAB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="STYLES" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="T_STYLE_REFS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="ZIP" VERSION="1" LANGU="E" DESCRIPT="Zip Utility" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_ABAP_ZIP" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<interfaceMethod CLSNAME="ZCL_EXCEL_READER_2007" CPDNAME="ZIF_EXCEL_READER~CAN_READ_FILE">
|
||||
<source>method ZIF_EXCEL_READER~CAN_READ_FILE.
|
||||
|
@ -186,7 +186,7 @@ endmethod.</source>
|
|||
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
me->zif_excel_reader~gv_use_alternate_zip = iv_use_alternate_zip.
|
||||
me->zif_excel_reader~gv_use_alternate_zip = i_use_alternate_zip.
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
|
||||
|
@ -226,7 +226,7 @@ endmethod.</source>
|
|||
endmethod.</source>
|
||||
</interfaceMethod>
|
||||
<interfaceMethod CLSNAME="ZCL_EXCEL_READER_2007" CPDNAME="ZIF_EXCEL_READER~LOAD_FILE">
|
||||
<source>method ZIF_EXCEL_READER~LOAD_FILE.
|
||||
<source>METHOD zif_excel_reader~load_file.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
* 2do§1 decision whether to load from frontend or backend
|
||||
|
@ -255,126 +255,24 @@ endmethod.</source>
|
|||
* changes: passing new optional input parameter to private attribute
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
CONSTANTS: lcv_load_from_frontend TYPE char1 VALUE 'F',
|
||||
lcv_load_from_backend TYPE char1 VALUE 'B'.
|
||||
DATA: lv_excel_data TYPE xstring.
|
||||
|
||||
DATA: lv_load_from_source TYPE char1,
|
||||
|
||||
lv_filelength TYPE i,
|
||||
lt_binary_data TYPE STANDARD TABLE OF x255 WITH NON-UNIQUE DEFAULT KEY,
|
||||
ls_binary_data LIKE LINE OF lt_binary_data,
|
||||
* Background processing
|
||||
lv_max_length_line TYPE i,
|
||||
lv_actual_length_line TYPE i,
|
||||
|
||||
lv_errormessage TYPE string, " Can't pass '...'(abc) to exception-class
|
||||
lv_excel_data TYPE xstring. " Binary content of .xlsx file
|
||||
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos: 2do§1 Decision whether to load from frontend or backend
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
me->zif_excel_reader~gv_use_alternate_zip = iv_use_alternate_zip.
|
||||
*--------------------------------------------------------------------*
|
||||
me->zif_excel_reader~gv_use_alternate_zip = i_use_alternate_zip.
|
||||
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Autodecide on frontend or backend reading
|
||||
* Background-processing --> backend reading
|
||||
* Online-processing --> frontend reading
|
||||
*--------------------------------------------------------------------*
|
||||
IF sy-batch = abap_true.
|
||||
lv_load_from_source = lcv_load_from_backend.
|
||||
IF i_from_applserver = abap_true.
|
||||
lv_excel_data = me->read_from_applserver( i_filename = i_filename ).
|
||||
ELSE.
|
||||
lv_load_from_source = lcv_load_from_frontend.
|
||||
lv_excel_data = me->read_from_local_file( i_filename = i_filename ).
|
||||
ENDIF.
|
||||
|
||||
CASE lv_load_from_source.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Read from backend
|
||||
*--------------------------------------------------------------------*
|
||||
WHEN lcv_load_from_backend.
|
||||
DESCRIBE FIELD ls_binary_data LENGTH lv_max_length_line IN BYTE MODE.
|
||||
OPEN DATASET i_filename FOR INPUT IN BINARY MODE.
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'A problem occured when reading the file'(001).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
WHILE sy-subrc = 0.
|
||||
|
||||
READ DATASET i_filename INTO ls_binary_data MAXIMUM LENGTH lv_max_length_line ACTUAL LENGTH lv_actual_length_line.
|
||||
APPEND ls_binary_data TO lt_binary_data.
|
||||
lv_filelength = lv_filelength + lv_actual_length_line.
|
||||
|
||||
ENDWHILE.
|
||||
CLOSE DATASET i_filename.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Read from frontend
|
||||
*--------------------------------------------------------------------*
|
||||
WHEN lcv_load_from_frontend.
|
||||
cl_gui_frontend_services=>gui_upload( EXPORTING
|
||||
filename = i_filename
|
||||
filetype = 'BIN' " We are basically working with zipped directories --> force binary read
|
||||
IMPORTING
|
||||
filelength = lv_filelength
|
||||
CHANGING
|
||||
data_tab = lt_binary_data
|
||||
EXCEPTIONS
|
||||
file_open_error = 1
|
||||
file_read_error = 2
|
||||
no_batch = 3
|
||||
gui_refuse_filetransfer = 4
|
||||
invalid_type = 5
|
||||
no_authority = 6
|
||||
unknown_error = 7
|
||||
bad_data_format = 8
|
||||
header_not_allowed = 9
|
||||
separator_not_allowed = 10
|
||||
header_too_long = 11
|
||||
unknown_dp_error = 12
|
||||
access_denied = 13
|
||||
dp_out_of_memory = 14
|
||||
disk_full = 15
|
||||
dp_timeout = 16
|
||||
not_supported_by_gui = 17
|
||||
error_no_gui = 18
|
||||
OTHERS = 19 ).
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'A problem occured when reading the file'(001).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
|
||||
ENDCASE.
|
||||
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Binary data needs to be provided as XSTRING for further processing
|
||||
*--------------------------------------------------------------------*
|
||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||
EXPORTING
|
||||
input_length = lv_filelength
|
||||
IMPORTING
|
||||
buffer = lv_excel_data
|
||||
TABLES
|
||||
binary_tab = lt_binary_data.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
r_excel = me->zif_excel_reader~load( i_excel2007 = lv_excel_data
|
||||
iv_use_alternate_zip = iv_use_alternate_zip ).
|
||||
i_use_alternate_zip = i_use_alternate_zip ).
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
|
||||
endmethod.</source>
|
||||
ENDMETHOD.</source>
|
||||
</interfaceMethod>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="FILL_STRUCT_FROM_ATTRIBUTES" VERSION="1" LANGU="E" DESCRIPT="Fills structure fields based on XML node attributes" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="FILL_STRUCT_FROM_ATTRIBUTES" SCONAME="IP_ELEMENT" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_ELEMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_ELEMENT"/>
|
||||
|
@ -1600,7 +1498,7 @@ endmethod.</source>
|
|||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="IV_WORKBOOK_FULL_FILENAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="IO_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL"/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>METHOD load_workbook.
|
||||
<source>method LOAD_WORKBOOK.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
* 2do§1 Move macro-reading from zcl_excel_reader_xlsm to this class
|
||||
|
@ -2013,13 +1911,13 @@ endmethod.</source>
|
|||
|
||||
ENDWHILE.
|
||||
|
||||
ENDMETHOD.</source>
|
||||
endmethod.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Loads worksheet" EXPOSURE="1" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>METHOD load_worksheet.
|
||||
<source>method LOAD_WORKSHEET.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
* 2do§1 Header/footer
|
||||
|
@ -2134,6 +2032,7 @@ ENDMETHOD.</source>
|
|||
END OF lty_datavalidation.
|
||||
|
||||
|
||||
|
||||
CONSTANTS: lc_xml_attr_true TYPE string VALUE 'true',
|
||||
lc_xml_attr_true_int TYPE string VALUE '1',
|
||||
lc_rel_drawing TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
|
||||
|
@ -2227,7 +2126,6 @@ ENDMETHOD.</source>
|
|||
lv_datavalidation_range TYPE string,
|
||||
lt_datavalidation_range TYPE TABLE OF string.
|
||||
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* §2 We need to read the the file "\\_rels\.rels" because it tells
|
||||
* us where in this folder structure the data for the workbook
|
||||
|
@ -2666,7 +2564,6 @@ ENDMETHOD.</source>
|
|||
" End fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007
|
||||
|
||||
" Start fix 276 Read data validations
|
||||
"Add merge cell information
|
||||
lo_ixml_datavalidations = lo_ixml_worksheet->get_elements_by_tag_name( name = 'dataValidation' ).
|
||||
lo_ixml_iterator = lo_ixml_datavalidations->create_iterator( ).
|
||||
lo_ixml_datavalidation_elem ?= lo_ixml_iterator->get_next( ).
|
||||
|
@ -2717,7 +2614,7 @@ ENDMETHOD.</source>
|
|||
ENDWHILE.
|
||||
" End fix 276 Read data validations
|
||||
|
||||
ENDMETHOD.</source>
|
||||
endmethod.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Loads worksheet drawings" EXPOSURE="1" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET_DRAWING" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
||||
|
@ -2787,11 +2684,6 @@ ENDMETHOD.</source>
|
|||
path2 = path.
|
||||
zcl_excel_common=>split_file( EXPORTING ip_file = path2
|
||||
IMPORTING ep_extension = file_ext2 ).
|
||||
* CALL FUNCTION 'CV120_SPLIT_FILE'
|
||||
* EXPORTING
|
||||
* pf_file = path2
|
||||
* IMPORTING
|
||||
* pfx_extension = file_ext2.
|
||||
rel_drawing-file_ext = file_ext2.
|
||||
|
||||
"-------------Added by Alessandro Iannacci - Should load graph xml
|
||||
|
@ -2843,6 +2735,109 @@ ENDMETHOD.</source>
|
|||
|
||||
endmethod.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_APPLSERVER" VERSION="1" LANGU="E" DESCRIPT="Load excel data from appserver" EXPOSURE="0" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_APPLSERVER" SCONAME="I_FILENAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_APPLSERVER" SCONAME="R_EXCEL_DATA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
|
||||
<source>METHOD read_from_applserver.
|
||||
|
||||
DATA: lv_filelength TYPE i,
|
||||
lt_binary_data TYPE STANDARD TABLE OF x255 WITH NON-UNIQUE DEFAULT KEY,
|
||||
ls_binary_data LIKE LINE OF lt_binary_data,
|
||||
lv_filename TYPE string,
|
||||
lv_max_length_line TYPE i,
|
||||
lv_actual_length_line TYPE i,
|
||||
lv_errormessage TYPE string.
|
||||
|
||||
MOVE i_filename TO lv_filename.
|
||||
|
||||
DESCRIBE FIELD ls_binary_data LENGTH lv_max_length_line IN BYTE MODE.
|
||||
OPEN DATASET lv_filename FOR INPUT IN BINARY MODE.
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'A problem occured when reading the file'(001).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
WHILE sy-subrc = 0.
|
||||
|
||||
READ DATASET lv_filename INTO ls_binary_data MAXIMUM LENGTH lv_max_length_line ACTUAL LENGTH lv_actual_length_line.
|
||||
APPEND ls_binary_data TO lt_binary_data.
|
||||
lv_filelength = lv_filelength + lv_actual_length_line.
|
||||
|
||||
ENDWHILE.
|
||||
CLOSE DATASET lv_filename.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Binary data needs to be provided as XSTRING for further processing
|
||||
*--------------------------------------------------------------------*
|
||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||
EXPORTING
|
||||
input_length = lv_filelength
|
||||
IMPORTING
|
||||
buffer = r_excel_data
|
||||
TABLES
|
||||
binary_tab = lt_binary_data.
|
||||
ENDMETHOD.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_LOCAL_FILE" VERSION="1" LANGU="E" DESCRIPT="Load excel data from local file" EXPOSURE="0" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_LOCAL_FILE" SCONAME="I_FILENAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_LOCAL_FILE" SCONAME="R_EXCEL_DATA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
|
||||
<source>METHOD read_from_local_file.
|
||||
DATA: lv_filelength TYPE i,
|
||||
lt_binary_data TYPE STANDARD TABLE OF x255 WITH NON-UNIQUE DEFAULT KEY,
|
||||
ls_binary_data LIKE LINE OF lt_binary_data,
|
||||
lv_filename TYPE string,
|
||||
lv_errormessage TYPE string.
|
||||
|
||||
MOVE i_filename TO lv_filename.
|
||||
|
||||
cl_gui_frontend_services=>gui_upload( EXPORTING
|
||||
filename = lv_filename
|
||||
filetype = 'BIN' " We are basically working with zipped directories --> force binary read
|
||||
IMPORTING
|
||||
filelength = lv_filelength
|
||||
CHANGING
|
||||
data_tab = lt_binary_data
|
||||
EXCEPTIONS
|
||||
file_open_error = 1
|
||||
file_read_error = 2
|
||||
no_batch = 3
|
||||
gui_refuse_filetransfer = 4
|
||||
invalid_type = 5
|
||||
no_authority = 6
|
||||
unknown_error = 7
|
||||
bad_data_format = 8
|
||||
header_not_allowed = 9
|
||||
separator_not_allowed = 10
|
||||
header_too_long = 11
|
||||
unknown_dp_error = 12
|
||||
access_denied = 13
|
||||
dp_out_of_memory = 14
|
||||
disk_full = 15
|
||||
dp_timeout = 16
|
||||
not_supported_by_gui = 17
|
||||
error_no_gui = 18
|
||||
OTHERS = 19 ).
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'A problem occured when reading the file'(001).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Binary data needs to be provided as XSTRING for further processing
|
||||
*--------------------------------------------------------------------*
|
||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||
EXPORTING
|
||||
input_length = lv_filelength
|
||||
IMPORTING
|
||||
buffer = r_excel_data
|
||||
TABLES
|
||||
binary_tab = lt_binary_data.
|
||||
|
||||
ENDMETHOD.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_PATH" VERSION="1" LANGU="E" DESCRIPT="Return path after ../ values are removed" EXPOSURE="1" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_PATH" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_PATH" SCONAME="RP_RESULT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
|
||||
|
@ -2888,7 +2883,7 @@ endmethod.</source>
|
|||
endmethod.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_REFERENCED_FORMULAE" VERSION="1" LANGU="E" DESCRIPT="Resolve referenced formulae" EXPOSURE="1" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<source>METHOD resolve_referenced_formulae.
|
||||
<source>method RESOLVE_REFERENCED_FORMULAE.
|
||||
TYPES: BEGIN OF ty_referenced_cells,
|
||||
sheet TYPE REF TO zcl_excel_worksheet,
|
||||
si TYPE i,
|
||||
|
@ -2984,6 +2979,6 @@ endmethod.</source>
|
|||
ENDLOOP.
|
||||
|
||||
ENDLOOP.
|
||||
ENDMETHOD.</source>
|
||||
endmethod.</source>
|
||||
</method>
|
||||
</CLAS>
|
||||
|
|
Loading…
Reference in New Issue
Block a user