abap2xlsx/ZA2X/CLAS/ZCL_EXCEL_TABLE.slnk
Stefan Schmöcker d4c658e856 set to test #246
git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@406 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
2013-01-29 21:59:27 +00:00

299 lines
24 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<CLAS CLSNAME="ZCL_EXCEL_TABLE" VERSION="1" LANGU="E" DESCRIPT="Represents Excel Table" UUID="A1497B4C00CDF215E1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<publicSection>class ZCL_EXCEL_TABLE definition
public
final
create public .
*&quot;* public components of class ZCL_EXCEL_TABLE
*&quot;* do not include other source files here!!!
public section.
type-pools ABAP .
constants BUILTINSTYLE_DARK1 type ZEXCEL_TABLE_STYLE value &apos;TableStyleDark1&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_DARK2 type ZEXCEL_TABLE_STYLE value &apos;TableStyleDark2&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_DARK3 type ZEXCEL_TABLE_STYLE value &apos;TableStyleDark3&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_DARK4 type ZEXCEL_TABLE_STYLE value &apos;TableStyleDark4&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_DARK5 type ZEXCEL_TABLE_STYLE value &apos;TableStyleDark5&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_LIGHT1 type ZEXCEL_TABLE_STYLE value &apos;TableStyleLight1&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_LIGHT2 type ZEXCEL_TABLE_STYLE value &apos;TableStyleLight2&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_LIGHT3 type ZEXCEL_TABLE_STYLE value &apos;TableStyleLight3&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_LIGHT4 type ZEXCEL_TABLE_STYLE value &apos;TableStyleLight4&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_LIGHT5 type ZEXCEL_TABLE_STYLE value &apos;TableStyleLight5&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_MEDIUM1 type ZEXCEL_TABLE_STYLE value &apos;TableStyleMedium1&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_MEDIUM2 type ZEXCEL_TABLE_STYLE value &apos;TableStyleMedium2&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_MEDIUM3 type ZEXCEL_TABLE_STYLE value &apos;TableStyleMedium3&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_MEDIUM4 type ZEXCEL_TABLE_STYLE value &apos;TableStyleMedium4&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_MEDIUM5 type ZEXCEL_TABLE_STYLE value &apos;TableStyleMedium5&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_MEDIUM9 type ZEXCEL_TABLE_STYLE value &apos;TableStyleMedium9&apos;. &quot;#EC NOTEXT
constants BUILTINSTYLE_PIVOT_LIGHT16 type ZEXCEL_TABLE_STYLE value &apos;PivotStyleLight16&apos;. &quot;#EC NOTEXT
data FIELDCAT type ZEXCEL_T_FIELDCATALOG .
data SETTINGS type ZEXCEL_S_TABLE_SETTINGS .
constants TOTALS_FUNCTION_AVERAGE type ZEXCEL_TABLE_TOTALS_FUNCTION value &apos;average&apos;. &quot;#EC NOTEXT
constants TOTALS_FUNCTION_COUNT type ZEXCEL_TABLE_TOTALS_FUNCTION value &apos;count&apos;. &quot;#EC NOTEXT
constants TOTALS_FUNCTION_MAX type ZEXCEL_TABLE_TOTALS_FUNCTION value &apos;max&apos;. &quot;#EC NOTEXT
constants TOTALS_FUNCTION_MIN type ZEXCEL_TABLE_TOTALS_FUNCTION value &apos;min&apos;. &quot;#EC NOTEXT
constants TOTALS_FUNCTION_SUM type ZEXCEL_TABLE_TOTALS_FUNCTION value &apos;sum&apos;. &quot;#EC NOTEXT
methods GET_TOTALS_FORMULA
importing
!IP_COLUMN type CLIKE
!IP_FUNCTION type ZEXCEL_TABLE_TOTALS_FUNCTION
returning
value(EP_FORMULA) type STRING .
methods HAS_TOTALS
returning
value(EP_RESULT) type ABAP_BOOL .
methods SET_DATA
importing
!IR_DATA type STANDARD TABLE .
methods GET_ID
returning
value(OV_ID) type I .
methods SET_ID
importing
!IV_ID type I .
methods CONSTRUCTOR .
methods GET_NAME
returning
value(OV_NAME) type STRING .
methods GET_REFERENCE
importing
!IP_INCLUDE_TOTALS_ROW type ABAP_BOOL default ABAP_TRUE
returning
value(OV_REFERENCE) type STRING .
methods GET_BOTTOM_ROW_INTEGER
returning
value(EV_ROW) type I .
methods GET_RIGHT_COLUMN_INTEGER
returning
value(EV_COLUMN) type I
raising
ZCX_EXCEL .</publicSection>
<protectedSection>*&quot;* protected components of class ZCL_EXCEL_TABLE
*&quot;* do not include other source files here!!!
protected section.</protectedSection>
<privateSection>*&quot;* private components of class ZCL_EXCEL_TABLE
*&quot;* do not include other source files here!!!
private section.
data ID type I .
data NAME type STRING .
data TABLE_DATA type ref to DATA .</privateSection>
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes</localImplementation>
<localTypes>*&quot;* use this source file for any type declarations (class
*&quot;* definitions, interfaces or data types) you need for method
*&quot;* implementation or private method&apos;s signature</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<typeUsage CLSNAME="ZCL_EXCEL_TABLE" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_DARK1" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleDark1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_DARK2" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleDark2&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_DARK3" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleDark3&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_DARK4" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleDark4&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_DARK5" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleDark5&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_LIGHT1" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleLight1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_LIGHT2" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleLight2&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_LIGHT3" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleLight3&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_LIGHT4" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleLight4&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_LIGHT5" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleLight5&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_MEDIUM1" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleMedium1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_MEDIUM2" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleMedium2&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_MEDIUM3" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleMedium3&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_MEDIUM4" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleMedium4&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_MEDIUM5" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleMedium5&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_MEDIUM9" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;TableStyleMedium9&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="BUILTINSTYLE_PIVOT_LIGHT16" VERSION="1" LANGU="E" DESCRIPT="Built in table style" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;PivotStyleLight16&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="FIELDCAT" VERSION="1" LANGU="E" DESCRIPT="field catalog" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_FIELDCATALOG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="ID" VERSION="1" LANGU="E" DESCRIPT="Table ID" EXPOSURE="0" STATE="1" EDITORDER="19 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="I" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="NAME" VERSION="1" LANGU="E" DESCRIPT="A string representing the name of the table" EXPOSURE="0" STATE="1" EDITORDER="20 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="SETTINGS" VERSION="1" LANGU="E" DESCRIPT="table settings" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_TABLE_SETTINGS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="TABLE_DATA" VERSION="1" LANGU="E" DESCRIPT="Ref to data" EXPOSURE="0" STATE="1" EDITORDER="22 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="TOTALS_FUNCTION_AVERAGE" VERSION="1" LANGU="E" DESCRIPT="Totals function" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="2" ATTVALUE="&apos;average&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="TOTALS_FUNCTION_COUNT" VERSION="1" LANGU="E" DESCRIPT="Totals function" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="2" ATTVALUE="&apos;count&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="TOTALS_FUNCTION_MAX" VERSION="1" LANGU="E" DESCRIPT="Totals function" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="2" ATTVALUE="&apos;max&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="TOTALS_FUNCTION_MIN" VERSION="1" LANGU="E" DESCRIPT="Totals function" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="2" ATTVALUE="&apos;min&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="TOTALS_FUNCTION_SUM" VERSION="1" LANGU="E" DESCRIPT="Totals function" EXPOSURE="2" STATE="1" EDITORDER="27 " ATTDECLTYP="2" ATTVALUE="&apos;sum&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_BOTTOM_ROW_INTEGER" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_BOTTOM_ROW_INTEGER" SCONAME="EV_ROW" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>METHOD get_bottom_row_integer.
DATA: lv_table_lines TYPE i.
FIELD-SYMBOLS: &lt;fs_table&gt; TYPE STANDARD TABLE.
IF settings-bottom_right_row IS NOT INITIAL.
* ev_row = zcl_excel_common=&gt;convert_column2int( settings-bottom_right_row ). &quot; del issue #246
ev_row = settings-bottom_right_row . &quot; ins issue #246
EXIT.
ENDIF.
ASSIGN table_data-&gt;* TO &lt;fs_table&gt;.
DESCRIBE TABLE &lt;fs_table&gt; LINES lv_table_lines.
IF lv_table_lines = 0.
lv_table_lines = 1. &quot;table needs at least 1 data row
ENDIF.
ev_row = settings-top_left_row + lv_table_lines.
IF me-&gt;has_totals( ) = abap_true.&quot; ???? AND ip_include_totals_row = abap_true.
ADD 1 TO ev_row.
ENDIF.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_ID" VERSION="1" LANGU="E" DESCRIPT="Gets the ID" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_ID" SCONAME="OV_ID" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method GET_ID.
ov_id = id.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_NAME" VERSION="1" LANGU="E" DESCRIPT="Gets the name" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_NAME" SCONAME="OV_NAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_NAME.
IF me-&gt;name IS INITIAL.
me-&gt;name = zcl_excel_common=&gt;number_to_excel_string( ip_value = me-&gt;id ).
CONCATENATE &apos;table&apos; me-&gt;name INTO me-&gt;name.
ENDIF.
ov_name = me-&gt;name.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_REFERENCE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_REFERENCE" SCONAME="IP_INCLUDE_TOTALS_ROW" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_BOOL" PARVALUE="ABAP_TRUE"/>
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_REFERENCE" SCONAME="OV_REFERENCE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_REFERENCE.
DATA: lv_column TYPE zexcel_cell_column,
lv_table_lines TYPE i,
lv_right_column TYPE zexcel_cell_column_alpha,
ls_field_catalog TYPE zexcel_s_fieldcatalog,
lv_bottom_row TYPE zexcel_cell_row,
lv_top_row_string(10) TYPE c,
lv_bottom_row_string(10) TYPE c.
FIELD-SYMBOLS: &lt;fs_table&gt; TYPE STANDARD TABLE.
*column
lv_column = zcl_excel_common=&gt;convert_column2int( settings-top_left_column ).
lv_table_lines = 0.
LOOP AT fieldcat INTO ls_field_catalog WHERE dynpfld EQ abap_true.
ADD 1 TO lv_table_lines.
ENDLOOP.
lv_column = lv_column + lv_table_lines - 1.
lv_right_column = zcl_excel_common=&gt;convert_column2alpha( lv_column ).
*row
ASSIGN table_data-&gt;* TO &lt;fs_table&gt;.
DESCRIBE TABLE &lt;fs_table&gt; LINES lv_table_lines.
IF lv_table_lines = 0.
lv_table_lines = 1. &quot;table needs at least 1 data row
ENDIF.
lv_bottom_row = settings-top_left_row + lv_table_lines .
IF me-&gt;has_totals( ) = abap_true AND ip_include_totals_row = abap_true.
ADD 1 TO lv_bottom_row.
ENDIF.
lv_top_row_string = zcl_excel_common=&gt;number_to_excel_string( settings-top_left_row ).
lv_bottom_row_string = zcl_excel_common=&gt;number_to_excel_string( lv_bottom_row ).
CONCATENATE settings-top_left_column lv_top_row_string
&apos;:&apos;
lv_right_column lv_bottom_row_string INTO ov_reference.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_RIGHT_COLUMN_INTEGER" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_RIGHT_COLUMN_INTEGER" SCONAME="EV_COLUMN" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<exception CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_RIGHT_COLUMN_INTEGER" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>METHOD get_right_column_integer.
DATA: lv_column TYPE zexcel_cell_column,
lv_table_lines TYPE i,
ls_field_catalog TYPE zexcel_s_fieldcatalog.
IF settings-bottom_right_column IS NOT INITIAL.
ev_column = zcl_excel_common=&gt;convert_column2int( settings-bottom_right_column ).
EXIT.
ENDIF.
ev_column = zcl_excel_common=&gt;convert_column2int( settings-top_left_column ).
LOOP AT fieldcat INTO ls_field_catalog WHERE dynpfld EQ abap_true.
ADD 1 TO ev_column.
ENDLOOP.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_TOTALS_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Returns formula for totals row based on column name and fun" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_TOTALS_FORMULA" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_TOTALS_FORMULA" SCONAME="IP_FUNCTION" VERSION="1" LANGU="E" DESCRIPT="Totals function for table column (xml ST_TotalsRowFunction)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION"/>
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_TOTALS_FORMULA" SCONAME="EP_FORMULA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_TOTALS_FORMULA.
CONSTANTS: lc_function_id_sum TYPE string VALUE &apos;109&apos;,
lc_function_id_min TYPE string VALUE &apos;105&apos;,
lc_function_id_max TYPE string VALUE &apos;104&apos;,
lc_function_id_count TYPE string VALUE &apos;103&apos;,
lc_function_id_average TYPE string VALUE &apos;101&apos;.
DATA: lv_function_id TYPE string.
CASE ip_function.
WHEN zcl_excel_table=&gt;totals_function_sum.
lv_function_id = lc_function_id_sum.
WHEN zcl_excel_table=&gt;totals_function_min.
lv_function_id = lc_function_id_min.
WHEN zcl_excel_table=&gt;totals_function_max.
lv_function_id = lc_function_id_max.
WHEN zcl_excel_table=&gt;totals_function_count.
lv_function_id = lc_function_id_count.
WHEN zcl_excel_table=&gt;totals_function_average.
lv_function_id = lc_function_id_average.
WHEN OTHERS.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Invalid totals formula. See ZCL_ for possible values&apos;.
ENDCASE.
CONCATENATE &apos;SUBTOTAL(&apos; lv_function_id &apos;,[&apos; ip_column &apos;])&apos; INTO ep_formula.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="HAS_TOTALS" VERSION="1" LANGU="E" DESCRIPT="Determines if any column has totals function" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="HAS_TOTALS" SCONAME="EP_RESULT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<source>method HAS_TOTALS.
DATA: ls_field_catalog TYPE zexcel_s_fieldcatalog.
ep_result = abap_false.
LOOP AT fieldcat INTO ls_field_catalog.
IF ls_field_catalog-totals_function IS NOT INITIAL.
ep_result = abap_true.
EXIT.
ENDIF.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="SET_DATA" VERSION="1" LANGU="E" DESCRIPT="Sets the reference to table data" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="SET_DATA" SCONAME="IR_DATA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<source>method SET_DATA.
GET REFERENCE OF ir_data INTO me-&gt;table_data.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="SET_ID" VERSION="1" LANGU="E" DESCRIPT="Sets the ID" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="SET_ID" SCONAME="IV_ID" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<source>method SET_ID.
id = iv_id.
endmethod.</source>
</method>
</CLAS>