mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-04 23:19:45 +08:00
Def-376 Bug in shared string table reader
If Excel's shared string table (SST) contains the empty string not only at the beginning but also redundantly at a further place, the following bug in the shared string table reader of class ZCL_EXCEL_READER_HUGE_FILE occurs: Since the sXML reader was not cleared with the beginning of each node, the last read string of the table was carried over into the next string . Added unit test ```test_shared_string_some_empty``` to reproduce the bug, and fixed it in the way proposed by Kai Walter (see Def-376)
This commit is contained in:
parent
95cb4b2f83
commit
959b02aa12
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<CLAS CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" VERSION="1" LANGU="E" DESCRIPT="Can read large .xlsx files" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" WITH_UNIT_TESTS="X" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_READER_2007">
|
<CLAS CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" VERSION="1" LANGU="D" DESCRIPT="Can read large .xlsx files" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" WITH_UNIT_TESTS="X" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_READER_2007">
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="T_CELL_CONTENT" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="4 " SRCCOLUMN1="4 " SRCROW2="9 " SRCCOLUMN2="24 " TYPESRC_LENG="219 " TYPESRC="begin of t_cell_content,
|
<types CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="T_CELL_CONTENT" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="4 " SRCCOLUMN1="4 " SRCROW2="9 " SRCCOLUMN2="24 " TYPESRC_LENG="219 " TYPESRC="begin of t_cell_content,
|
||||||
|
|
||||||
datatype type zexcel_cell_data_type,
|
datatype type zexcel_cell_data_type,
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
end of t_cell_content
|
end of t_cell_content
|
||||||
|
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="T_CELL_COORD" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="11 " SRCCOLUMN1="4 " SRCROW2="14 " SRCCOLUMN2="22 " TYPESRC_LENG="134 " TYPESRC="begin of t_cell_coord,
|
<types CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="T_CELL_COORD" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="11 " SRCCOLUMN1="4 " SRCROW2="14 " SRCCOLUMN2="22 " TYPESRC_LENG="134 " TYPESRC="begin of t_cell_coord,
|
||||||
|
|
||||||
row type zexcel_cell_row,
|
row type zexcel_cell_row,
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
end of t_cell_coord
|
end of t_cell_coord
|
||||||
|
|
||||||
"/>
|
"/>
|
||||||
<types CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="T_CELL" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="16 " SRCCOLUMN1="4 " SRCROW2="19 " SRCCOLUMN2="21 " TYPESRC_LENG="140 " TYPESRC="begin of t_cell.
|
<types CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="T_CELL" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="16 " SRCCOLUMN1="4 " SRCROW2="19 " SRCCOLUMN2="21 " TYPESRC_LENG="140 " TYPESRC="begin of t_cell.
|
||||||
|
|
||||||
include type t_cell_coord as coord.
|
include type t_cell_coord as coord.
|
||||||
|
|
||||||
|
@ -86,6 +86,7 @@ class lcl_test definition for testing " #AU Risk_Level Harmless
|
||||||
test_style_missing for testing,
|
test_style_missing for testing,
|
||||||
test_formula for testing,
|
test_formula for testing,
|
||||||
test_read_shared_strings for testing,
|
test_read_shared_strings for testing,
|
||||||
|
test_shared_string_some_empty for testing,
|
||||||
test_skip_to_inexistent for testing,
|
test_skip_to_inexistent for testing,
|
||||||
get_reader importing iv_xml type string returning value(eo_reader) type ref to if_sxml_reader,
|
get_reader importing iv_xml type string returning value(eo_reader) type ref to if_sxml_reader,
|
||||||
assert_value_equals importing iv_row type i default 1 iv_col type i default 1 iv_value type string,
|
assert_value_equals importing iv_row type i default 1 iv_col type i default 1 iv_value type string,
|
||||||
|
@ -261,6 +262,31 @@ class lcl_test implementation.
|
||||||
|
|
||||||
endmethod.
|
endmethod.
|
||||||
|
|
||||||
|
*
|
||||||
|
method test_shared_string_some_empty.
|
||||||
|
data: lo_reader type ref to if_sxml_reader,
|
||||||
|
lt_act type stringtab,
|
||||||
|
lt_exp type stringtab.
|
||||||
|
lo_reader = cl_sxml_string_reader=>create( cl_abap_codepage=>convert_to(
|
||||||
|
`<sst><si><t/></si>` &
|
||||||
|
`<si><t>Alpha</t></si>` &
|
||||||
|
`<si><t/></si>` &
|
||||||
|
`<si><t>Bravo</t></si></sst>`
|
||||||
|
) ).
|
||||||
|
append :
|
||||||
|
`` to lt_exp,
|
||||||
|
`Alpha` to lt_exp,
|
||||||
|
`` to lt_exp,
|
||||||
|
`Bravo` to lt_exp.
|
||||||
|
|
||||||
|
lt_act = out->read_shared_strings( lo_reader ).
|
||||||
|
|
||||||
|
assert_equals( act = lt_act
|
||||||
|
exp = lt_exp ).
|
||||||
|
|
||||||
|
endmethod.
|
||||||
|
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_skip_to_inexistent.
|
method test_skip_to_inexistent.
|
||||||
data: lo_c2x type ref to cl_abap_conv_out_ce,
|
data: lo_c2x type ref to cl_abap_conv_out_ce,
|
||||||
|
@ -360,12 +386,12 @@ class lcl_test implementation.
|
||||||
endmethod. "setup
|
endmethod. "setup
|
||||||
endclass. "lcl_test IMPLEMENTATION</localTestClasses>
|
endclass. "lcl_test IMPLEMENTATION</localTestClasses>
|
||||||
<typeIntfDef CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" TYPEGROUP="IF_SXML_NODE" VERSION="1" TPUTYPE="2" IMPLICIT="X"/>
|
<typeIntfDef CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" TYPEGROUP="IF_SXML_NODE" VERSION="1" TPUTYPE="2" IMPLICIT="X"/>
|
||||||
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_ATTRIBUTE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_ATTRIBUTE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_ATTRIBUTE" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_ATTRIBUTE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||||
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_ELEMENT_CLOSE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_ELEMENT_CLOSE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_ELEMENT_CLOSE" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_ELEMENT_CLOSE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||||
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_ELEMENT_OPEN" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_ELEMENT_OPEN" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_ELEMENT_OPEN" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_ELEMENT_OPEN" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||||
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_END_OF_STREAM" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_FINAL" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_END_OF_STREAM" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_FINAL" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||||
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_NODE_VALUE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_VALUE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="C_NODE_VALUE" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="IF_SXML_NODE=>CO_NT_VALUE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=>NODE_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
||||||
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GS_BUFFER_STYLE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="26 " SRCCOLUMN1="4 " SRCROW2="29 " SRCCOLUMN2="25 " TYPESRC_LENG="117 " TYPESRC="begin of gs_buffer_style,
|
<attribute CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GS_BUFFER_STYLE" VERSION="1" LANGU="D" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="25 " SRCCOLUMN1="4 " SRCROW2="28 " SRCCOLUMN2="25 " TYPESRC_LENG="117 " TYPESRC="begin of gs_buffer_style,
|
||||||
|
|
||||||
index type i value -1,
|
index type i value -1,
|
||||||
|
|
||||||
|
@ -378,10 +404,10 @@ endclass. "lcl_test IMPLEMENTATION</localTestClasses>
|
||||||
<redefinition CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" REFCLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" MTDNAME="LOAD_SHARED_STRINGS" EXPOSURE="1"/>
|
<redefinition CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" REFCLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" MTDNAME="LOAD_SHARED_STRINGS" EXPOSURE="1"/>
|
||||||
<redefinition CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" REFCLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" MTDNAME="LOAD_WORKSHEET" EXPOSURE="1"/>
|
<redefinition CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" REFCLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" MTDNAME="LOAD_WORKSHEET" EXPOSURE="1"/>
|
||||||
</inheritance>
|
</inheritance>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" VERSION="1" LANGU="E" DESCRIPT="Fill some cell properties from <c> element attributes" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" VERSION="1" LANGU="D" DESCRIPT="Fill some cell properties from <c> element attributes" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" SCONAME="IO_READER" VERSION="1" LANGU="E" DESCRIPT="SXML Reader Interface" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" SCONAME="IO_READER" VERSION="1" LANGU="D" DESCRIPT="SXML Reader Interface" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" SCONAME="ES_CELL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_CELL"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" SCONAME="ES_CELL" VERSION="1" LANGU="D" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_CELL"/>
|
||||||
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="1 "/>
|
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="D" MTDTYPE="0" EDITORDER="1 "/>
|
||||||
<source>method FILL_CELL_FROM_ATTRIBUTES.
|
<source>method FILL_CELL_FROM_ATTRIBUTES.
|
||||||
|
|
||||||
while io_reader->node_type ne c_end_of_stream.
|
while io_reader->node_type ne c_end_of_stream.
|
||||||
|
@ -403,9 +429,9 @@ endclass. "lcl_test IMPLEMENTATION</localTestClasses>
|
||||||
|
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_CELL_COORD" VERSION="1" LANGU="E" DESCRIPT='Cell coordinates from expression (like "B2")' EXPOSURE="0" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_CELL_COORD" VERSION="1" LANGU="D" DESCRIPT='Cell coordinates from expression (like "B2")' EXPOSURE="0" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_CELL_COORD" SCONAME="IV_COORD" 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_HUGE_FILE" CMPNAME="GET_CELL_COORD" SCONAME="IV_COORD" 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_HUGE_FILE" CMPNAME="GET_CELL_COORD" SCONAME="ES_COORD" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_CELL_COORD"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_CELL_COORD" SCONAME="ES_COORD" VERSION="1" LANGU="D" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_CELL_COORD"/>
|
||||||
<source>method GET_CELL_COORD.
|
<source>method GET_CELL_COORD.
|
||||||
|
|
||||||
zcl_excel_common=>convert_columnrow2column_a_row(
|
zcl_excel_common=>convert_columnrow2column_a_row(
|
||||||
|
@ -418,10 +444,10 @@ endmethod.</source>
|
||||||
|
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SHARED_STRING" VERSION="1" LANGU="E" DESCRIPT="Read from shared string table" EXPOSURE="0" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SHARED_STRING" VERSION="1" LANGU="D" DESCRIPT="Read from shared string table" EXPOSURE="0" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SHARED_STRING" SCONAME="IV_INDEX" VERSION="1" LANGU="E" DESCRIPT="Zero-based Index" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SHARED_STRING" SCONAME="IV_INDEX" VERSION="1" LANGU="D" DESCRIPT="Zero-based Index" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SHARED_STRING" SCONAME="EV_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SHARED_STRING" SCONAME="EV_VALUE" VERSION="1" LANGU="D" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
|
||||||
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SHARED_STRING" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="1 "/>
|
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SHARED_STRING" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="D" MTDTYPE="0" EDITORDER="1 "/>
|
||||||
<source>method GET_SHARED_STRING.
|
<source>method GET_SHARED_STRING.
|
||||||
data: lv_tabix type i,
|
data: lv_tabix type i,
|
||||||
lv_error type string.
|
lv_error type string.
|
||||||
|
@ -435,10 +461,10 @@ endmethod.</source>
|
||||||
endif.
|
endif.
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" VERSION="1" LANGU="E" DESCRIPT="Read from style table" EXPOSURE="0" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" VERSION="1" LANGU="D" DESCRIPT="Read from style table" EXPOSURE="0" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" SCONAME="IV_INDEX" VERSION="1" LANGU="E" DESCRIPT="Zero-based Index" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" SCONAME="IV_INDEX" VERSION="1" LANGU="D" DESCRIPT="Zero-based Index" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" SCONAME="EV_STYLE_GUID" VERSION="1" LANGU="E" DESCRIPT="Style ID" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" SCONAME="EV_STYLE_GUID" VERSION="1" LANGU="D" DESCRIPT="Style ID" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
|
||||||
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="1 "/>
|
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="D" MTDTYPE="0" EDITORDER="1 "/>
|
||||||
<source>method GET_STYLE.
|
<source>method GET_STYLE.
|
||||||
|
|
||||||
data: lv_tabix type i,
|
data: lv_tabix type i,
|
||||||
|
@ -463,10 +489,10 @@ endmethod.</source>
|
||||||
|
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SXML_READER" VERSION="1" LANGU="E" DESCRIPT="Create an sXML reader for an XML file in the zip archive" EXPOSURE="0" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SXML_READER" VERSION="1" LANGU="D" DESCRIPT="Create an sXML reader for an XML file in the zip archive" EXPOSURE="0" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SXML_READER" SCONAME="IV_PATH" VERSION="1" LANGU="E" DESCRIPT="Path of the file in the archive" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SXML_READER" SCONAME="IV_PATH" VERSION="1" LANGU="D" DESCRIPT="Path of the file in the archive" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SXML_READER" SCONAME="EO_READER" VERSION="1" LANGU="E" DESCRIPT="sXML reader" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SXML_READER" SCONAME="EO_READER" VERSION="1" LANGU="D" DESCRIPT="sXML reader" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
||||||
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SXML_READER" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_SXML_READER" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="D" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
||||||
<source>method GET_SXML_READER.
|
<source>method GET_SXML_READER.
|
||||||
|
|
||||||
data: lv_xml type xstring.
|
data: lv_xml type xstring.
|
||||||
|
@ -499,9 +525,9 @@ endmethod.</source>
|
||||||
|
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="PUT_CELL_TO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Put cell data to worksheet" EXPOSURE="0" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="PUT_CELL_TO_WORKSHEET" VERSION="1" LANGU="D" DESCRIPT="Put cell data to worksheet" EXPOSURE="0" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="PUT_CELL_TO_WORKSHEET" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="PUT_CELL_TO_WORKSHEET" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="D" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="PUT_CELL_TO_WORKSHEET" SCONAME="IS_CELL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="T_CELL"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="PUT_CELL_TO_WORKSHEET" SCONAME="IS_CELL" VERSION="1" LANGU="D" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="T_CELL"/>
|
||||||
<source>method PUT_CELL_TO_WORKSHEET.
|
<source>method PUT_CELL_TO_WORKSHEET.
|
||||||
check is_cell-value is not initial
|
check is_cell-value is not initial
|
||||||
or is_cell-formula is not initial
|
or is_cell-formula is not initial
|
||||||
|
@ -516,25 +542,33 @@ endmethod.</source>
|
||||||
ip_style = is_cell-style.
|
ip_style = is_cell-style.
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_SHARED_STRINGS" VERSION="1" LANGU="E" DESCRIPT="Reads the XML file containing the shared strings" EXPOSURE="0" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_SHARED_STRINGS" VERSION="1" LANGU="D" DESCRIPT="Reads the XML file containing the shared strings" EXPOSURE="0" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_SHARED_STRINGS" SCONAME="IO_READER" VERSION="1" LANGU="E" DESCRIPT="sXML reader" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_SHARED_STRINGS" SCONAME="IO_READER" VERSION="1" LANGU="D" DESCRIPT="sXML reader" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_SHARED_STRINGS" SCONAME="ET_SHARED_STRINGS" VERSION="1" LANGU="E" DESCRIPT="Table with Strings" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRINGTAB"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_SHARED_STRINGS" SCONAME="ET_SHARED_STRINGS" VERSION="1" LANGU="D" DESCRIPT="Table with Strings" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRINGTAB"/>
|
||||||
<source>method READ_SHARED_STRINGS.
|
<source>method read_shared_strings.
|
||||||
|
|
||||||
|
data lv_value type string.
|
||||||
|
|
||||||
while io_reader->node_type ne c_end_of_stream.
|
while io_reader->node_type ne c_end_of_stream.
|
||||||
io_reader->next_node( ).
|
io_reader->next_node( ).
|
||||||
if io_reader->node_type eq c_element_close and
|
if io_reader->name eq `t`.
|
||||||
io_reader->name eq `t`.
|
case io_reader->node_type .
|
||||||
append io_reader->value to et_shared_strings.
|
when c_element_open .
|
||||||
|
clear lv_value .
|
||||||
|
when c_node_value .
|
||||||
|
lv_value = lv_value && io_reader->value .
|
||||||
|
when c_element_close .
|
||||||
|
append lv_value to et_shared_strings.
|
||||||
|
endcase .
|
||||||
endif.
|
endif.
|
||||||
endwhile.
|
endwhile.
|
||||||
|
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" VERSION="1" LANGU="E" DESCRIPT="Reads the data, formula and styles of the worksheet's cells" EXPOSURE="0" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" VERSION="1" LANGU="D" DESCRIPT="Reads the data, formula and styles of the worksheet's cells" EXPOSURE="0" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" SCONAME="IO_READER" VERSION="1" LANGU="E" DESCRIPT="Worksheet reader" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" SCONAME="IO_READER" VERSION="1" LANGU="D" DESCRIPT="Worksheet reader" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="D" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
||||||
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="1 "/>
|
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="D" MTDTYPE="0" EDITORDER="1 "/>
|
||||||
<source>method READ_WORKSHEET_DATA.
|
<source>method READ_WORKSHEET_DATA.
|
||||||
|
|
||||||
data: ls_cell type t_cell.
|
data: ls_cell type t_cell.
|
||||||
|
@ -575,10 +609,10 @@ endmethod.</source>
|
||||||
|
|
||||||
endmethod.</source>
|
endmethod.</source>
|
||||||
</method>
|
</method>
|
||||||
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="SKIP_TO" VERSION="1" LANGU="E" DESCRIPT="Go ahead till element with given name is found" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="SKIP_TO" VERSION="1" LANGU="D" DESCRIPT="Go ahead till element with given name is found" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
||||||
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="SKIP_TO" SCONAME="IV_ELEMENT_NAME" 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_HUGE_FILE" CMPNAME="SKIP_TO" SCONAME="IV_ELEMENT_NAME" 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_HUGE_FILE" CMPNAME="SKIP_TO" SCONAME="IO_READER" VERSION="1" LANGU="E" DESCRIPT="SXML Reader Interface" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
<parameter CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="SKIP_TO" SCONAME="IO_READER" VERSION="1" LANGU="D" DESCRIPT="SXML Reader Interface" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_SXML_READER"/>
|
||||||
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="SKIP_TO" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="1 "/>
|
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="SKIP_TO" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="D" MTDTYPE="0" EDITORDER="1 "/>
|
||||||
<source>method SKIP_TO.
|
<source>method SKIP_TO.
|
||||||
|
|
||||||
data: lv_error type string.
|
data: lv_error type string.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user