mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 05:04:11 +08:00
Reader Refact & INCOMPATIBLE remove CAN_READ_FILE
1. Removed interface method ZOF_EXCEL_READER~CAN_READ_FILE As was suggested in the comments, the method ZIF_EXCEL_READER~CAN_READ_FILE is superfluous, as the exception ZCX_EXCEL in LOAD( ) / LOAD_FILE( ) already gives this information. This is an incompatible change! But it's unlikely that this method is used by many clients, as it didn't to anything useful. Also, the demo programs don't use it. 2. Switched the zip archive reader creation from the former "on demand" creation to a one-time creation in the LOAD method. Necessary for the next point: 3. Removed private attribute EXCEL2007 (which kept the input XSTRING): After generation of the zip archive, these data are not necessary any more. 4. Factored out Stefan Schmöcker's "alternate zip" concept into a local subclass: The object "zip" refers to a local class - which is either a proxy to CL_ABAP_ZIP, or creates a zip object of dynamic type and calls its GET method of a class dynamically (the "alternate zip" case). Depending on the answer of my question https://github.com/ivanfemia/abap2xlsx/issues/232#issuecomment-42115340 this abstraction could be removed in a forthcoming commit as soon as it has been clarified that CL_ABAP_ZIP works as expected in all cases. 5. Further cleaning.- Removed some comments like "ToDo: Comment this" if necessary, and also some misleading comments which gave unwanted attention to a certain defect (issue 234) and the circumstances of that defect, thereby obfuscating the far more general nature of the commented code.
This commit is contained in:
parent
137e0ec960
commit
976bedb120
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<CLAS CLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" LANGU="E" DESCRIPT="Read Excel 2007 into ZCL_EXCEL" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="TY_REF_FORMULAE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="4 " SRCCOLUMN1="4 " SRCROW2="11 " SRCCOLUMN2="32 " TYPESRC_LENG="275 " TYPESRC="BEGIN OF ty_ref_formulae,
|
||||
<CLAS CLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" LANGU="D" DESCRIPT="Read Excel 2007 into ZCL_EXCEL" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="TY_REF_FORMULAE" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="4 " SRCCOLUMN1="4 " SRCROW2="11 " SRCCOLUMN2="32 " TYPESRC_LENG="283 " TYPESRC="BEGIN OF ty_ref_formulae,
|
||||
sheet TYPE REF TO zcl_excel_worksheet,
|
||||
row TYPE i,
|
||||
column TYPE i,
|
||||
|
@ -9,9 +9,9 @@
|
|||
formula TYPE string,
|
||||
END OF ty_ref_formulae
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="TYT_REF_FORMULAE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="13 " SRCCOLUMN1="4 " SRCROW2="13 " SRCCOLUMN2="89 " TYPESRC_LENG="87 " TYPESRC="tyt_ref_formulae TYPE HASHED TABLE OF ty_ref_formulae WITH UNIQUE KEY sheet row column
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="TYT_REF_FORMULAE" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="13 " SRCCOLUMN1="4 " SRCROW2="13 " SRCCOLUMN2="89 " TYPESRC_LENG="88 " TYPESRC="tyt_ref_formulae TYPE HASHED TABLE OF ty_ref_formulae WITH UNIQUE KEY sheet row column
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_RELATIONSHIP" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="6 " SRCCOLUMN1="4 " SRCROW2="12 " SRCCOLUMN2="29 " TYPESRC_LENG="319 " TYPESRC='BEGIN OF t_relationship,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_RELATIONSHIP" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="6 " SRCCOLUMN1="4 " SRCROW2="12 " SRCCOLUMN2="29 " TYPESRC_LENG="319 " TYPESRC='BEGIN OF t_relationship,
|
||||
id TYPE string,
|
||||
type TYPE string,
|
||||
target TYPE string,
|
||||
|
@ -19,7 +19,7 @@
|
|||
sheetid type string, "ins #235 - repeat rows/cols - needed to identify correct sheet
|
||||
END OF t_relationship
|
||||
'/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FILEVERSION" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="14 " SRCCOLUMN1="4 " SRCROW2="20 " SRCCOLUMN2="26 " TYPESRC_LENG="247 " TYPESRC="BEGIN OF t_fileversion,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FILEVERSION" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="14 " SRCCOLUMN1="4 " SRCROW2="20 " SRCCOLUMN2="26 " TYPESRC_LENG="247 " TYPESRC="BEGIN OF t_fileversion,
|
||||
appname TYPE string,
|
||||
lastedited TYPE string,
|
||||
lowestedited TYPE string,
|
||||
|
@ -27,58 +27,58 @@
|
|||
codename TYPE string,
|
||||
END OF t_fileversion
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_SHEET" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="22 " SRCCOLUMN1="4 " SRCROW2="27 " SRCCOLUMN2="22 " TYPESRC_LENG="182 " TYPESRC="BEGIN OF t_sheet,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_SHEET" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="22 " SRCCOLUMN1="4 " SRCROW2="27 " SRCCOLUMN2="22 " TYPESRC_LENG="182 " TYPESRC="BEGIN OF t_sheet,
|
||||
name TYPE string,
|
||||
sheetid TYPE string,
|
||||
id TYPE string,
|
||||
state TYPE string,
|
||||
END OF t_sheet
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_WORKBOOKPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="4 " TYPTYPE="4" SRCROW1="29 " SRCCOLUMN1="4 " SRCROW2="32 " SRCCOLUMN2="27 " TYPESRC_LENG="146 " TYPESRC="BEGIN OF t_workbookpr,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_WORKBOOKPR" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="4 " TYPTYPE="4" SRCROW1="29 " SRCCOLUMN1="4 " SRCROW2="32 " SRCCOLUMN2="27 " TYPESRC_LENG="146 " TYPESRC="BEGIN OF t_workbookpr,
|
||||
codename TYPE string,
|
||||
defaultthemeversion TYPE string,
|
||||
END OF t_workbookpr
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_SHEETPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="5 " TYPTYPE="4" SRCROW1="34 " SRCCOLUMN1="4 " SRCROW2="36 " SRCCOLUMN2="24 " TYPESRC_LENG="93 " TYPESRC="BEGIN OF t_sheetpr,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_SHEETPR" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="5 " TYPTYPE="4" SRCROW1="34 " SRCCOLUMN1="4 " SRCROW2="36 " SRCCOLUMN2="24 " TYPESRC_LENG="93 " TYPESRC="BEGIN OF t_sheetpr,
|
||||
codename TYPE string,
|
||||
END OF t_sheetpr
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_RANGE" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="6 " TYPTYPE="4" SRCROW1="38 " SRCCOLUMN1="4 " SRCROW2="42 " SRCCOLUMN2="22 " TYPESRC_LENG="261 " TYPESRC="BEGIN OF t_range,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_RANGE" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="6 " TYPTYPE="4" SRCROW1="38 " SRCCOLUMN1="4 " SRCROW2="42 " SRCCOLUMN2="22 " TYPESRC_LENG="261 " TYPESRC="BEGIN OF t_range,
|
||||
name TYPE string,
|
||||
hidden type string, "inserted with issue #235 because Autofilters didn't passthrough
|
||||
localsheetid TYPE string, " issue #163
|
||||
END OF t_range
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FILLS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="7 " TYPTYPE="4" SRCROW1="44 " SRCCOLUMN1="4 " SRCROW2="44 " SRCCOLUMN2="91 " TYPESRC_LENG="89 " TYPESRC="t_fills TYPE STANDARD TABLE OF REF TO zcl_excel_style_fill WITH NON-UNIQUE DEFAULT KEY
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FILLS" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="7 " TYPTYPE="4" SRCROW1="44 " SRCCOLUMN1="4 " SRCROW2="44 " SRCCOLUMN2="91 " TYPESRC_LENG="89 " TYPESRC="t_fills TYPE STANDARD TABLE OF REF TO zcl_excel_style_fill WITH NON-UNIQUE DEFAULT KEY
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_BORDERS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="8 " TYPTYPE="4" SRCROW1="46 " SRCCOLUMN1="4 " SRCROW2="46 " SRCCOLUMN2="94 " TYPESRC_LENG="92 " TYPESRC="t_borders TYPE STANDARD TABLE OF REF TO zcl_excel_style_borders WITH NON-UNIQUE DEFAULT KEY
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_BORDERS" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="8 " TYPTYPE="4" SRCROW1="46 " SRCCOLUMN1="4 " SRCROW2="46 " SRCCOLUMN2="94 " TYPESRC_LENG="92 " TYPESRC="t_borders TYPE STANDARD TABLE OF REF TO zcl_excel_style_borders WITH NON-UNIQUE DEFAULT KEY
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FONTS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="9 " TYPTYPE="4" SRCROW1="48 " SRCCOLUMN1="4 " SRCROW2="48 " SRCCOLUMN2="91 " TYPESRC_LENG="89 " TYPESRC="t_fonts TYPE STANDARD TABLE OF REF TO zcl_excel_style_font WITH NON-UNIQUE DEFAULT KEY
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_FONTS" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="9 " TYPTYPE="4" SRCROW1="48 " SRCCOLUMN1="4 " SRCROW2="48 " SRCCOLUMN2="91 " TYPESRC_LENG="89 " TYPESRC="t_fonts TYPE STANDARD TABLE OF REF TO zcl_excel_style_font WITH NON-UNIQUE DEFAULT KEY
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_STYLE_REFS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="10 " TYPTYPE="4" SRCROW1="50 " SRCCOLUMN1="4 " SRCROW2="50 " SRCCOLUMN2="89 " TYPESRC_LENG="87 " TYPESRC="t_style_refs TYPE STANDARD TABLE OF REF TO zcl_excel_style WITH NON-UNIQUE DEFAULT KEY
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_STYLE_REFS" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="10 " TYPTYPE="4" SRCROW1="50 " SRCCOLUMN1="4 " SRCROW2="50 " SRCCOLUMN2="89 " TYPESRC_LENG="87 " TYPESRC="t_style_refs TYPE STANDARD TABLE OF REF TO zcl_excel_style WITH NON-UNIQUE DEFAULT KEY
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_NUM_FORMAT" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="11 " TYPTYPE="4" SRCROW1="52 " SRCCOLUMN1="4 " SRCROW2="55 " SRCCOLUMN2="20 " TYPESRC_LENG="119 " TYPESRC="BEGIN OF t_num_format,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_NUM_FORMAT" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="11 " TYPTYPE="4" SRCROW1="52 " SRCCOLUMN1="4 " SRCROW2="55 " SRCCOLUMN2="20 " TYPESRC_LENG="119 " TYPESRC="BEGIN OF t_num_format,
|
||||
id TYPE string,
|
||||
format TYPE REF TO zcl_excel_style_number_format,
|
||||
END OF t_num_format
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_NUM_FORMATS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="12 " TYPTYPE="4" SRCROW1="57 " SRCCOLUMN1="4 " SRCROW2="57 " SRCCOLUMN2="69 " TYPESRC_LENG="67 " TYPESRC="t_num_formats TYPE HASHED TABLE OF t_num_format WITH UNIQUE KEY id
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_NUM_FORMATS" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="12 " TYPTYPE="4" SRCROW1="57 " SRCCOLUMN1="4 " SRCROW2="57 " SRCCOLUMN2="69 " TYPESRC_LENG="67 " TYPESRC="t_num_formats TYPE HASHED TABLE OF t_num_format WITH UNIQUE KEY id
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_COLOR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="13 " TYPTYPE="4" SRCROW1="59 " SRCCOLUMN1="4 " SRCROW2="64 " SRCCOLUMN2="15 " TYPESRC_LENG="126 " TYPESRC="BEGIN OF t_color,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_COLOR" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="13 " TYPTYPE="4" SRCROW1="59 " SRCCOLUMN1="4 " SRCROW2="64 " SRCCOLUMN2="15 " TYPESRC_LENG="126 " TYPESRC="BEGIN OF t_color,
|
||||
indexed TYPE string,
|
||||
rgb TYPE string,
|
||||
theme TYPE string,
|
||||
tint TYPE string,
|
||||
END OF t_color
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_REL_DRAWING" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="14 " TYPTYPE="4" SRCROW1="66 " SRCCOLUMN1="4 " SRCROW2="71 " SRCCOLUMN2="23 " TYPESRC_LENG="175 " TYPESRC="BEGIN OF t_rel_drawing,
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_REL_DRAWING" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="14 " TYPTYPE="4" SRCROW1="66 " SRCCOLUMN1="4 " SRCROW2="71 " SRCCOLUMN2="23 " TYPESRC_LENG="175 " TYPESRC="BEGIN OF t_rel_drawing,
|
||||
id TYPE string,
|
||||
content TYPE xstring,
|
||||
file_ext TYPE string,
|
||||
content_xml TYPE REF TO IF_IXML_DOCUMENT,
|
||||
END OF t_rel_drawing
|
||||
"/>
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_REL_DRAWINGS" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="15 " TYPTYPE="4" SRCROW1="73 " SRCCOLUMN1="4 " SRCROW2="73 " SRCCOLUMN2="82 " TYPESRC_LENG="80 " TYPESRC="t_rel_drawings TYPE STANDARD TABLE OF t_rel_drawing WITH NON-UNIQUE DEFAULT KEY
|
||||
<types CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="T_REL_DRAWINGS" VERSION="1" LANGU="D" EXPOSURE="1" STATE="1" EDITORDER="15 " TYPTYPE="4" SRCROW1="73 " SRCCOLUMN1="4 " SRCROW2="73 " SRCCOLUMN2="82 " TYPESRC_LENG="80 " TYPESRC="t_rel_drawings TYPE STANDARD TABLE OF t_rel_drawing WITH NON-UNIQUE DEFAULT KEY
|
||||
"/>
|
||||
<implementing CLSNAME="ZCL_EXCEL_READER_2007" REFCLSNAME="ZIF_EXCEL_READER" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
|
||||
<localImplementation>*"* local class implementation for public class
|
||||
|
@ -88,61 +88,175 @@
|
|||
id TYPE string,
|
||||
type TYPE string,
|
||||
target TYPE string,
|
||||
END OF t_relationship.</localImplementation>
|
||||
END OF t_relationship.
|
||||
|
||||
*
|
||||
CLASS lcl_abap_zip_archive DEFINITION
|
||||
INHERITING FROM lcl_zip_archive
|
||||
CREATE PRIVATE.
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS create
|
||||
IMPORTING i_data TYPE xstring
|
||||
RETURNING value(r_zip) TYPE REF TO lcl_zip_archive
|
||||
RAISING zcx_excel.
|
||||
METHODS read REDEFINITION.
|
||||
PRIVATE SECTION.
|
||||
DATA: abap_zip TYPE REF TO cl_abap_zip.
|
||||
METHODS constructor IMPORTING i_data TYPE xstring
|
||||
RAISING zcx_excel.
|
||||
ENDCLASS. "lcl_abap_zip_archive DEFINITION
|
||||
|
||||
*
|
||||
CLASS lcl_alternate_zip_archive DEFINITION
|
||||
INHERITING FROM lcl_zip_archive
|
||||
CREATE PRIVATE.
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS create
|
||||
IMPORTING i_data TYPE xstring
|
||||
i_alternate_zip_class TYPE seoclsname
|
||||
RETURNING value(r_zip) TYPE REF TO lcl_zip_archive
|
||||
RAISING zcx_excel.
|
||||
METHODS read REDEFINITION.
|
||||
PRIVATE SECTION.
|
||||
DATA: alternate_zip TYPE REF TO object.
|
||||
METHODS constructor
|
||||
IMPORTING i_data TYPE xstring
|
||||
i_alternate_zip_class TYPE seoclsname
|
||||
RAISING zcx_excel.
|
||||
ENDCLASS. "lcl_alternate_zip_archive DEFINITION
|
||||
|
||||
*
|
||||
CLASS lcl_abap_zip_archive IMPLEMENTATION.
|
||||
METHOD create.
|
||||
CREATE OBJECT r_zip TYPE lcl_abap_zip_archive
|
||||
EXPORTING
|
||||
i_data = i_data.
|
||||
ENDMETHOD. "create
|
||||
METHOD constructor.
|
||||
DATA: lv_errormessage TYPE string.
|
||||
super->constructor( ).
|
||||
CREATE OBJECT abap_zip.
|
||||
abap_zip->load(
|
||||
EXPORTING
|
||||
zip = i_data
|
||||
EXCEPTIONS
|
||||
zip_parse_error = 1
|
||||
OTHERS = 2 ).
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'ZIP parse error'(002).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "constructor
|
||||
METHOD read.
|
||||
DATA: lv_errormessage TYPE string.
|
||||
CALL METHOD abap_zip->get
|
||||
EXPORTING
|
||||
name = i_filename
|
||||
IMPORTING
|
||||
content = r_content
|
||||
EXCEPTIONS
|
||||
zip_index_error = 1
|
||||
zip_decompression_error = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'File not found in zip-archive'(003).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "read
|
||||
ENDCLASS. "lcl_abap_zip_archive IMPLEMENTATION
|
||||
|
||||
*
|
||||
CLASS lcl_alternate_zip_archive IMPLEMENTATION.
|
||||
METHOD create.
|
||||
CREATE OBJECT r_zip TYPE lcl_alternate_zip_archive
|
||||
EXPORTING
|
||||
i_alternate_zip_class = i_alternate_zip_class
|
||||
i_data = i_data.
|
||||
ENDMETHOD. "create
|
||||
METHOD constructor.
|
||||
DATA: lv_errormessage TYPE string.
|
||||
super->constructor( ).
|
||||
CREATE OBJECT alternate_zip TYPE (i_alternate_zip_class).
|
||||
TRY.
|
||||
CALL METHOD alternate_zip->('LOAD')
|
||||
EXPORTING
|
||||
zip = i_data
|
||||
EXCEPTIONS
|
||||
zip_parse_error = 1
|
||||
OTHERS = 2.
|
||||
CATCH cx_sy_dyn_call_illegal_method.
|
||||
lv_errormessage = 'Method LOAD missing in alternative zipclass'. "#EC NOTEXT This is a workaround until class CL_ABAP_ZIP is fixed
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDTRY.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'ZIP parse error'(002).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "constructor
|
||||
METHOD read.
|
||||
DATA: lv_errormessage TYPE string.
|
||||
TRY.
|
||||
CALL METHOD alternate_zip->('GET')
|
||||
EXPORTING
|
||||
name = i_filename
|
||||
IMPORTING
|
||||
content = r_content " Contents
|
||||
EXCEPTIONS
|
||||
zip_index_error = 1
|
||||
zip_decompression_error = 2
|
||||
OTHERS = 3.
|
||||
CATCH cx_sy_dyn_call_illegal_method.
|
||||
lv_errormessage = 'Method GET missing in alternative zipclass'. "#EC NOTEXT This is a workaround until class CL_ABAP_ZIP is fixed
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDTRY.
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'File not found in zip-archive'(003).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "read
|
||||
ENDCLASS. "lcl_alternate_zip_archive IMPLEMENTATION</localImplementation>
|
||||
<localTypes>*"* use this source file for any type declarations (class
|
||||
*"* definitions, interfaces or data types) you need for method
|
||||
*"* implementation or private method's signature</localTypes>
|
||||
*"* implementation or private method's signature
|
||||
|
||||
*
|
||||
class lcl_zip_archive definition abstract.
|
||||
public section.
|
||||
methods read abstract
|
||||
importing i_filename type csequence
|
||||
returning value(r_content) type xstring " Remember copy-on-write!
|
||||
raising zcx_excel.
|
||||
endclass.</localTypes>
|
||||
<localMacros>*"* use this source file for any macro definitions you need
|
||||
*"* in the implementation part of the class</localMacros>
|
||||
<textPool>
|
||||
<language SPRAS="E">
|
||||
<textElement ID="I" KEY="001" ENTRY="A problem occured when reading the file" LENGTH="60 "/>
|
||||
<textElement ID="I" KEY="002" ENTRY="ZIP parse error" LENGTH="60 "/>
|
||||
<textElement ID="I" KEY="003" ENTRY="File not found in zip-archive" LENGTH="60 "/>
|
||||
</language>
|
||||
</textPool>
|
||||
<typeUsage CLSNAME="ZCL_EXCEL_READER_2007" TYPEGROUP="IXML" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
|
||||
<forwardDeclaration>IXML</forwardDeclaration>
|
||||
<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="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.
|
||||
*--------------------------------------------------------------------*
|
||||
* issue #230 - Pimp my Code
|
||||
* - Stefan Schmöcker, (done) 2012-11-07
|
||||
* - ...
|
||||
* changes: nothing done in code
|
||||
* but started discussion about killing this method
|
||||
*--------------------------------------------------------------------*
|
||||
* For now always Unknown
|
||||
r_readable = abap_undefined.
|
||||
endmethod.</source>
|
||||
</interfaceMethod>
|
||||
<attribute CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="MT_REF_FORMULAE" VERSION="1" LANGU="D" DESCRIPT="Referenced formulae before resolving" EXPOSURE="0" STATE="1" EDITORDER="2 " 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="D" DESCRIPT="Table with Strings" EXPOSURE="1" STATE="1" EDITORDER="1 " 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="D" EXPOSURE="1" STATE="1" EDITORDER="2 " 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="D" DESCRIPT="Zip Utility" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="LCL_ZIP_ARCHIVE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||
<interfaceMethod CLSNAME="ZCL_EXCEL_READER_2007" CPDNAME="ZIF_EXCEL_READER~LOAD">
|
||||
<source>method ZIF_EXCEL_READER~LOAD.
|
||||
<source>METHOD zif_excel_reader~load.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
* 2do§1 Map Document Properties to ZCL_EXCEL
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* issue #230 - Pimp my Code
|
||||
* - Stefan Schmöcker, (done) 2012-11-07
|
||||
* - ...
|
||||
* changes: renaming variables to naming conventions
|
||||
* removing unused variables
|
||||
* aligning code
|
||||
* adding comments to explain what we are trying to achieve
|
||||
* commenting on problems/future enhancements/todos we already know of or should decide upon
|
||||
* adding me-> where possible
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
* - Stefan Schmöcker, 2012-11-07
|
||||
* changes: passing new optional input parameter to private attribute
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
CONSTANTS: lcv_core_properties TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',
|
||||
|
@ -184,17 +298,13 @@
|
|||
*--------------------------------------------------------------------*
|
||||
CREATE OBJECT r_excel.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
me->zif_excel_reader~gv_use_alternate_zip = i_use_alternate_zip.
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
zip = create_zip_archive( i_xlsx_binary = i_excel2007
|
||||
i_use_alternate_zip = i_use_alternate_zip ).
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* §2 Get file in folderstructure
|
||||
*--------------------------------------------------------------------*
|
||||
me->excel2007 = i_excel2007.
|
||||
lo_rels = me->get_ixml_from_zip_archive( '_rels/.rels' ).
|
||||
lo_rels = get_ixml_from_zip_archive( '_rels/.rels' ).
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* §3 Cycle through the Relationship Tags and use the ones we need
|
||||
|
@ -202,19 +312,22 @@
|
|||
lo_node ?= lo_rels->find_from_name( 'Relationship' ). "#EC NOTEXT
|
||||
WHILE lo_node IS BOUND.
|
||||
|
||||
me->fill_struct_from_attributes( EXPORTING
|
||||
fill_struct_from_attributes( EXPORTING
|
||||
ip_element = lo_node
|
||||
CHANGING
|
||||
cp_structure = ls_relationship ).
|
||||
CASE ls_relationship-type.
|
||||
|
||||
WHEN lcv_office_document.
|
||||
*--------------------------------------------------------------------*
|
||||
* Parse workbook - main part here
|
||||
*--------------------------------------------------------------------*
|
||||
load_workbook( iv_workbook_full_filename = ls_relationship-target
|
||||
io_excel = r_excel ).
|
||||
|
||||
WHEN lcv_core_properties.
|
||||
" 2do§1 Map Document Properties to ZCL_EXCEL
|
||||
|
||||
WHEN lcv_office_document.
|
||||
me->load_workbook( iv_workbook_full_filename = ls_relationship-target
|
||||
io_excel = r_excel ).
|
||||
|
||||
WHEN OTHERS.
|
||||
|
||||
ENDCASE.
|
||||
|
@ -223,61 +336,49 @@
|
|||
ENDWHILE.
|
||||
|
||||
|
||||
endmethod.</source>
|
||||
ENDMETHOD.</source>
|
||||
</interfaceMethod>
|
||||
<interfaceMethod CLSNAME="ZCL_EXCEL_READER_2007" CPDNAME="ZIF_EXCEL_READER~LOAD_FILE">
|
||||
<source>METHOD zif_excel_reader~load_file.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
* 2do§1 decision whether to load from frontend or backend
|
||||
* current behavior ( autodecide ) should be default
|
||||
* add optional parameter to allow user to choose
|
||||
* to load from backend even when online
|
||||
* 2do§2 loosen typing of i_filename to CLIKE
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* issue #230 - Pimp my Code
|
||||
* - Stefan Schmöcker, (done) 2012-11-05
|
||||
* - ...
|
||||
* changes: renaming variables to naming conventions
|
||||
* renaming variables to indicate what they are used for
|
||||
* adding comments to explain what we are trying to achieve
|
||||
* message made to support multilinguality
|
||||
* aligning code
|
||||
* commenting on problems/future enhancements/todos we already know of or should decide upon
|
||||
* adding issue # that has initiated the change - date provided to allow cleaning of code after a certain period
|
||||
* explicit declaration of type of table instead of implicit declaration
|
||||
* added errorhandling for open dataset
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
* - Stefan Schmöcker, 2012-11-07
|
||||
* changes: passing new optional input parameter to private attribute
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
DATA: lv_excel_data TYPE xstring.
|
||||
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
me->zif_excel_reader~gv_use_alternate_zip = i_use_alternate_zip.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Read file into binary string
|
||||
*--------------------------------------------------------------------*
|
||||
IF i_from_applserver = abap_true.
|
||||
lv_excel_data = me->read_from_applserver( i_filename = i_filename ).
|
||||
lv_excel_data = read_from_applserver( i_filename ).
|
||||
ELSE.
|
||||
lv_excel_data = me->read_from_local_file( i_filename = i_filename ).
|
||||
lv_excel_data = read_from_local_file( i_filename ).
|
||||
ENDIF.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
r_excel = me->zif_excel_reader~load( i_excel2007 = lv_excel_data
|
||||
i_use_alternate_zip = i_use_alternate_zip ).
|
||||
* Parse Excel data into ZCL_EXCEL object from binary string
|
||||
*--------------------------------------------------------------------*
|
||||
r_excel = zif_excel_reader~load( i_excel2007 = lv_excel_data
|
||||
i_use_alternate_zip = i_use_alternate_zip ).
|
||||
|
||||
ENDMETHOD.</source>
|
||||
</interfaceMethod>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="CREATE_ZIP_ARCHIVE" VERSION="1" LANGU="E" DESCRIPT="Create the zip reference object" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="CREATE_ZIP_ARCHIVE" SCONAME="I_XLSX_BINARY" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="XSTRING"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="CREATE_ZIP_ARCHIVE" SCONAME="I_USE_ALTERNATE_ZIP" VERSION="1" LANGU="E" DESCRIPT="Object Type Name" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SEOCLSNAME" PAROPTIONL="X"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="CREATE_ZIP_ARCHIVE" SCONAME="E_ZIP" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="LCL_ZIP_ARCHIVE"/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="CREATE_ZIP_ARCHIVE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>METHOD create_zip_archive.
|
||||
CASE i_use_alternate_zip.
|
||||
WHEN space.
|
||||
e_zip = lcl_abap_zip_archive=>create( i_xlsx_binary ).
|
||||
WHEN OTHERS.
|
||||
e_zip = lcl_alternate_zip_archive=>create( i_data = i_xlsx_binary
|
||||
i_alternate_zip_class = i_use_alternate_zip ).
|
||||
ENDCASE.
|
||||
ENDMETHOD.</source>
|
||||
</method>
|
||||
<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"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="FILL_STRUCT_FROM_ATTRIBUTES" SCONAME="CP_STRUCTURE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
|
||||
<source>method FILL_STRUCT_FROM_ATTRIBUTES.
|
||||
<source>method fill_struct_from_attributes.
|
||||
*--------------------------------------------------------------------*
|
||||
* issue #230 - Pimp my Code
|
||||
* - Stefan Schmöcker, (done) 2012-11-07
|
||||
|
@ -287,12 +388,12 @@
|
|||
* adding comments to explain what we are trying to achieve
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
DATA: lv_name TYPE string,
|
||||
lo_attributes TYPE REF TO if_ixml_named_node_map,
|
||||
lo_attribute TYPE REF TO if_ixml_attribute,
|
||||
lo_iterator TYPE REF TO if_ixml_node_iterator.
|
||||
data: lv_name type string,
|
||||
lo_attributes type ref to if_ixml_named_node_map,
|
||||
lo_attribute type ref to if_ixml_attribute,
|
||||
lo_iterator type ref to if_ixml_node_iterator.
|
||||
|
||||
FIELD-SYMBOLS: <component> TYPE ANY.
|
||||
field-symbols: <component> type any.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* The values of named attributes of a tag are being read and moved into corresponding
|
||||
|
@ -305,22 +406,22 @@
|
|||
* structure has fieldnames Id and Target these would be filled with
|
||||
* "rId3" and "docProps/app.xml" respectively
|
||||
*--------------------------------------------------------------------*
|
||||
CLEAR cp_structure.
|
||||
clear cp_structure.
|
||||
|
||||
lo_attributes = ip_element->get_attributes( ).
|
||||
lo_iterator = lo_attributes->create_iterator( ).
|
||||
lo_attribute ?= lo_iterator->get_next( ).
|
||||
WHILE lo_attribute IS BOUND.
|
||||
while lo_attribute is bound.
|
||||
|
||||
lv_name = lo_attribute->get_name( ).
|
||||
TRANSLATE lv_name TO UPPER CASE.
|
||||
ASSIGN COMPONENT lv_name OF STRUCTURE cp_structure TO <component>.
|
||||
IF sy-subrc = 0.
|
||||
translate lv_name to upper case.
|
||||
assign component lv_name of structure cp_structure to <component>.
|
||||
if sy-subrc = 0.
|
||||
<component> = lo_attribute->get_value( ).
|
||||
ENDIF.
|
||||
endif.
|
||||
lo_attribute ?= lo_iterator->get_next( ).
|
||||
|
||||
ENDWHILE.
|
||||
endwhile.
|
||||
|
||||
|
||||
endmethod.</source>
|
||||
|
@ -329,158 +430,30 @@
|
|||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="GET_FROM_ZIP_ARCHIVE" SCONAME="I_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="GET_FROM_ZIP_ARCHIVE" SCONAME="R_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="GET_FROM_ZIP_ARCHIVE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>method GET_FROM_ZIP_ARCHIVE.
|
||||
*--------------------------------------------------------------------*
|
||||
* issue #230 - Pimp my Code
|
||||
* - Stefan Schmöcker, (done) 2012-11-07
|
||||
* - ...
|
||||
* changes: aligning code
|
||||
* adding comments to explain what we are trying to achieve
|
||||
* changed message passed with exception
|
||||
* message made to support multilinguality
|
||||
*--------------------------------------------------------------------**--------------------------------------------------------------------*
|
||||
* issue#234 - error reading xlsx written by libre office
|
||||
* - Stefan Schmöcker, 2012-11-07
|
||||
* changes: copying coding and using ALTERNATE_ZIP in ELSE-Branch
|
||||
*--------------------------------------------------------------------*
|
||||
<source>METHOD get_from_zip_archive.
|
||||
|
||||
DATA: lv_errormessage TYPE string. " Can't pass '...'(abc) to exception-class
|
||||
ASSERT zip IS BOUND. " zip object has to exist at this point
|
||||
|
||||
r_content = zip->read( i_filename ).
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* An xlsx-file is basically a zip-archive
|
||||
* From this zip-archive we need to extract one file in binary form
|
||||
*--------------------------------------------------------------------*
|
||||
IF me->zif_excel_reader~gv_use_alternate_zip IS INITIAL. "+#234
|
||||
*--------------------------------------------------------------------*
|
||||
* Setup ABAP zip-class with binary exceldata if not done already
|
||||
*--------------------------------------------------------------------*
|
||||
IF me->zip IS NOT BOUND.
|
||||
CREATE OBJECT me->zip.
|
||||
zip->load( EXPORTING
|
||||
zip = me->excel2007
|
||||
EXCEPTIONS
|
||||
zip_parse_error = 1
|
||||
OTHERS = 2 ).
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'ZIP parse error'(002).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Extract requested filename from archive if possible
|
||||
*--------------------------------------------------------------------*
|
||||
zip->get( EXPORTING
|
||||
name = i_filename
|
||||
IMPORTING
|
||||
content = r_content " Contents
|
||||
EXCEPTIONS
|
||||
zip_index_error = 1
|
||||
zip_decompression_error = 2
|
||||
OTHERS = 3 ).
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'File not found in zip-archive'(003).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - begin of insertion
|
||||
*--------------------------------------------------------------------*
|
||||
ELSE.
|
||||
*--------------------------------------------------------------------*
|
||||
* Setup alternate ABAP zip-class with binary exceldata if not done already
|
||||
* May become obsolete if SAP fixes standard CL_ABAP_ZIP
|
||||
*--------------------------------------------------------------------*
|
||||
IF me->alternate_zip IS NOT BOUND.
|
||||
CREATE OBJECT me->alternate_zip TYPE (zif_excel_reader~gv_use_alternate_zip).
|
||||
TRY.
|
||||
CALL METHOD me->alternate_zip->('LOAD')
|
||||
EXPORTING
|
||||
zip = me->excel2007
|
||||
EXCEPTIONS
|
||||
zip_parse_error = 1
|
||||
OTHERS = 2.
|
||||
CATCH cx_sy_dyn_call_illegal_method.
|
||||
lv_errormessage = 'Method LOAD missing in alternative zipclass'. "#EC NOTEXT This is a workaround until class CL_ABAP_ZIP is fixed
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDTRY.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'ZIP parse error'(002).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Extract requested filename from archive if possible
|
||||
*--------------------------------------------------------------------*
|
||||
TRY.
|
||||
CALL METHOD me->alternate_zip->('GET')
|
||||
EXPORTING
|
||||
name = i_filename
|
||||
IMPORTING
|
||||
content = r_content " Contents
|
||||
EXCEPTIONS
|
||||
zip_index_error = 1
|
||||
zip_decompression_error = 2
|
||||
OTHERS = 3.
|
||||
CATCH cx_sy_dyn_call_illegal_method.
|
||||
lv_errormessage = 'Method GET missing in alternative zipclass'. "#EC NOTEXT This is a workaround until class CL_ABAP_ZIP is fixed
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDTRY.
|
||||
IF sy-subrc <> 0.
|
||||
lv_errormessage = 'File not found in zip-archive'(003).
|
||||
RAISE EXCEPTION TYPE zcx_excel
|
||||
EXPORTING
|
||||
error = lv_errormessage.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
*--------------------------------------------------------------------*
|
||||
* issue#234 - end of insertion
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
endmethod.</source>
|
||||
ENDMETHOD.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="GET_IXML_FROM_ZIP_ARCHIVE" VERSION="1" LANGU="E" DESCRIPT="Read file from ZIP Archive" EXPOSURE="1" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="GET_IXML_FROM_ZIP_ARCHIVE" SCONAME="I_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="GET_IXML_FROM_ZIP_ARCHIVE" SCONAME="IS_NORMALIZING" VERSION="1" LANGU="E" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="BOOLEAN" PARVALUE="'X'" PAROPTIONL="X"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="GET_IXML_FROM_ZIP_ARCHIVE" SCONAME="IS_NORMALIZING" VERSION="1" LANGU="D" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="BOOLEAN" PARVALUE="'X'" PAROPTIONL="X"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="GET_IXML_FROM_ZIP_ARCHIVE" SCONAME="R_IXML" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="GET_IXML_FROM_ZIP_ARCHIVE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>method GET_IXML_FROM_ZIP_ARCHIVE.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
* 2do§1 Add comment what is being achieved here
|
||||
*--------------------------------------------------------------------*
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* issue #230 - Pimp my Code
|
||||
* - Stefan Schmöcker, (done) 2012-11-07
|
||||
* - ...
|
||||
* changes: renaming variables to naming conventions
|
||||
* removing unnecessary type-pool
|
||||
* aligning code
|
||||
*--------------------------------------------------------------------*
|
||||
<source>METHOD get_ixml_from_zip_archive.
|
||||
|
||||
DATA: lv_content TYPE xstring,
|
||||
|
||||
lo_ixml TYPE REF TO if_ixml,
|
||||
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
|
||||
lo_istream TYPE REF TO if_ixml_istream,
|
||||
lo_parser TYPE REF TO if_ixml_parser.
|
||||
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* 2do§1 ???? Something happens here ???
|
||||
* Load XML file from archive into an input stream,
|
||||
* and parse that stream into an ixml object
|
||||
*--------------------------------------------------------------------*
|
||||
lv_content = me->get_from_zip_archive( i_filename ).
|
||||
lo_ixml = cl_ixml=>create( ).
|
||||
|
@ -490,17 +463,16 @@
|
|||
lo_parser = lo_ixml->create_parser( stream_factory = lo_streamfactory
|
||||
istream = lo_istream
|
||||
document = r_ixml ).
|
||||
|
||||
lo_parser->set_normalizing( is_normalizing ).
|
||||
lo_parser->set_validating( mode = if_ixml_parser=>co_no_validation ).
|
||||
lo_parser->parse( ).
|
||||
|
||||
endmethod.</source>
|
||||
ENDMETHOD.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_DRAWING_ANCHOR" VERSION="1" LANGU="E" DESCRIPT="Loads worksheet" EXPOSURE="1" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_DRAWING_ANCHOR" SCONAME="IO_ANCHOR_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"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_DRAWING_ANCHOR" 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"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_DRAWING_ANCHOR" SCONAME="IT_RELATED_DRAWINGS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="T_REL_DRAWINGS"/>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_DRAWING_ANCHOR" VERSION="1" LANGU="D" DESCRIPT="Loads worksheet" EXPOSURE="1" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_DRAWING_ANCHOR" SCONAME="IO_ANCHOR_ELEMENT" VERSION="1" LANGU="D" DESCRIPT="IF_IXML_ELEMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_ELEMENT"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_DRAWING_ANCHOR" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="D" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_DRAWING_ANCHOR" SCONAME="IT_RELATED_DRAWINGS" VERSION="1" LANGU="D" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="T_REL_DRAWINGS"/>
|
||||
<source>method LOAD_DRAWING_ANCHOR.
|
||||
|
||||
TYPES: BEGIN OF t_c_nv_pr,
|
||||
|
@ -651,7 +623,7 @@
|
|||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_SHARED_STRINGS" VERSION="1" LANGU="E" DESCRIPT="Loads shared strings table" EXPOSURE="1" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_SHARED_STRINGS" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_SHARED_STRINGS" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_SHARED_STRINGS" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="D" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>method LOAD_SHARED_STRINGS.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
|
@ -771,7 +743,7 @@
|
|||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLES" VERSION="1" LANGU="E" DESCRIPT="Loads styles" EXPOSURE="1" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLES" 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_STYLES" SCONAME="IP_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_STYLES" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLES" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="D" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>method LOAD_STYLES.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
|
@ -1495,9 +1467,9 @@
|
|||
endmethod.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" VERSION="1" LANGU="E" DESCRIPT="Loads workbook" EXPOSURE="1" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<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 "/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" SCONAME="IV_WORKBOOK_FULL_FILENAME" VERSION="1" LANGU="D" 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="D" 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="D" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>method LOAD_WORKBOOK.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
|
@ -1916,7 +1888,7 @@
|
|||
<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 "/>
|
||||
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="D" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>method LOAD_WORKSHEET.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
|
@ -2616,10 +2588,10 @@
|
|||
|
||||
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"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET_DRAWING" 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_DRAWING" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET_DRAWING" VERSION="1" LANGU="D" 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="D" 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_DRAWING" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="D" 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_DRAWING" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="D" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||
<source>method LOAD_WORKSHEET_DRAWING.
|
||||
|
||||
TYPES: BEGIN OF t_c_nv_pr,
|
||||
|
@ -2735,9 +2707,9 @@
|
|||
|
||||
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"/>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_APPLSERVER" VERSION="1" LANGU="D" DESCRIPT="Load excel data from appserver" EXPOSURE="0" STATE="1" EDITORDER="2 " 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="D" 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="D" 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,
|
||||
|
@ -2779,9 +2751,9 @@
|
|||
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"/>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_LOCAL_FILE" VERSION="1" LANGU="D" DESCRIPT="Load excel data from local file" EXPOSURE="0" STATE="1" EDITORDER="3 " 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="D" 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="D" 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,
|
||||
|
@ -2838,9 +2810,9 @@
|
|||
|
||||
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"/>
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_PATH" VERSION="1" LANGU="D" 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="D" 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="D" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
|
||||
<source>method RESOLVE_PATH.
|
||||
*--------------------------------------------------------------------*
|
||||
* ToDos:
|
||||
|
@ -2882,7 +2854,7 @@
|
|||
|
||||
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">
|
||||
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_REFERENCED_FORMULAE" VERSION="1" LANGU="D" 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.
|
||||
TYPES: BEGIN OF ty_referenced_cells,
|
||||
sheet TYPE REF TO zcl_excel_worksheet,
|
||||
|
|
Loading…
Reference in New Issue
Block a user