Issues #346,#154, #195: Problems when there is information in row_dimension but no cell content in that row

This commit is contained in:
StefanSchmoecker 2015-01-03 10:27:54 +01:00
parent f60604601a
commit 90e805c9bf

View File

@ -18,7 +18,7 @@
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_CALCCHAIN" VERSION="1" LANGU="E" DESCRIPT="xlcalcChain XML File Name" EXPOSURE="1" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;xl/calcChain.xml&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_DRAWINGS" VERSION="1" LANGU="E" DESCRIPT="xlDrawings XML File Name" EXPOSURE="1" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;xl/drawings/drawing#.xml&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_DRAWINGS_RELS" VERSION="1" LANGU="E" DESCRIPT="xlDrawings XML File Name" EXPOSURE="1" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;xl/drawings/_rels/drawing#.xml.rels&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_PRINTERSETTINGS" VERSION="1" LANGU="E" DESCRIPT="xlDrawings XML File Name" EXPOSURE="1" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTVALUE="&apos;xl/printerSettings/printerSettings#.bin&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_PRINTERSETTINGS" VERSION="1" LANGU="E" DESCRIPT="xlDrawings XML File Name" EXPOSURE="0" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTVALUE="&apos;xl/printerSettings/printerSettings#.bin&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_RELATIONSHIPS" VERSION="1" LANGU="E" DESCRIPT="xlRels XML File Name" EXPOSURE="1" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;xl/_rels/workbook.xml.rels&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_SHAREDSTRINGS" VERSION="1" LANGU="E" DESCRIPT="xlSharedStrings XML File Name" EXPOSURE="1" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;xl/sharedStrings.xml&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_SHEET" VERSION="1" LANGU="E" DESCRIPT="xlSheet XML File Name Template" EXPOSURE="1" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;xl/worksheets/sheet#.xml&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
@ -28,8 +28,8 @@
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_WORKBOOK" VERSION="1" LANGU="E" DESCRIPT="xlWorkbook XML File Name" EXPOSURE="1" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;xl/workbook.xml&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" EXPOSURE="1" STATE="1" EDITORDER="17 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="SHARED_STRINGS" VERSION="1" LANGU="E" DESCRIPT="Shared Strings" EXPOSURE="0" STATE="1" EDITORDER="18 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_SHARED_STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="STYLES_COND_MAPPING" VERSION="1" LANGU="E" DESCRIPT="Styles mapping" EXPOSURE="0" STATE="1" EDITORDER="19 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLES_COND_MAPPING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="STYLES_MAPPING" VERSION="1" LANGU="E" DESCRIPT="Styles mapping" EXPOSURE="0" STATE="1" EDITORDER="20 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLES_MAPPING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="STYLES_COND_MAPPING" VERSION="1" LANGU="E" DESCRIPT="Styles mapping" EXPOSURE="1" STATE="1" EDITORDER="19 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLES_COND_MAPPING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="STYLES_MAPPING" VERSION="1" LANGU="E" DESCRIPT="Styles mapping" EXPOSURE="1" STATE="1" EDITORDER="20 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLES_MAPPING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<interfaceMethod CLSNAME="ZCL_EXCEL_WRITER_2007" CPDNAME="ZIF_EXCEL_WRITER~WRITE_FILE">
<source>method ZIF_EXCEL_WRITER~WRITE_FILE.
me-&gt;excel = io_excel.
@ -2644,7 +2644,7 @@
*--------------------------------------------------------------------*
TYPES: BEGIN OF colors,
colorrgb TYPE zexcel_color,
colorrgb TYPE zexcel_color,
END OF colors.
*--------------------------------------------------------------------*
@ -2653,18 +2653,18 @@
*--------------------------------------------------------------------*
TYPES: BEGIN OF cfvo,
value TYPE zexcel_conditional_value,
type TYPE zexcel_conditional_type,
value TYPE zexcel_conditional_value,
type TYPE zexcel_conditional_type,
END OF cfvo.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Declarations 1 - start
*--------------------------------------------------------------------*
TYPES: BEGIN OF lty_table_area,
left TYPE i,
right TYPE i,
top TYPE i,
bottom TYPE i,
left TYPE i,
right TYPE i,
top TYPE i,
bottom TYPE i,
END OF lty_table_area.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Declarations 1 - end
@ -2816,11 +2816,11 @@
lc_xml_attr_tabcolor_rgb TYPE string VALUE &apos;rgb&apos;,
lc_xml_attr_tabcolor_theme TYPE string VALUE &apos;theme&apos;,
&quot; Node namespace
lc_xml_node_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/spreadsheetml/2006/main&apos;,
lc_xml_node_r_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships&apos;,
lc_xml_node_comp_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/markup-compatibility/2006&apos;,
lc_xml_node_comp_pref TYPE string VALUE &apos;x14ac&apos;,
lc_xml_node_ig_ns TYPE string VALUE &apos;http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac&apos;.
lc_xml_node_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/spreadsheetml/2006/main&apos;,
lc_xml_node_r_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships&apos;,
lc_xml_node_comp_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/markup-compatibility/2006&apos;,
lc_xml_node_comp_pref TYPE string VALUE &apos;x14ac&apos;,
lc_xml_node_ig_ns TYPE string VALUE &apos;http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
@ -2838,6 +2838,7 @@
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_table TYPE REF TO zcl_excel_table,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi,
default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime,
default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
@ -2870,6 +2871,10 @@
lv_relation_id TYPE i VALUE 0,
outline_level_row TYPE i VALUE 0,
outline_level_col TYPE i VALUE 0,
lv_current_row TYPE i,
lv_next_row TYPE i,
ls_sheet_content LIKE LINE OF io_worksheet-&gt;sheet_content,
ls_sheet_content_empty LIKE LINE OF io_worksheet-&gt;sheet_content,
col_count TYPE int4,
merge_count TYPE int4,
write_current_row TYPE boolean,
@ -3353,79 +3358,108 @@
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Coding 1 - end
*--------------------------------------------------------------------*
LOOP AT io_worksheet-&gt;sheet_content ASSIGNING &lt;ls_sheet_content&gt;.
LOOP AT io_worksheet-&gt;sheet_content INTO ls_sheet_content.
READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column.
IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value.
CLEAR l_autofilter_hidden.
ENDIF.
CLEAR ls_style_mapping.
IF ls_last_row-cell_row NE &lt;ls_sheet_content&gt;-cell_row.
IF lo_autofilter IS BOUND.
IF ls_area-row_start &gt;= ls_last_row-cell_row OR &quot; One less for header
ls_area-row_end &lt; ls_last_row-cell_row .
* Create row element
* issues #346,#154, #195 - problems when we have information in row_dimension but no cell content in that row
* Get next line that may have to be added. If we have empty lines this is the next line after previous cell content
* Otherwise it is the line of the current cell content
lv_current_row = ls_last_row-cell_row + 1.
IF lv_current_row &gt; ls_sheet_content-cell_row.
lv_current_row = ls_sheet_content-cell_row.
ENDIF.
* Fill in empty lines if necessary - assign an emtpy sheet content
lv_next_row = lv_current_row.
WHILE lv_next_row &lt;= ls_sheet_content-cell_row.
lv_current_row = lv_next_row.
lv_next_row = lv_current_row + 1.
IF lv_current_row = ls_sheet_content-cell_row. &quot; cell value found in this row
ASSIGN ls_sheet_content TO &lt;ls_sheet_content&gt;.
ELSE.
* Check if empty row is really necessary - this is basically the case when we have information in row_dimension
lo_row_dim_empty = io_worksheet-&gt;get_row_dimension( lv_current_row ).
CHECK lo_row_dim_empty-&gt;get_row_height( ) &gt;= 0 OR
lo_row_dim_empty-&gt;get_collapsed( ) = abap_true OR
lo_row_dim_empty-&gt;get_outline_level( ) &gt; 0 OR
lo_row_dim_empty-&gt;get_xf_index( ) &lt;&gt; 0.
&quot; Dummyentry A1
ls_sheet_content_empty-cell_row = lv_current_row.
ls_sheet_content_empty-cell_column = 1.
ASSIGN ls_sheet_content_empty TO &lt;ls_sheet_content&gt;.
ENDIF.
IF ls_last_row-cell_row NE &lt;ls_sheet_content&gt;-cell_row.
IF lo_autofilter IS BOUND.
IF ls_area-row_start &gt;= ls_last_row-cell_row OR &quot; One less for header
ls_area-row_end &lt; ls_last_row-cell_row .
CLEAR l_autofilter_hidden.
ENDIF.
ELSE.
CLEAR l_autofilter_hidden.
ENDIF.
ELSE.
CLEAR l_autofilter_hidden.
ENDIF.
IF ls_last_row-cell_row IS NOT INITIAL.
&quot; Row visibility of previos row.
IF row_dimension-&gt;get_visible( ) = abap_false OR
l_autofilter_hidden = abap_true.
lo_element_2-&gt;set_attribute_ns( name = &apos;hidden&apos; value = &apos;true&apos;).
IF ls_last_row-cell_row IS NOT INITIAL.
&quot; Row visibility of previos row.
IF row_dimension-&gt;get_visible( ) = abap_false OR
l_autofilter_hidden = abap_true.
lo_element_2-&gt;set_attribute_ns( name = &apos;hidden&apos; value = &apos;true&apos;).
ENDIF.
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; row node
ENDIF.
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; row node
ENDIF.
&quot; Add new row
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_row
parent = lo_document ).
&quot; r
lv_value = &lt;ls_sheet_content&gt;-cell_row.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
&quot; Add new row
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_row
parent = lo_document ).
&quot; r
lv_value = &lt;ls_sheet_content&gt;-cell_row.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_r
value = lv_value ).
&quot; Spans
lv_value = col_count.
CONCATENATE &apos;1:&apos; lv_value INTO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_spans
value = lv_value ).
row_dimension = io_worksheet-&gt;get_row_dimension( &lt;ls_sheet_content&gt;-cell_row ).
&quot; Do we need the row dimension attributes?
IF row_dimension-&gt;get_row_height( ) &gt;= 0 OR
row_dimension-&gt;get_collapsed( ) = abap_true OR
row_dimension-&gt;get_outline_level( ) &gt; 0 OR
row_dimension-&gt;get_xf_index( ) &lt;&gt; 0 OR
l_autofilter_hidden = abap_true.
&quot; Row dimensions
IF row_dimension-&gt;get_row_height( ) &gt;= 0.
lo_element_2-&gt;set_attribute_ns( name = &apos;customHeight&apos; value = &apos;1&apos;).
lv_value = row_dimension-&gt;get_row_height( ).
lo_element_2-&gt;set_attribute_ns( name = &apos;ht&apos; value = lv_value ).
ENDIF.
&quot; Collapsed
IF row_dimension-&gt;get_collapsed( ) = abap_true.
lo_element_2-&gt;set_attribute_ns( name = &apos;collapsed&apos; value = &apos;true&apos;).
ENDIF.
&quot; Outline level
IF row_dimension-&gt;get_outline_level( ) &gt; 0.
lv_value = row_dimension-&gt;get_outline_level( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2-&gt;set_attribute_ns( name = &apos;outlineLevel&apos; value = lv_value ).
ENDIF.
&quot; Style
IF row_dimension-&gt;get_xf_index( ) &lt;&gt; 0.
lv_value = row_dimension-&gt;get_xf_index( ).
lo_element_2-&gt;set_attribute_ns( name = &apos;s&apos; value = lv_value ).
lo_element_2-&gt;set_attribute_ns( name = &apos;customFormat&apos; value = &apos;1&apos;).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_r
value = lv_value ).
&quot; Spans
lv_value = col_count.
CONCATENATE &apos;1:&apos; lv_value INTO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_spans
value = lv_value ).
row_dimension = io_worksheet-&gt;get_row_dimension( &lt;ls_sheet_content&gt;-cell_row ).
&quot; Do we need the row dimension attributes?
IF row_dimension-&gt;get_row_height( ) &gt;= 0 OR
row_dimension-&gt;get_collapsed( ) = abap_true OR
row_dimension-&gt;get_outline_level( ) &gt; 0 OR
row_dimension-&gt;get_xf_index( ) &lt;&gt; 0 OR
l_autofilter_hidden = abap_true.
&quot; Row dimensions
IF row_dimension-&gt;get_row_height( ) &gt;= 0.
lo_element_2-&gt;set_attribute_ns( name = &apos;customHeight&apos; value = &apos;1&apos;).
lv_value = row_dimension-&gt;get_row_height( ).
lo_element_2-&gt;set_attribute_ns( name = &apos;ht&apos; value = lv_value ).
ENDIF.
&quot; Collapsed
IF row_dimension-&gt;get_collapsed( ) = abap_true.
lo_element_2-&gt;set_attribute_ns( name = &apos;collapsed&apos; value = &apos;true&apos;).
ENDIF.
&quot; Outline level
IF row_dimension-&gt;get_outline_level( ) &gt; 0.
lv_value = row_dimension-&gt;get_outline_level( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2-&gt;set_attribute_ns( name = &apos;outlineLevel&apos; value = lv_value ).
ENDIF.
&quot; Style
IF row_dimension-&gt;get_xf_index( ) &lt;&gt; 0.
lv_value = row_dimension-&gt;get_xf_index( ).
lo_element_2-&gt;set_attribute_ns( name = &apos;s&apos; value = lv_value ).
lo_element_2-&gt;set_attribute_ns( name = &apos;customFormat&apos; value = &apos;1&apos;).
ENDIF.
ENDIF.
l_autofilter_hidden = abap_true. &quot; First default is not showing
ENDIF.
l_autofilter_hidden = abap_true. &quot; First default is not showing
ENDIF.
ENDWHILE.
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_c
parent = lo_document ).
@ -3508,7 +3542,7 @@
lo_element_4 = lo_document-&gt;create_simple_element( name = lc_xml_node_v
parent = lo_document ).
IF &lt;ls_sheet_content&gt;-data_type EQ &apos;s&apos; or &lt;ls_sheet_content&gt;-data_type EQ &apos;s_leading_blanks&apos;.
IF &lt;ls_sheet_content&gt;-data_type EQ &apos;s&apos; OR &lt;ls_sheet_content&gt;-data_type EQ &apos;s_leading_blanks&apos;.
lv_value = me-&gt;get_shared_string_index( &lt;ls_sheet_content&gt;-cell_value ).
CONDENSE lv_value.
lo_element_4-&gt;set_value( value = lv_value ).
@ -4037,7 +4071,7 @@
&quot; Hyperlinks
DATA: lv_hyperlinks_count TYPE i,
lo_link TYPE REF TO zcl_excel_hyperlink.
lo_link TYPE REF TO zcl_excel_hyperlink.
lv_hyperlinks_count = io_worksheet-&gt;get_hyperlinks_size( ).
IF lv_hyperlinks_count &gt; 0.
@ -6174,10 +6208,10 @@ ENDMETHOD.</source>
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="GET_SHARED_STRING_INDEX" VERSION="1" LANGU="E" DESCRIPT="Get shared string index" EXPOSURE="0" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="GET_SHARED_STRING_INDEX" VERSION="1" LANGU="E" DESCRIPT="Get shared string index" EXPOSURE="1" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="GET_SHARED_STRING_INDEX" SCONAME="IP_CELL_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="GET_SHARED_STRING_INDEX" SCONAME="EP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural Number" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT4"/>
<source>method GET_SHARED_STRING_INDEX.
<source>METHOD get_shared_string_index.
DATA ls_shared_string TYPE zexcel_s_shared_string.
@ -6185,6 +6219,6 @@ ENDMETHOD.</source>
READ TABLE shared_strings INTO ls_shared_string WITH KEY string_value = ip_cell_value BINARY SEARCH.
ep_index = ls_shared_string-string_no.
endmethod.</source>
ENDMETHOD.</source>
</method>
</CLAS>