abap2xlsx/build/ABAP2XLSX_V_7_0.nugg
2014-03-18 10:43:04 -05:00

37712 lines
2.7 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<nugget name="ABAP2XLSX">
<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,
sheet TYPE REF TO zcl_excel_worksheet,
row TYPE i,
column TYPE i,
si TYPE i,
ref TYPE string,
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="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,
id TYPE string,
type TYPE string,
target TYPE string,
worksheet TYPE REF TO zcl_excel_worksheet,
sheetid type string, &quot;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,
appname TYPE string,
lastedited TYPE string,
lowestedited TYPE string,
rupbuild TYPE string,
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,
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,
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,
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,
name TYPE string,
hidden type string, &quot;inserted with issue #235 because Autofilters didn&apos;t passthrough
localsheetid TYPE string, &quot; 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_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_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_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_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,
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_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,
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,
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
"/>
<implementing CLSNAME="ZCL_EXCEL_READER_2007" REFCLSNAME="ZIF_EXCEL_READER" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes
TYPES: BEGIN OF t_relationship,
id TYPE string,
type TYPE string,
target TYPE string,
END OF t_relationship.</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>
<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>
<interfaceMethod CLSNAME="ZCL_EXCEL_READER_2007" CPDNAME="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-&gt; 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 &apos;http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties&apos;,
lcv_office_document TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument&apos;.
DATA: lo_rels TYPE REF TO if_ixml_document,
lo_node TYPE REF TO if_ixml_element,
ls_relationship TYPE t_relationship.
*--------------------------------------------------------------------*
* §1 Create EXCEL-Object we want to return to caller
* §2 We need to read the the file &quot;\\_rels\.rels&quot; because it tells
* us where in this folder structure the data for the workbook
* is located in the xlsx zip-archive
*
* The xlsx Zip-archive has generally the following folder structure:
* &lt;root&gt; |
* |--&gt; _rels
* |--&gt; doc_Props
* |--&gt; xl |
* |--&gt; _rels
* |--&gt; theme
* |--&gt; worksheets
* §3 Extracting from this the path&amp;file where the workbook is located
* Following is an example how this file could be set up
* &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;true&quot;?&gt;
* &lt;Relationships xmlns=&quot;http://schemas.openxmlformats.org/package/2006/relationships&quot;&gt;
* &lt;Relationship Target=&quot;docProps/app.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties&quot; Id=&quot;rId3&quot;/&gt;
* &lt;Relationship Target=&quot;docProps/core.xml&quot; Type=&quot;http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties&quot; Id=&quot;rId2&quot;/&gt;
* &lt;Relationship Target=&quot;xl/workbook.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument&quot; Id=&quot;rId1&quot;/&gt;
* &lt;/Relationships&gt;
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* §1 Create EXCEL-Object we want to return to caller
*--------------------------------------------------------------------*
CREATE OBJECT r_excel.
*--------------------------------------------------------------------*
* issue#234 - error reading xlsx written by libre office
me-&gt;zif_excel_reader~gv_use_alternate_zip = i_use_alternate_zip.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* §2 Get file in folderstructure
*--------------------------------------------------------------------*
me-&gt;excel2007 = i_excel2007.
lo_rels = me-&gt;get_ixml_from_zip_archive( &apos;_rels/.rels&apos; ).
*--------------------------------------------------------------------*
* §3 Cycle through the Relationship Tags and use the ones we need
*--------------------------------------------------------------------*
lo_node ?= lo_rels-&gt;find_from_name( &apos;Relationship&apos; ). &quot;#EC NOTEXT
WHILE lo_node IS BOUND.
me-&gt;fill_struct_from_attributes( EXPORTING
ip_element = lo_node
CHANGING
cp_structure = ls_relationship ).
CASE ls_relationship-type.
WHEN lcv_core_properties.
&quot; 2do§1 Map Document Properties to ZCL_EXCEL
WHEN lcv_office_document.
me-&gt;load_workbook( iv_workbook_full_filename = ls_relationship-target
io_excel = r_excel ).
WHEN OTHERS.
ENDCASE.
lo_node ?= lo_node-&gt;get_next( ).
ENDWHILE.
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-&gt;zif_excel_reader~gv_use_alternate_zip = i_use_alternate_zip.
IF i_from_applserver = abap_true.
lv_excel_data = me-&gt;read_from_applserver( i_filename = i_filename ).
ELSE.
lv_excel_data = me-&gt;read_from_local_file( i_filename = i_filename ).
ENDIF.
*--------------------------------------------------------------------*
* issue#234 - error reading xlsx written by libre office
r_excel = me-&gt;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="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.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-11-07
* - ...
* changes: renaming variables to naming conventions
* aligning code
* 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.
FIELD-SYMBOLS: &lt;component&gt; TYPE ANY.
*--------------------------------------------------------------------*
* The values of named attributes of a tag are being read and moved into corresponding
* fields of given structure
* Behaves like move-corresonding tag to structure
* Example:
* &lt;Relationship Target=&quot;docProps/app.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties&quot; Id=&quot;rId3&quot;/&gt;
* Here the attributes are Target, Type and Id. Thus if the passed
* structure has fieldnames Id and Target these would be filled with
* &quot;rId3&quot; and &quot;docProps/app.xml&quot; respectively
*--------------------------------------------------------------------*
CLEAR cp_structure.
lo_attributes = ip_element-&gt;get_attributes( ).
lo_iterator = lo_attributes-&gt;create_iterator( ).
lo_attribute ?= lo_iterator-&gt;get_next( ).
WHILE lo_attribute IS BOUND.
lv_name = lo_attribute-&gt;get_name( ).
TRANSLATE lv_name TO UPPER CASE.
ASSIGN COMPONENT lv_name OF STRUCTURE cp_structure TO &lt;component&gt;.
IF sy-subrc = 0.
&lt;component&gt; = lo_attribute-&gt;get_value( ).
ENDIF.
lo_attribute ?= lo_iterator-&gt;get_next( ).
ENDWHILE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="GET_FROM_ZIP_ARCHIVE" VERSION="1" LANGU="E" DESCRIPT="Read file from ZIP Archive" EXPOSURE="1" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<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
*--------------------------------------------------------------------*
DATA: lv_errormessage TYPE string. &quot; Can&apos;t pass &apos;...&apos;(abc) to exception-class
*--------------------------------------------------------------------*
* An xlsx-file is basically a zip-archive
* From this zip-archive we need to extract one file in binary form
*--------------------------------------------------------------------*
IF me-&gt;zif_excel_reader~gv_use_alternate_zip IS INITIAL. &quot;+#234
*--------------------------------------------------------------------*
* Setup ABAP zip-class with binary exceldata if not done already
*--------------------------------------------------------------------*
IF me-&gt;zip IS NOT BOUND.
CREATE OBJECT me-&gt;zip.
zip-&gt;load( EXPORTING
zip = me-&gt;excel2007
EXCEPTIONS
zip_parse_error = 1
OTHERS = 2 ).
IF sy-subrc &lt;&gt; 0.
lv_errormessage = &apos;ZIP parse error&apos;(002).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* Extract requested filename from archive if possible
*--------------------------------------------------------------------*
zip-&gt;get( EXPORTING
name = i_filename
IMPORTING
content = r_content &quot; Contents
EXCEPTIONS
zip_index_error = 1
zip_decompression_error = 2
OTHERS = 3 ).
IF sy-subrc &lt;&gt; 0.
lv_errormessage = &apos;File not found in zip-archive&apos;(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-&gt;alternate_zip IS NOT BOUND.
CREATE OBJECT me-&gt;alternate_zip TYPE (zif_excel_reader~gv_use_alternate_zip).
TRY.
CALL METHOD me-&gt;alternate_zip-&gt;(&apos;LOAD&apos;)
EXPORTING
zip = me-&gt;excel2007
EXCEPTIONS
zip_parse_error = 1
OTHERS = 2.
CATCH cx_sy_dyn_call_illegal_method.
lv_errormessage = &apos;Method LOAD missing in alternative zipclass&apos;. &quot;#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 &lt;&gt; 0.
lv_errormessage = &apos;ZIP parse error&apos;(002).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* Extract requested filename from archive if possible
*--------------------------------------------------------------------*
TRY.
CALL METHOD me-&gt;alternate_zip-&gt;(&apos;GET&apos;)
EXPORTING
name = i_filename
IMPORTING
content = r_content &quot; Contents
EXCEPTIONS
zip_index_error = 1
zip_decompression_error = 2
OTHERS = 3.
CATCH cx_sy_dyn_call_illegal_method.
lv_errormessage = &apos;Method GET missing in alternative zipclass&apos;. &quot;#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 &lt;&gt; 0.
lv_errormessage = &apos;File not found in zip-archive&apos;(003).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* issue#234 - end of insertion
*--------------------------------------------------------------------*
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="&apos;X&apos;" 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
*--------------------------------------------------------------------*
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 ???
*--------------------------------------------------------------------*
lv_content = me-&gt;get_from_zip_archive( i_filename ).
lo_ixml = cl_ixml=&gt;create( ).
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_istream = lo_streamfactory-&gt;create_istream_xstring( lv_content ).
r_ixml = lo_ixml-&gt;create_document( ).
lo_parser = lo_ixml-&gt;create_parser( stream_factory = lo_streamfactory
istream = lo_istream
document = r_ixml ).
lo_parser-&gt;set_normalizing( is_normalizing ).
lo_parser-&gt;set_validating( mode = if_ixml_parser=&gt;co_no_validation ).
lo_parser-&gt;parse( ).
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"/>
<source>method LOAD_DRAWING_ANCHOR.
TYPES: BEGIN OF t_c_nv_pr,
name TYPE string,
id TYPE string,
END OF t_c_nv_pr.
TYPES: BEGIN OF t_blip,
cstate TYPE string,
embed TYPE string,
END OF t_blip.
TYPES: BEGIN OF t_chart,
id TYPE string,
END OF t_chart.
TYPES: BEGIN OF t_ext,
cx TYPE string,
cy TYPE string,
END OF t_ext.
CONSTANTS: lc_xml_attr_true TYPE string VALUE &apos;true&apos;,
lc_xml_attr_true_int TYPE string VALUE &apos;1&apos;.
CONSTANTS: lc_rel_chart TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart&apos;,
lc_rel_image TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/image&apos;.
DATA: lo_drawing TYPE REF TO zcl_excel_drawing,
node TYPE REF TO if_ixml_element,
node2 TYPE REF TO if_ixml_element,
node3 TYPE REF TO if_ixml_element,
node4 TYPE REF TO if_ixml_element,
ls_upper TYPE zexcel_drawing_location,
ls_lower TYPE zexcel_drawing_location,
ls_size TYPE zexcel_drawing_size,
ext TYPE t_ext,
lv_content TYPE xstring,
lv_relation_id TYPE string,
lv_title TYPE zexcel_sheet_title,
cnvpr TYPE t_c_nv_pr,
blip TYPE t_blip,
chart TYPE t_chart,
drawing_type TYPE zexcel_drawing_type,
rel_drawing TYPE t_rel_drawing.
node ?= io_anchor_element-&gt;find_from_name( name = &apos;from&apos; namespace = &apos;xdr&apos; ).
CHECK node IS NOT INITIAL.
node2 ?= node-&gt;find_from_name( name = &apos;col&apos; namespace = &apos;xdr&apos; ).
ls_upper-col = node2-&gt;get_value( ).
node2 ?= node-&gt;find_from_name( name = &apos;row&apos; namespace = &apos;xdr&apos; ).
ls_upper-row = node2-&gt;get_value( ).
node2 ?= node-&gt;find_from_name( name = &apos;colOff&apos; namespace = &apos;xdr&apos; ).
ls_upper-col_offset = node2-&gt;get_value( ).
node2 ?= node-&gt;find_from_name( name = &apos;rowOff&apos; namespace = &apos;xdr&apos; ).
ls_upper-row_offset = node2-&gt;get_value( ).
node ?= io_anchor_element-&gt;find_from_name( name = &apos;ext&apos; namespace = &apos;xdr&apos; ).
IF node IS INITIAL.
CLEAR ls_size.
ELSE.
me-&gt;fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = ext ).
ls_size-width = ext-cx.
ls_size-height = ext-cy.
ENDIF.
node ?= io_anchor_element-&gt;find_from_name( name = &apos;to&apos; namespace = &apos;xdr&apos; ).
IF node IS INITIAL.
CLEAR ls_lower.
ELSE.
node2 ?= node-&gt;find_from_name( name = &apos;col&apos; namespace = &apos;xdr&apos; ).
ls_lower-col = node2-&gt;get_value( ).
node2 ?= node-&gt;find_from_name( name = &apos;row&apos; namespace = &apos;xdr&apos; ).
ls_lower-row = node2-&gt;get_value( ).
node2 ?= node-&gt;find_from_name( name = &apos;colOff&apos; namespace = &apos;xdr&apos; ).
ls_lower-col_offset = node2-&gt;get_value( ).
node2 ?= node-&gt;find_from_name( name = &apos;rowOff&apos; namespace = &apos;xdr&apos; ).
ls_lower-row_offset = node2-&gt;get_value( ).
ENDIF.
node ?= io_anchor_element-&gt;find_from_name( name = &apos;pic&apos; namespace = &apos;xdr&apos; ).
IF node IS NOT INITIAL.
node2 ?= node-&gt;find_from_name( name = &apos;nvPicPr&apos; namespace = &apos;xdr&apos; ).
CHECK node2 IS NOT INITIAL.
node3 ?= node2-&gt;find_from_name( name = &apos;cNvPr&apos; namespace = &apos;xdr&apos; ).
CHECK node3 IS NOT INITIAL.
me-&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = cnvpr ).
lv_title = cnvpr-name.
node2 ?= node-&gt;find_from_name( name = &apos;blipFill&apos; namespace = &apos;xdr&apos; ).
CHECK node2 IS NOT INITIAL.
node3 ?= node2-&gt;find_from_name( name = &apos;blip&apos; namespace = &apos;a&apos; ).
CHECK node3 IS NOT INITIAL.
me-&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = blip ).
lv_relation_id = blip-embed.
drawing_type = zcl_excel_drawing=&gt;type_image.
ENDIF.
node ?= io_anchor_element-&gt;find_from_name( name = &apos;graphicFrame&apos; namespace = &apos;xdr&apos; ).
IF node IS NOT INITIAL.
node2 ?= node-&gt;find_from_name( name = &apos;nvGraphicFramePr&apos; namespace = &apos;xdr&apos; ).
CHECK node2 IS NOT INITIAL.
node3 ?= node2-&gt;find_from_name( name = &apos;cNvPr&apos; namespace = &apos;xdr&apos; ).
CHECK node3 IS NOT INITIAL.
me-&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = cnvpr ).
lv_title = cnvpr-name.
node2 ?= node-&gt;find_from_name( name = &apos;graphic&apos; namespace = &apos;a&apos; ).
CHECK node2 IS NOT INITIAL.
node3 ?= node2-&gt;find_from_name( name = &apos;graphicData&apos; namespace = &apos;a&apos; ).
CHECK node3 IS NOT INITIAL.
node4 ?= node2-&gt;find_from_name( name = &apos;chart&apos; namespace = &apos;c&apos; ).
CHECK node4 IS NOT INITIAL.
me-&gt;fill_struct_from_attributes( EXPORTING ip_element = node4 CHANGING cp_structure = chart ).
lv_relation_id = chart-id.
drawing_type = zcl_excel_drawing=&gt;type_chart.
ENDIF.
lo_drawing = io_worksheet-&gt;excel-&gt;add_new_drawing(
ip_type = drawing_type
ip_title = lv_title ).
io_worksheet-&gt;add_drawing( lo_drawing ).
lo_drawing-&gt;set_position2(
EXPORTING
ip_from = ls_upper
ip_to = ls_lower ).
READ TABLE it_related_drawings INTO rel_drawing
WITH KEY id = lv_relation_id.
lo_drawing-&gt;set_media(
EXPORTING
ip_media = rel_drawing-content
ip_media_type = rel_drawing-file_ext
ip_width = ls_size-width
ip_height = ls_size-height ).
if drawing_type = zcl_excel_drawing=&gt;type_chart.
&quot;-------------Added by Alessandro Iannacci - Should load chart attributes
lo_drawing-&gt;load_chart_attributes( rel_drawing-content_xml ).
endif.
endmethod.</source>
</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 "/>
<source>method LOAD_SHARED_STRINGS.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 Support partial formatting of strings in cells
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-11-11
* - ...
* changes: renaming variables to naming conventions
* renaming variables to indicate what they are used for
* aligning code
* adding comments to explain what we are trying to achieve
* rewriting code for better readibility
*--------------------------------------------------------------------*
DATA:
lo_shared_strings_xml TYPE REF TO if_ixml_document,
lo_node_si TYPE REF TO if_ixml_element,
lo_node_si_child TYPE REF TO if_ixml_element,
lo_node_r_child_t TYPE REF TO if_ixml_element,
lv_tag_name TYPE string,
lv_node_value TYPE string.
FIELD-SYMBOLS: &lt;lv_shared_string&gt; LIKE LINE OF me-&gt;shared_strings.
*--------------------------------------------------------------------*
* §1 Parse shared strings file and get into internal table
* So far I have encountered 2 ways how a string can be represented in the shared strings file
* §1.1 - &quot;simple&quot; strings
* §1.2 - rich text formatted strings
* Following is an example how this file could be set up; 2 strings in simple formatting, 3rd string rich textformatted
* &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;true&quot;?&gt;
* &lt;sst uniqueCount=&quot;6&quot; count=&quot;6&quot; xmlns=&quot;http://schemas.openxmlformats.org/spreadsheetml/2006/main&quot;&gt;
* &lt;si&gt;
* &lt;t&gt;This is a teststring 1&lt;/t&gt;
* &lt;/si&gt;
* &lt;si&gt;
* &lt;t&gt;This is a teststring 2&lt;/t&gt;
* &lt;/si&gt;
* &lt;si&gt;
* &lt;r&gt;
* &lt;t&gt;T&lt;/t&gt;
* &lt;/r&gt;
* &lt;r&gt;
* &lt;rPr&gt;
* &lt;sz val=&quot;11&quot;/&gt;
* &lt;color rgb=&quot;FFFF0000&quot;/&gt;
* &lt;rFont val=&quot;Calibri&quot;/&gt;
* &lt;family val=&quot;2&quot;/&gt;
* &lt;scheme val=&quot;minor&quot;/&gt;
* &lt;/rPr&gt;
* &lt;t xml:space=&quot;preserve&quot;&gt;his is a &lt;/t&gt;
* &lt;/r&gt;
* &lt;r&gt;
* &lt;rPr&gt;
* &lt;sz val=&quot;11&quot;/&gt;
* &lt;color theme=&quot;1&quot;/&gt;
* &lt;rFont val=&quot;Calibri&quot;/&gt;
* &lt;family val=&quot;2&quot;/&gt;
* &lt;scheme val=&quot;minor&quot;/&gt;
* &lt;/rPr&gt;
* &lt;t&gt;teststring 3&lt;/t&gt;
* &lt;/r&gt;
* &lt;/si&gt;
* &lt;/sst&gt;
*--------------------------------------------------------------------*
lo_shared_strings_xml = me-&gt;get_ixml_from_zip_archive( i_filename = ip_path
is_normalizing = space ). &quot; NO!!! normalizing - otherwise leading blanks will be omitted and that is not really desired for the stringtable
lo_node_si ?= lo_shared_strings_xml-&gt;find_from_name( &apos;si&apos; ).
WHILE lo_node_si IS BOUND.
APPEND INITIAL LINE TO me-&gt;shared_strings ASSIGNING &lt;lv_shared_string&gt;. &quot; Each &lt;si&gt;-entry in the xml-file must lead to an entry in our stringtable
lo_node_si_child ?= lo_node_si-&gt;get_first_child( ).
IF lo_node_si_child IS BOUND.
lv_tag_name = lo_node_si_child-&gt;get_name( ).
IF lv_tag_name = &apos;t&apos;.
*--------------------------------------------------------------------*
* §1.1 - &quot;simple&quot; strings
* Example: see above
*--------------------------------------------------------------------*
&lt;lv_shared_string&gt; = lo_node_si_child-&gt;get_value( ).
ELSE.
*--------------------------------------------------------------------*
* §1.2 - rich text formatted strings
* it is sufficient to strip the &lt;t&gt;...&lt;/t&gt; tag from each &lt;r&gt;-tag and concatenate these
* as long as rich text formatting is not supported (2do§1) ignore all info about formatting
* Example: see above
*--------------------------------------------------------------------*
WHILE lo_node_si_child IS BOUND. &quot; actually these children of &lt;si&gt; are &lt;r&gt;-tags
lo_node_r_child_t ?= lo_node_si_child-&gt;find_from_name( &apos;t&apos; ). &quot; extract the &lt;t&gt;...&lt;/t&gt; part of each &lt;r&gt;-tag
IF lo_node_r_child_t IS BOUND.
lv_node_value = lo_node_r_child_t-&gt;get_value( ).
CONCATENATE &lt;lv_shared_string&gt; lv_node_value INTO &lt;lv_shared_string&gt; RESPECTING BLANKS.
ENDIF.
lo_node_si_child ?= lo_node_si_child-&gt;get_next( ).
ENDWHILE.
ENDIF.
ENDIF.
lo_node_si ?= lo_node_si-&gt;get_next( ).
ENDWHILE.
endmethod.</source>
</method>
<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 "/>
<source>method LOAD_STYLES.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (wip ) 2012-11-25
* - ...
* changes: renaming variables and types to naming conventions
* aligning code
* adding comments to explain what we are trying to achieve
*--------------------------------------------------------------------*
TYPES: BEGIN OF lty_xf,
applyalignment TYPE string,
applyborder TYPE string,
applyfill TYPE string,
applyfont TYPE string,
applynumberformat TYPE string,
applyprotection TYPE string,
borderid TYPE string,
fillid TYPE string,
fontid TYPE string,
numfmtid TYPE string,
pivotbutton TYPE string,
quoteprefix TYPE string,
xfid TYPE string,
END OF lty_xf.
TYPES: BEGIN OF lty_alignment,
horizontal TYPE string,
indent TYPE string,
justifylastline TYPE string,
readingorder TYPE string,
relativeindent TYPE string,
shrinktofit TYPE string,
textrotation TYPE string,
vertical TYPE string,
wraptext TYPE string,
END OF lty_alignment.
TYPES: BEGIN OF lty_protection,
hidden TYPE string,
locked TYPE string,
END OF lty_protection.
DATA: lo_styles_xml TYPE REF TO if_ixml_document,
lo_style TYPE REF TO zcl_excel_style,
lt_num_formats TYPE t_num_formats,
lt_fills TYPE t_fills,
lt_borders TYPE t_borders,
lt_fonts TYPE t_fonts,
ls_num_format TYPE t_num_format,
ls_fill TYPE REF TO zcl_excel_style_fill,
ls_cell_border TYPE REF TO zcl_excel_style_borders,
ls_font TYPE REF TO zcl_excel_style_font,
lo_node_cellxfs TYPE REF TO if_ixml_element,
lo_node_cellxfs_xf TYPE REF TO if_ixml_element,
lo_node_cellxfs_xf_alignment TYPE REF TO if_ixml_element,
lo_node_cellxfs_xf_protection TYPE REF TO if_ixml_element,
lo_nodes_xf TYPE REF TO if_ixml_node_collection,
lo_iterator_cellxfs TYPE REF TO if_ixml_node_iterator,
ls_xf TYPE lty_xf,
ls_alignment TYPE lty_alignment,
ls_protection TYPE lty_protection,
lv_index TYPE i.
*--------------------------------------------------------------------*
* To build a complete style that fully describes how a cell looks like
* we need the various parts
* §1 - Numberformat
* §2 - Fillstyle
* §3 - Borders
* §4 - Font
* §5 - Alignment
* §6 - Protection
* Following is an example how this part of a file could be set up
* ...
* parts with various formatinformation - see §1,§2,§3,§4
* ...
* &lt;cellXfs count=&quot;26&quot;&gt;
* &lt;xf numFmtId=&quot;0&quot; borderId=&quot;0&quot; fillId=&quot;0&quot; fontId=&quot;0&quot; xfId=&quot;0&quot;/&gt;
* &lt;xf numFmtId=&quot;0&quot; borderId=&quot;0&quot; fillId=&quot;2&quot; fontId=&quot;0&quot; xfId=&quot;0&quot; applyFill=&quot;1&quot;/&gt;
* &lt;xf numFmtId=&quot;0&quot; borderId=&quot;1&quot; fillId=&quot;3&quot; fontId=&quot;0&quot; xfId=&quot;0&quot; applyFill=&quot;1&quot; applyBorder=&quot;1&quot;/&gt;
* &lt;xf numFmtId=&quot;0&quot; borderId=&quot;2&quot; fillId=&quot;3&quot; fontId=&quot;0&quot; xfId=&quot;0&quot; applyFill=&quot;1&quot; applyBorder=&quot;1&quot;/&gt;
* &lt;xf numFmtId=&quot;0&quot; borderId=&quot;3&quot; fillId=&quot;3&quot; fontId=&quot;0&quot; xfId=&quot;0&quot; applyFill=&quot;1&quot; applyBorder=&quot;1&quot;/&gt;
* &lt;xf numFmtId=&quot;0&quot; borderId=&quot;4&quot; fillId=&quot;3&quot; fontId=&quot;0&quot; xfId=&quot;0&quot; applyFill=&quot;1&quot; applyBorder=&quot;1&quot;/&gt;
* &lt;xf numFmtId=&quot;0&quot; borderId=&quot;0&quot; fillId=&quot;3&quot; fontId=&quot;0&quot; xfId=&quot;0&quot; applyFill=&quot;1&quot; applyBorder=&quot;1&quot;/&gt;
* ...
* &lt;/cellXfs&gt;
*--------------------------------------------------------------------*
lo_styles_xml = me-&gt;get_ixml_from_zip_archive( ip_path ).
*--------------------------------------------------------------------*
* The styles are build up from
* §1 number formats
* §2 fill styles
* §3 border styles
* §4 fonts
* These need to be read before we can try to build up a complete
* style that describes the look of a cell
*--------------------------------------------------------------------*
lt_num_formats = load_style_num_formats( lo_styles_xml ). &quot; §1
lt_fills = load_style_fills( lo_styles_xml ). &quot; §2
lt_borders = load_style_borders( lo_styles_xml ). &quot; §3
lt_fonts = load_style_fonts( lo_styles_xml ). &quot; §4
*--------------------------------------------------------------------*
* Now everything is prepared to build a &quot;full&quot; style
*--------------------------------------------------------------------*
lo_node_cellxfs = lo_styles_xml-&gt;find_from_name( name = &apos;cellXfs&apos; ).
IF lo_node_cellxfs IS BOUND.
lo_nodes_xf = lo_node_cellxfs-&gt;get_elements_by_tag_name( name = &apos;xf&apos; ).
lo_iterator_cellxfs = lo_nodes_xf-&gt;create_iterator( ).
lo_node_cellxfs_xf ?= lo_iterator_cellxfs-&gt;get_next( ).
WHILE lo_node_cellxfs_xf IS BOUND.
lo_style = ip_excel-&gt;add_new_style( ).
fill_struct_from_attributes( EXPORTING
ip_element = lo_node_cellxfs_xf
CHANGING
cp_structure = ls_xf ).
*--------------------------------------------------------------------*
* §2 fill style
*--------------------------------------------------------------------*
IF ls_xf-applyfill = &apos;1&apos; AND ls_xf-fillid IS NOT INITIAL.
lv_index = ls_xf-fillid + 1.
READ TABLE lt_fills INTO ls_fill INDEX lv_index.
IF sy-subrc = 0.
lo_style-&gt;fill = ls_fill.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* §1 number format
*--------------------------------------------------------------------*
IF ls_xf-numfmtid IS NOT INITIAL.
READ TABLE lt_num_formats INTO ls_num_format WITH TABLE KEY id = ls_xf-numfmtid.
IF sy-subrc = 0.
lo_style-&gt;number_format = ls_num_format-format.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* §3 border style
*--------------------------------------------------------------------*
IF ls_xf-applyborder = &apos;1&apos; AND ls_xf-borderid IS NOT INITIAL.
lv_index = ls_xf-borderid + 1.
READ TABLE lt_borders INTO ls_cell_border INDEX lv_index.
IF sy-subrc = 0.
lo_style-&gt;borders = ls_cell_border.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* §4 font
*--------------------------------------------------------------------*
IF ls_xf-applyfont = &apos;1&apos; AND ls_xf-fontid IS NOT INITIAL.
lv_index = ls_xf-fontid + 1.
READ TABLE lt_fonts INTO ls_font INDEX lv_index.
IF sy-subrc = 0.
lo_style-&gt;font = ls_font.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* §5 - Alignment
*--------------------------------------------------------------------*
lo_node_cellxfs_xf_alignment ?= lo_node_cellxfs_xf-&gt;find_from_name( &apos;alignment&apos; ).
IF lo_node_cellxfs_xf_alignment IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_node_cellxfs_xf_alignment
CHANGING
cp_structure = ls_alignment ).
IF ls_alignment-horizontal IS NOT INITIAL.
lo_style-&gt;alignment-&gt;horizontal = ls_alignment-horizontal.
ENDIF.
IF ls_alignment-vertical IS NOT INITIAL.
lo_style-&gt;alignment-&gt;vertical = ls_alignment-vertical.
ENDIF.
IF ls_alignment-textrotation IS NOT INITIAL.
lo_style-&gt;alignment-&gt;textrotation = ls_alignment-textrotation.
ENDIF.
IF ls_alignment-wraptext = &apos;1&apos; OR ls_alignment-wraptext = &apos;true&apos;.
lo_style-&gt;alignment-&gt;wraptext = abap_true.
ENDIF.
IF ls_alignment-shrinktofit = &apos;1&apos; OR ls_alignment-shrinktofit = &apos;true&apos;.
lo_style-&gt;alignment-&gt;shrinktofit = abap_true.
ENDIF.
IF ls_alignment-indent IS NOT INITIAL.
lo_style-&gt;alignment-&gt;indent = ls_alignment-indent.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* §6 - Protection
*--------------------------------------------------------------------*
lo_node_cellxfs_xf_protection ?= lo_node_cellxfs_xf-&gt;find_from_name( &apos;protection&apos; ).
IF lo_node_cellxfs_xf_protection IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_node_cellxfs_xf_protection
CHANGING
cp_structure = ls_protection ).
IF ls_protection-locked = &apos;1&apos; OR ls_protection-locked = &apos;true&apos;.
lo_style-&gt;protection-&gt;locked = zcl_excel_style_protection=&gt;c_protection_locked.
ELSE.
lo_style-&gt;protection-&gt;locked = zcl_excel_style_protection=&gt;c_protection_unlocked.
ENDIF.
IF ls_protection-hidden = &apos;1&apos; OR ls_protection-hidden = &apos;true&apos;.
lo_style-&gt;protection-&gt;hidden = zcl_excel_style_protection=&gt;c_protection_hidden.
ELSE.
lo_style-&gt;protection-&gt;hidden = zcl_excel_style_protection=&gt;c_protection_unhidden.
ENDIF.
ENDIF.
INSERT lo_style INTO TABLE me-&gt;styles.
lo_node_cellxfs_xf ?= lo_iterator_cellxfs-&gt;get_next( ).
ENDWHILE.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_BORDERS" VERSION="1" LANGU="E" DESCRIPT="Loads &apos;borders&apos; part of styles" EXPOSURE="1" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_BORDERS" SCONAME="IP_XML" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_BORDERS" SCONAME="EP_BORDERS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_BORDERS"/>
<source>method LOAD_STYLE_BORDERS.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-11-25
* - ...
* changes: renaming variables and types to naming conventions
* aligning code
* renaming variables to indicate what they are used for
* adding comments to explain what we are trying to achieve
*--------------------------------------------------------------------*
DATA: lo_node_border TYPE REF TO if_ixml_element,
lo_node_bordertype TYPE REF TO if_ixml_element,
lo_node_bordercolor TYPE REF TO if_ixml_element,
lo_cell_border TYPE REF TO zcl_excel_style_borders,
lo_border TYPE REF TO zcl_excel_style_border,
ls_color TYPE t_color.
*--------------------------------------------------------------------*
* We need a table of used borderformats to build up our styles
* §1 A cell has 4 outer borders and 2 diagonal &quot;borders&quot;
* These borders can be formatted separately but the diagonal borders
* are always being formatted the same
* We&apos;ll parse through the &lt;border&gt;-tag for each of the bordertypes
* §2 and read the corresponding formatting information
* Following is an example how this part of a file could be set up
* &lt;border diagonalDown=&quot;1&quot;&gt;
* &lt;left style=&quot;mediumDashDotDot&quot;&gt;
* &lt;color rgb=&quot;FFFF0000&quot;/&gt;
* &lt;/left&gt;
* &lt;right/&gt;
* &lt;top style=&quot;thick&quot;&gt;
* &lt;color rgb=&quot;FFFF0000&quot;/&gt;
* &lt;/top&gt;
* &lt;bottom style=&quot;thick&quot;&gt;
* &lt;color rgb=&quot;FFFF0000&quot;/&gt;
* &lt;/bottom&gt;
* &lt;diagonal style=&quot;thick&quot;&gt;
* &lt;color rgb=&quot;FFFF0000&quot;/&gt;
* &lt;/diagonal&gt;
* &lt;/border&gt;
*--------------------------------------------------------------------*
lo_node_border ?= ip_xml-&gt;find_from_name( &apos;border&apos; ).
WHILE lo_node_border IS BOUND.
CREATE OBJECT lo_cell_border.
*--------------------------------------------------------------------*
* Diagonal borderlines are formatted the equally. Determine what kind of diagonal borders are present if any
*--------------------------------------------------------------------*
* DiagonalNone = 0
* DiagonalUp = 1
* DiagonalDown = 2
* DiagonalBoth = 3
*--------------------------------------------------------------------*
IF lo_node_border-&gt;get_attribute( &apos;diagonalDown&apos; ) IS NOT INITIAL.
add zcl_excel_style_borders=&gt;c_diagonal_down to lo_cell_border-&gt;diagonal_mode.
ENDIF.
IF lo_node_border-&gt;get_attribute( &apos;diagonalUp&apos; ) IS NOT INITIAL.
add zcl_excel_style_borders=&gt;c_diagonal_up to lo_cell_border-&gt;diagonal_mode.
ENDIF.
lo_node_bordertype ?= lo_node_border-&gt;get_first_child( ).
WHILE lo_node_bordertype IS BOUND.
*--------------------------------------------------------------------*
* §1 Determine what kind of border we are talking about
*--------------------------------------------------------------------*
* Up, down, left, right, diagonal
*--------------------------------------------------------------------*
CREATE OBJECT lo_border.
CASE lo_node_bordertype-&gt;get_name( ).
WHEN &apos;left&apos;.
lo_cell_border-&gt;left = lo_border.
WHEN &apos;right&apos;.
lo_cell_border-&gt;right = lo_border.
WHEN &apos;top&apos;.
lo_cell_border-&gt;top = lo_border.
WHEN &apos;bottom&apos;.
lo_cell_border-&gt;down = lo_border.
WHEN &apos;diagonal&apos;.
lo_cell_border-&gt;diagonal = lo_border.
ENDCASE.
*--------------------------------------------------------------------*
* §2 Read the border-formatting
*--------------------------------------------------------------------*
lo_border-&gt;border_style = lo_node_bordertype-&gt;get_attribute( &apos;style&apos; ).
lo_node_bordercolor ?= lo_node_bordertype-&gt;find_from_name( &apos;color&apos; ).
IF lo_node_bordercolor IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_node_bordercolor
CHANGING
cp_structure = ls_color ).
lo_border-&gt;border_color-rgb = ls_color-rgb.
IF ls_color-indexed IS NOT INITIAL.
lo_border-&gt;border_color-indexed = ls_color-indexed.
ENDIF.
IF ls_color-theme IS NOT INITIAL.
lo_border-&gt;border_color-theme = ls_color-theme.
ENDIF.
lo_border-&gt;border_color-tint = ls_color-tint.
ENDIF.
lo_node_bordertype ?= lo_node_bordertype-&gt;get_next( ).
ENDWHILE.
INSERT lo_cell_border INTO TABLE ep_borders.
lo_node_border ?= lo_node_border-&gt;get_next( ).
ENDWHILE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_FILLS" VERSION="1" LANGU="E" DESCRIPT="Loads &apos;fills&apos; part of styles" EXPOSURE="1" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_FILLS" SCONAME="IP_XML" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_FILLS" SCONAME="EP_FILLS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_FILLS"/>
<source>method LOAD_STYLE_FILLS.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 Support gradientFill
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-11-25
* - ...
* changes: renaming variables and types to naming conventions
* aligning code
* commenting on problems/future enhancements/todos we already know of or should decide upon
* adding comments to explain what we are trying to achieve
* renaming variables to indicate what they are used for
*--------------------------------------------------------------------*
DATA: lv_value TYPE string,
lo_node_fill TYPE REF TO if_ixml_element,
lo_node_fill_child TYPE REF TO if_ixml_element,
lo_node_bgcolor TYPE REF TO if_ixml_element,
lo_node_fgcolor TYPE REF TO if_ixml_element,
lo_fill TYPE REF TO zcl_excel_style_fill,
ls_color TYPE t_color.
*--------------------------------------------------------------------*
* We need a table of used fillformats to build up our styles
* Following is an example how this part of a file could be set up
* &lt;fill&gt;
* &lt;patternFill patternType=&quot;gray125&quot;/&gt;
* &lt;/fill&gt;
* &lt;fill&gt;
* &lt;patternFill patternType=&quot;solid&quot;&gt;
* &lt;fgColor rgb=&quot;FFFFFF00&quot;/&gt;
* &lt;bgColor indexed=&quot;64&quot;/&gt;
* &lt;/patternFill&gt;
* &lt;/fill&gt;
*--------------------------------------------------------------------*
lo_node_fill ?= ip_xml-&gt;find_from_name( &apos;fill&apos; ).
WHILE lo_node_fill IS BOUND.
CREATE OBJECT lo_fill.
lo_node_fill_child ?= lo_node_fill-&gt;get_first_child( ).
lv_value = lo_node_fill_child-&gt;get_name( ).
CASE lv_value.
*--------------------------------------------------------------------*
* Patternfill
*--------------------------------------------------------------------*
WHEN &apos;patternFill&apos;.
lo_fill-&gt;filltype = lo_node_fill_child-&gt;get_attribute( &apos;patternType&apos; ).
*--------------------------------------------------------------------*
* Patternfill - background color
*--------------------------------------------------------------------*
lo_node_bgcolor = lo_node_fill_child-&gt;find_from_name( &apos;bgColor&apos; ).
IF lo_node_bgcolor IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_node_bgcolor
CHANGING
cp_structure = ls_color ).
lo_fill-&gt;bgcolor-rgb = ls_color-rgb.
IF ls_color-indexed IS NOT INITIAL.
lo_fill-&gt;bgcolor-indexed = ls_color-indexed.
ENDIF.
IF ls_color-theme IS NOT INITIAL.
lo_fill-&gt;bgcolor-theme = ls_color-theme.
ENDIF.
lo_fill-&gt;bgcolor-tint = ls_color-tint.
ENDIF.
*--------------------------------------------------------------------*
* Patternfill - foreground color
*--------------------------------------------------------------------*
lo_node_fgcolor = lo_node_fill-&gt;find_from_name( &apos;fgColor&apos; ).
IF lo_node_fgcolor IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_node_fgcolor
CHANGING
cp_structure = ls_color ).
lo_fill-&gt;fgcolor-rgb = ls_color-rgb.
IF ls_color-indexed IS NOT INITIAL.
lo_fill-&gt;fgcolor-indexed = ls_color-indexed.
ENDIF.
IF ls_color-theme IS NOT INITIAL.
lo_fill-&gt;fgcolor-theme = ls_color-theme.
ENDIF.
lo_fill-&gt;fgcolor-tint = ls_color-tint.
ENDIF.
*--------------------------------------------------------------------*
* gradientFill
*--------------------------------------------------------------------*
WHEN &apos;gradientFill&apos;.
&quot; 2do§1 Support gradientFill
WHEN OTHERS.
ENDCASE.
INSERT lo_fill INTO TABLE ep_fills.
lo_node_fill ?= lo_node_fill-&gt;get_next( ).
ENDWHILE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_FONTS" VERSION="1" LANGU="E" DESCRIPT="Loads &apos;fonts&apos; part of styles" EXPOSURE="1" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_FONTS" SCONAME="IP_XML" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_FONTS" SCONAME="EP_FONTS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_FONTS"/>
<source>method LOAD_STYLE_FONTS.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-11-25
* - ...
* changes: renaming variables and types to naming conventions
* aligning code
* removing unused variables
* adding comments to explain what we are trying to achieve
*--------------------------------------------------------------------*
DATA: lo_node_font TYPE REF TO if_ixml_element,
lo_node2 TYPE REF TO if_ixml_element,
lo_font TYPE REF TO zcl_excel_style_font,
ls_color TYPE t_color.
*--------------------------------------------------------------------*
* We need a table of used fonts to build up our styles
* Following is an example how this part of a file could be set up
* &lt;font&gt;
* &lt;sz val=&quot;11&quot;/&gt;
* &lt;color theme=&quot;1&quot;/&gt;
* &lt;name val=&quot;Calibri&quot;/&gt;
* &lt;family val=&quot;2&quot;/&gt;
* &lt;scheme val=&quot;minor&quot;/&gt;
* &lt;/font&gt;
*--------------------------------------------------------------------*
lo_node_font ?= ip_xml-&gt;find_from_name( &apos;font&apos; ).
WHILE lo_node_font IS BOUND.
CREATE OBJECT lo_font.
*--------------------------------------------------------------------*
* Bold
*--------------------------------------------------------------------*
IF lo_node_font-&gt;find_from_name( &apos;b&apos; ) IS BOUND.
lo_font-&gt;bold = abap_true.
ENDIF.
*--------------------------------------------------------------------*
* Italic
*--------------------------------------------------------------------*
IF lo_node_font-&gt;find_from_name( &apos;i&apos; ) IS BOUND.
lo_font-&gt;italic = abap_true.
ENDIF.
*--------------------------------------------------------------------*
* Underline
*--------------------------------------------------------------------*
lo_node2 = lo_node_font-&gt;find_from_name( &apos;u&apos; ).
IF lo_node2 IS BOUND.
lo_font-&gt;underline = abap_true.
lo_font-&gt;underline_mode = lo_node2-&gt;get_attribute( &apos;val&apos; ).
ENDIF.
*--------------------------------------------------------------------*
* StrikeThrough
*--------------------------------------------------------------------*
IF lo_node_font-&gt;find_from_name( &apos;strike&apos; ) IS BOUND.
lo_font-&gt;strikethrough = abap_true.
ENDIF.
*--------------------------------------------------------------------*
* Fontsize
*--------------------------------------------------------------------*
lo_node2 = lo_node_font-&gt;find_from_name( &apos;sz&apos; ).
IF lo_node2 IS BOUND.
lo_font-&gt;size = lo_node2-&gt;get_attribute( &apos;val&apos; ).
ENDIF.
*--------------------------------------------------------------------*
* Fontname
*--------------------------------------------------------------------*
lo_node2 = lo_node_font-&gt;find_from_name( &apos;name&apos; ).
IF lo_node2 IS BOUND.
lo_font-&gt;name = lo_node2-&gt;get_attribute( &apos;val&apos; ).
ENDIF.
*--------------------------------------------------------------------*
* Fontfamily
*--------------------------------------------------------------------*
lo_node2 = lo_node_font-&gt;find_from_name( &apos;family&apos; ).
IF lo_node2 IS BOUND.
lo_font-&gt;family = lo_node2-&gt;get_attribute( &apos;val&apos; ).
ENDIF.
*--------------------------------------------------------------------*
* Fontscheme
*--------------------------------------------------------------------*
lo_node2 = lo_node_font-&gt;find_from_name( &apos;scheme&apos; ).
IF lo_node2 IS BOUND.
lo_font-&gt;scheme = lo_node2-&gt;get_attribute( &apos;val&apos; ).
ENDIF.
*--------------------------------------------------------------------*
* Fontcolor
*--------------------------------------------------------------------*
lo_node2 = lo_node_font-&gt;find_from_name( &apos;color&apos; ).
IF lo_node2 IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_node2
CHANGING
cp_structure = ls_color ).
lo_font-&gt;color-rgb = ls_color-rgb.
IF ls_color-indexed IS NOT INITIAL.
lo_font-&gt;color-indexed = ls_color-indexed.
ENDIF.
IF ls_color-theme IS NOT INITIAL.
lo_font-&gt;color-theme = ls_color-theme.
ENDIF.
lo_font-&gt;color-tint = ls_color-tint.
ENDIF.
INSERT lo_font INTO TABLE ep_fonts.
lo_node_font ?= lo_node_font-&gt;get_next( ).
ENDWHILE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_NUM_FORMATS" VERSION="1" LANGU="E" DESCRIPT="Loads &apos;number format&apos; part of styles" EXPOSURE="1" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_NUM_FORMATS" SCONAME="IP_XML" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_STYLE_NUM_FORMATS" SCONAME="EP_NUM_FORMATS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_NUM_FORMATS"/>
<source>method LOAD_STYLE_NUM_FORMATS.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 Explain gaps in predefined formats
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-11-25
* - ...
* changes: renaming variables and types to naming conventions
* adding comments to explain what we are trying to achieve
* aligning code
*--------------------------------------------------------------------*
DATA: lo_node_numfmt TYPE REF TO if_ixml_element,
ls_num_format TYPE t_num_format.
*--------------------------------------------------------------------*
* We need a table of used numberformats to build up our styles
* there are two kinds of numberformats
* §1 those that have been explicitly added by the createor of the excel-file
* §2 and built-in numberformats
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* §1 Get non-internal numberformats that are found in the file explicitly
* Following is an example how this part of a file could be set up
* &lt;numFmts count=&quot;1&quot;&gt;
* &lt;numFmt formatCode=&quot;#,###,###,###,##0.00&quot; numFmtId=&quot;164&quot;/&gt;
* &lt;/numFmts&gt;
*--------------------------------------------------------------------*
lo_node_numfmt ?= ip_xml-&gt;find_from_name( &apos;numFmt&apos; ).
WHILE lo_node_numfmt IS BOUND.
CLEAR ls_num_format.
CREATE OBJECT ls_num_format-format.
ls_num_format-format-&gt;format_code = lo_node_numfmt-&gt;get_attribute( &apos;formatCode&apos; ).
ls_num_format-id = lo_node_numfmt-&gt;get_attribute( &apos;numFmtId&apos; ).
INSERT ls_num_format INTO TABLE ep_num_formats.
lo_node_numfmt ?= lo_node_numfmt-&gt;get_next( ).
ENDWHILE.
DEFINE predefined_format.
ls_num_format-id = &amp;1.
create object ls_num_format-format.
ls_num_format-format-&gt;format_code = &amp;2.
insert ls_num_format into table ep_num_formats.
END-OF-DEFINITION.
*--------------------------------------------------------------------*
* §1 Get internal predefined numberformats
*--------------------------------------------------------------------*
predefined_format &apos;1&apos; &apos;0&apos;.
predefined_format &apos;2&apos; &apos;0.00&apos;.
predefined_format &apos;3&apos; &apos;#,##0&apos;.
predefined_format &apos;4&apos; &apos;#,##0.00&apos;.
predefined_format &apos;5&apos; &apos;$#,##0_);($#,##0)&apos;.
predefined_format &apos;6&apos; &apos;$#,##0_);[Red]($#,##0)&apos;.
predefined_format &apos;7&apos; &apos;$#,##0.00_);($#,##0.00)&apos;.
predefined_format &apos;8&apos; &apos;$#,##0.00_);[Red]($#,##0.00)&apos;.
predefined_format &apos;9&apos; &apos;0%&apos;.
predefined_format &apos;10&apos; &apos;0.00%&apos;.
predefined_format &apos;11&apos; &apos;0.00E+00&apos;.
predefined_format &apos;12&apos; &apos;# ?/?&apos;.
predefined_format &apos;13&apos; &apos;# ??/??&apos;.
predefined_format &apos;14&apos; &apos;m/d/yyyy&apos;.
predefined_format &apos;15&apos; &apos;d-mmm-yy&apos;.
predefined_format &apos;16&apos; &apos;d-mmm&apos;.
predefined_format &apos;17&apos; &apos;mmm-yy&apos;.
predefined_format &apos;18&apos; &apos;h:mm AM/PM&apos;.
predefined_format &apos;19&apos; &apos;h:mm:ss AM/PM&apos;.
predefined_format &apos;20&apos; &apos;h:mm&apos;.
predefined_format &apos;21&apos; &apos;h:mm:ss&apos;.
predefined_format &apos;22&apos; &apos;m/d/yyyy h:mm&apos;.
* 2do§1 Why is there a gap in here?
predefined_format &apos;37&apos; &apos;#,##0_);(#,##0)&apos;.
predefined_format &apos;38&apos; &apos;#,##0_);[Red](#,##0)&apos;.
predefined_format &apos;39&apos; &apos;#,##0.00_);(#,##0.00)&apos;.
predefined_format &apos;40&apos; &apos;#,##0.00_);[Red](#,##0.00)&apos;.
* 2do§1 Why is there a gap in here?
predefined_format &apos;45&apos; &apos;mm:ss&apos;.
predefined_format &apos;46&apos; &apos;[h]:mm:ss&apos;.
predefined_format &apos;47&apos; &apos;mm:ss.0&apos;.
predefined_format &apos;48&apos; &apos;##0.0E+0&apos;.
predefined_format &apos;49&apos; &apos;@&apos;.
* 2do§1 Is 49 really the last predefined format?
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 "/>
<source>method LOAD_WORKBOOK.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 Move macro-reading from zcl_excel_reader_xlsm to this class
* autodetect existance of macro/vba content
* Allow inputparameter to explicitly tell reader to ignore vba-content
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-11-10
* - ...
* changes: renaming variables to naming conventions
* aligning code
* removing unused variables
* adding me-&gt; where possible
* renaming variables to indicate what they are used for
* adding comments to explain what we are trying to achieve
* renaming i/o parameters: previous input-parameter ip_path holds a (full) filename and not a path --&gt; rename to iv_workbook_full_filename
* ip_excel renamed while being at it --&gt; rename to io_excel
*--------------------------------------------------------------------*
* issue #232 - Read worksheetstate hidden/veryHidden
* - Stefan Schmöcker, 2012-11-11
*--------------------------------------------------------------------*
* issue#235 - repeat rows/columns
* - Stefan Schmöcker, 2012-12-02
* changes: correction in named ranges to correctly attach
* sheetlocal names/ranges to the correct sheet
*--------------------------------------------------------------------*
* issue#284 - Copied formulae ignored when reading excelfile
* - Stefan Schmöcker, 2013-08-02
* changes: initialize area to hold referenced formulaedata
* after all worksheets have been read resolve formuae
*--------------------------------------------------------------------*
CONSTANTS: lcv_shared_strings TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings&apos;,
lcv_worksheet TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet&apos;,
lcv_styles TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles&apos;,
lcv_vba_project TYPE string VALUE &apos;http://schemas.microsoft.com/office/2006/relationships/vbaProject&apos;, &quot;#EC NEEDED for future incorporation of XLSM-reader
*--------------------------------------------------------------------*
* #232: Read worksheetstate hidden/veryHidden - begin data declarations
*--------------------------------------------------------------------*
lcv_worksheet_state_hidden TYPE string VALUE &apos;hidden&apos;,
lcv_worksheet_state_veryhidden TYPE string VALUE &apos;veryHidden&apos;.
*--------------------------------------------------------------------*
* #232: Read worksheetstate hidden/veryHidden - end data declarations
*--------------------------------------------------------------------*
DATA:
lv_path TYPE string,
lv_filename TYPE chkfile,
lv_full_filename TYPE string,
lo_rels_workbook TYPE REF TO if_ixml_document,
lt_worksheets TYPE STANDARD TABLE OF t_relationship WITH NON-UNIQUE DEFAULT KEY,
lo_workbook TYPE REF TO if_ixml_document,
lv_workbook_index TYPE i,
lv_worksheet_path TYPE string,
ls_sheet TYPE t_sheet,
lo_node TYPE REF TO if_ixml_element,
ls_relationship TYPE t_relationship,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lv_worksheet_title TYPE zexcel_sheet_title,
lv_tabix TYPE sytabix, &quot; #235 - repeat rows/cols. Needed to link defined name to correct worksheet
ls_range TYPE t_range,
lv_range_value TYPE zexcel_range_value,
*--------------------------------------------------------------------*
* #229: Set active worksheet - begin data declarations
*--------------------------------------------------------------------*
lv_active_sheet_string TYPE string,
lv_zexcel_active_worksheet TYPE zexcel_active_worksheet,
*--------------------------------------------------------------------*
* issue#235 - repeat rows/columns - added autofilter support while changing this section
lo_autofilter TYPE REF TO zcl_excel_autofilter,
ls_area TYPE zexcel_s_autofilter_area,
lv_col_start_alpha TYPE zexcel_cell_column_alpha,
lv_col_end_alpha TYPE zexcel_cell_column_alpha,
lv_row_start TYPE zexcel_cell_row,
lv_row_end TYPE zexcel_cell_row ,
lv_regex TYPE string,
lv_range_value_1 TYPE zexcel_range_value,
lv_range_value_2 TYPE zexcel_range_value.
*--------------------------------------------------------------------*
* #229: Set active worksheet - end data declarations
*--------------------------------------------------------------------*
FIELD-SYMBOLS: &lt;worksheet&gt; TYPE t_relationship.
*--------------------------------------------------------------------*
* §1 Get the position of files related to this workbook
* Usually this will be &lt;root&gt;/xl/workbook.xml
* Thus the workbookroot will be &lt;root&gt;/xl/
* The position of all related files will be given in file
* &lt;workbookroot&gt;/_rels/&lt;workbookfilename&gt;.rels and their positions
* be be given relative to the workbookroot
* Following is an example how this file could be set up
* &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;true&quot;?&gt;
* &lt;Relationships xmlns=&quot;http://schemas.openxmlformats.org/package/2006/relationships&quot;&gt;
* &lt;Relationship Target=&quot;styles.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles&quot; Id=&quot;rId6&quot;/&gt;
* &lt;Relationship Target=&quot;theme/theme1.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme&quot; Id=&quot;rId5&quot;/&gt;
* &lt;Relationship Target=&quot;worksheets/sheet1.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet&quot; Id=&quot;rId1&quot;/&gt;
* &lt;Relationship Target=&quot;worksheets/sheet2.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet&quot; Id=&quot;rId2&quot;/&gt;
* &lt;Relationship Target=&quot;worksheets/sheet3.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet&quot; Id=&quot;rId3&quot;/&gt;
* &lt;Relationship Target=&quot;worksheets/sheet4.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet&quot; Id=&quot;rId4&quot;/&gt;
* &lt;Relationship Target=&quot;sharedStrings.xml&quot; Type=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings&quot; Id=&quot;rId7&quot;/&gt;
* &lt;/Relationships&gt;
*
* §2 Load data that is relevant to the complete workbook
* Currently supported is:
* §2.1 Shared strings - This holds all strings that are used in all worksheets
* §2.2 Styles - This holds all styles that are used in all worksheets
* §2.3 Worksheets - For each worksheet in the workbook one entry appears here to point to the file that holds the content of this worksheet
* §2.4 [Themes] - not supported
* §2.5 [VBA (Macro)] - supported in class zcl_excel_reader_xlsm but should be moved here and autodetect
* ...
*
* §3 Some information is held in the workbookfile as well
* §3.1 Names and order of of worksheets
* §3.2 Active worksheet
* §3.3 Defined names
* ...
* Following is an example how this file could be set up
* &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;true&quot;?&gt;
* &lt;workbook xmlns:r=&quot;http://schemas.openxmlformats.org/officeDocument/2006/relationships&quot; xmlns=&quot;http://schemas.openxmlformats.org/spreadsheetml/2006/main&quot;&gt;
* &lt;fileVersion rupBuild=&quot;4506&quot; lowestEdited=&quot;4&quot; lastEdited=&quot;4&quot; appName=&quot;xl&quot;/&gt;
* &lt;workbookPr defaultThemeVersion=&quot;124226&quot;/&gt;
* &lt;bookViews&gt;
* &lt;workbookView activeTab=&quot;1&quot; windowHeight=&quot;8445&quot; windowWidth=&quot;19035&quot; yWindow=&quot;120&quot; xWindow=&quot;120&quot;/&gt;
* &lt;/bookViews&gt;
* &lt;sheets&gt;
* &lt;sheet r:id=&quot;rId1&quot; sheetId=&quot;1&quot; name=&quot;Sheet1&quot;/&gt;
* &lt;sheet r:id=&quot;rId2&quot; sheetId=&quot;2&quot; name=&quot;Sheet2&quot;/&gt;
* &lt;sheet r:id=&quot;rId3&quot; sheetId=&quot;3&quot; name=&quot;Sheet3&quot; state=&quot;hidden&quot;/&gt;
* &lt;sheet r:id=&quot;rId4&quot; sheetId=&quot;4&quot; name=&quot;Sheet4&quot;/&gt;
* &lt;/sheets&gt;
* &lt;definedNames/&gt;
* &lt;calcPr calcId=&quot;125725&quot;/&gt;
* &lt;/workbook&gt;
*--------------------------------------------------------------------*
CLEAR me-&gt;mt_ref_formulae. &quot; ins issue#284
*--------------------------------------------------------------------*
* §1 Get the position of files related to this workbook
* Entry into this method is with the filename of the workbook
*--------------------------------------------------------------------*
CALL FUNCTION &apos;TRINT_SPLIT_FILE_AND_PATH&apos;
EXPORTING
full_name = iv_workbook_full_filename
IMPORTING
stripped_name = lv_filename
file_path = lv_path.
CONCATENATE lv_path &apos;_rels/&apos; lv_filename &apos;.rels&apos;
INTO lv_full_filename.
lo_rels_workbook = me-&gt;get_ixml_from_zip_archive( lv_full_filename ).
lo_node ?= lo_rels_workbook-&gt;find_from_name( &apos;Relationship&apos; ). &quot;#EC NOTEXT
WHILE lo_node IS BOUND.
me-&gt;fill_struct_from_attributes( EXPORTING ip_element = lo_node CHANGING cp_structure = ls_relationship ).
CASE ls_relationship-type.
*--------------------------------------------------------------------*
* §2.1 Shared strings - This holds all strings that are used in all worksheets
*--------------------------------------------------------------------*
WHEN lcv_shared_strings.
CONCATENATE lv_path ls_relationship-target
INTO lv_full_filename.
me-&gt;load_shared_strings( lv_full_filename ).
*--------------------------------------------------------------------*
* §2.3 Worksheets
* For each worksheet in the workbook one entry appears here to point to the file that holds the content of this worksheet
* Shared strings and styles have to be present before we can start with creating the worksheets
* thus we only store this information for use when parsing the workbookfile for sheetinformations
*--------------------------------------------------------------------*
WHEN lcv_worksheet.
APPEND ls_relationship TO lt_worksheets.
*--------------------------------------------------------------------*
* §2.2 Styles - This holds the styles that are used in all worksheets
*--------------------------------------------------------------------*
WHEN lcv_styles.
CONCATENATE lv_path ls_relationship-target
INTO lv_full_filename.
me-&gt;load_styles( ip_path = lv_full_filename
ip_excel = io_excel ).
WHEN OTHERS.
ENDCASE.
lo_node ?= lo_node-&gt;get_next( ).
ENDWHILE.
*--------------------------------------------------------------------*
* §3 Some information held in the workbookfile
*--------------------------------------------------------------------*
lo_workbook = me-&gt;get_ixml_from_zip_archive( iv_workbook_full_filename ).
*--------------------------------------------------------------------*
* §3.1 Names and order of of worksheets
*--------------------------------------------------------------------*
lo_node ?= lo_workbook-&gt;find_from_name( &apos;sheet&apos; ).
lv_workbook_index = 1.
WHILE lo_node IS BOUND.
me-&gt;fill_struct_from_attributes( EXPORTING
ip_element = lo_node
CHANGING
cp_structure = ls_sheet ).
*--------------------------------------------------------------------*
* Create new worksheet in workbook with correct name
*--------------------------------------------------------------------*
lv_worksheet_title = ls_sheet-name.
IF lv_workbook_index = 1. &quot; First sheet has been added automatically by creating io_excel
lo_worksheet = io_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( lv_worksheet_title ).
ELSE.
lo_worksheet = io_excel-&gt;add_new_worksheet( lv_worksheet_title ).
ENDIF.
*--------------------------------------------------------------------*
* #232 - Read worksheetstate hidden/veryHidden - begin of coding
* Set status hidden if necessary
*--------------------------------------------------------------------*
CASE ls_sheet-state.
WHEN lcv_worksheet_state_hidden.
lo_worksheet-&gt;zif_excel_sheet_properties~hidden = zif_excel_sheet_properties=&gt;c_hidden.
WHEN lcv_worksheet_state_veryhidden.
lo_worksheet-&gt;zif_excel_sheet_properties~hidden = zif_excel_sheet_properties=&gt;c_veryhidden.
ENDCASE.
*--------------------------------------------------------------------*
* #232 - Read worksheetstate hidden/veryHidden - end of coding
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* Load worksheetdata
*--------------------------------------------------------------------*
READ TABLE lt_worksheets ASSIGNING &lt;worksheet&gt; WITH KEY id = ls_sheet-id.
IF sy-subrc = 0.
&lt;worksheet&gt;-sheetid = ls_sheet-sheetid. &quot;ins #235 - repeat rows/cols - needed to identify correct sheet
CONCATENATE lv_path &lt;worksheet&gt;-target
INTO lv_worksheet_path.
me-&gt;load_worksheet( ip_path = lv_worksheet_path
io_worksheet = lo_worksheet ).
&lt;worksheet&gt;-worksheet = lo_worksheet.
ENDIF.
lo_node ?= lo_node-&gt;get_next( ).
ADD 1 TO lv_workbook_index.
ENDWHILE.
SORT lt_worksheets BY sheetid. &quot; needed for localSheetid -referencing
*--------------------------------------------------------------------*
* #284: Set active worksheet - Resolve referenced formulae to
* explicit formulae those cells
*--------------------------------------------------------------------*
me-&gt;resolve_referenced_formulae( ).
&quot; ins issue#284
*--------------------------------------------------------------------*
* #229: Set active worksheet - begin coding
* §3.2 Active worksheet
*--------------------------------------------------------------------*
lv_zexcel_active_worksheet = 1. &quot; First sheet = active sheet if nothing else specified.
lo_node ?= lo_workbook-&gt;find_from_name( &apos;workbookView&apos; ).
IF lo_node IS BOUND.
lv_active_sheet_string = lo_node-&gt;get_attribute( &apos;activeTab&apos; ).
TRY.
lv_zexcel_active_worksheet = lv_active_sheet_string + 1. &quot; EXCEL numbers the sheets from 0 onwards --&gt; index into worksheettable is increased by one
CATCH cx_sy_conversion_error. &quot;#EC NO_HANDLER - error here --&gt; just use the default 1st sheet
ENDTRY.
ENDIF.
io_excel-&gt;set_active_sheet_index( lv_zexcel_active_worksheet ).
*--------------------------------------------------------------------*
* #229: Set active worksheet - end coding
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* §3.3 Defined names
* So far I have encountered these
* - named ranges - sheetlocal
* - named ranges - workbookglobal
* - autofilters - sheetlocal ( special range )
* - repeat rows/cols - sheetlocal ( special range )
*
*--------------------------------------------------------------------*
lo_node ?= lo_workbook-&gt;find_from_name( &apos;definedName&apos; ).
WHILE lo_node IS BOUND.
CLEAR lo_range. &quot;ins issue #235 - repeat rows/cols
me-&gt;fill_struct_from_attributes( EXPORTING
ip_element = lo_node
CHANGING
cp_structure = ls_range ).
lv_range_value = lo_node-&gt;get_value( ).
IF ls_range-localsheetid IS NOT INITIAL. &quot; issue #163+
* READ TABLE lt_worksheets ASSIGNING &lt;worksheet&gt; WITH KEY id = ls_range-localsheetid. &quot;del issue #235 - repeat rows/cols &quot; issue #163+
* lo_range = &lt;worksheet&gt;-worksheet-&gt;add_new_range( ). &quot;del issue #235 - repeat rows/cols &quot; issue #163+
*--------------------------------------------------------------------*
* issue#235 - repeat rows/columns - begin
*--------------------------------------------------------------------*
lv_tabix = ls_range-localsheetid + 1.
READ TABLE lt_worksheets ASSIGNING &lt;worksheet&gt; INDEX lv_tabix.
IF sy-subrc = 0.
CASE ls_range-name.
*--------------------------------------------------------------------*
* insert autofilters
*--------------------------------------------------------------------*
WHEN zcl_excel_autofilters=&gt;c_autofilter.
lo_autofilter = io_excel-&gt;add_new_autofilter( io_sheet = &lt;worksheet&gt;-worksheet ) .
zcl_excel_common=&gt;convert_range2column_a_row( EXPORTING i_range = lv_range_value
IMPORTING e_column_start = lv_col_start_alpha
e_column_end = lv_col_end_alpha
e_row_start = ls_area-row_start ).
ls_area-col_start = zcl_excel_common=&gt;convert_column2int( lv_col_start_alpha ).
ls_area-col_end = zcl_excel_common=&gt;convert_column2int( lv_col_end_alpha ).
lo_autofilter-&gt;set_filter_area( is_area = ls_area ).
*--------------------------------------------------------------------*
* repeat print rows/columns
*--------------------------------------------------------------------*
WHEN zif_excel_sheet_printsettings=&gt;gcv_print_title_name.
lo_range = &lt;worksheet&gt;-worksheet-&gt;add_new_range( ).
*--------------------------------------------------------------------*
* This might be a temporary solution. Maybe ranges get be reworked
* to support areas consisting of multiple rectangles
* But for now just split the range into row and columnpart
*--------------------------------------------------------------------*
CLEAR:lv_range_value_1,
lv_range_value_2.
IF lv_range_value IS INITIAL.
* Empty --&gt; nothing to do
ELSE.
IF lv_range_value(1) = `&apos;`. &quot; Escaped
lv_regex = `^(&apos;[^&apos;]*&apos;)+![^,]*,`.
ELSE.
lv_regex = `^[^!]*![^,]*,`.
ENDIF.
* Split into two ranges if necessary
FIND REGEX lv_regex IN lv_range_value MATCH LENGTH sy-fdpos.
IF sy-subrc = 0 AND sy-fdpos &gt; 0.
lv_range_value_2 = lv_range_value+sy-fdpos.
SUBTRACT 1 FROM sy-fdpos.
lv_range_value_1 = lv_range_value(sy-fdpos).
ELSE.
lv_range_value_1 = lv_range_value.
ENDIF.
ENDIF.
* 1st range
zcl_excel_common=&gt;convert_range2column_a_row( EXPORTING i_range = lv_range_value_1
IMPORTING e_column_start = lv_col_start_alpha
e_column_end = lv_col_end_alpha
e_row_start = lv_row_start
e_row_end = lv_row_end ).
IF lv_col_start_alpha IS NOT INITIAL.
&lt;worksheet&gt;-worksheet-&gt;zif_excel_sheet_printsettings~set_print_repeat_columns( iv_columns_from = lv_col_start_alpha
iv_columns_to = lv_col_end_alpha ).
ENDIF.
IF lv_row_start IS NOT INITIAL.
&lt;worksheet&gt;-worksheet-&gt;zif_excel_sheet_printsettings~set_print_repeat_rows( iv_rows_from = lv_row_start
iv_rows_to = lv_row_end ).
ENDIF.
* 2nd range
zcl_excel_common=&gt;convert_range2column_a_row( EXPORTING i_range = lv_range_value_2
IMPORTING e_column_start = lv_col_start_alpha
e_column_end = lv_col_end_alpha
e_row_start = lv_row_start
e_row_end = lv_row_end ).
IF lv_col_start_alpha IS NOT INITIAL.
&lt;worksheet&gt;-worksheet-&gt;zif_excel_sheet_printsettings~set_print_repeat_columns( iv_columns_from = lv_col_start_alpha
iv_columns_to = lv_col_end_alpha ).
ENDIF.
IF lv_row_start IS NOT INITIAL.
&lt;worksheet&gt;-worksheet-&gt;zif_excel_sheet_printsettings~set_print_repeat_rows( iv_rows_from = lv_row_start
iv_rows_to = lv_row_end ).
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDIF.
*--------------------------------------------------------------------*
* issue#235 - repeat rows/columns - end
*--------------------------------------------------------------------*
ELSE. &quot; issue #163+
lo_range = io_excel-&gt;add_new_range( ). &quot; issue #163+
ENDIF. &quot; issue #163+
* lo_range = ip_excel-&gt;add_new_range( ). &quot; issue #163-
IF lo_range IS BOUND. &quot;ins issue #235 - repeat rows/cols
lo_range-&gt;name = ls_range-name.
lo_range-&gt;set_range_value( lv_range_value ).
ENDIF. &quot;ins issue #235 - repeat rows/cols
lo_node ?= lo_node-&gt;get_next( ).
ENDWHILE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Loads worksheet" EXPOSURE="1" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<exception CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>METHOD load_worksheet.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 Header/footer
*
* Please don&apos;t just delete these ToDos if they are not
* needed but leave a comment that states this
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker,
* - ...
* changes: renaming variables to naming conventions
* aligning code (started)
* add a list of open ToDos here
* adding comments to explain what we are trying to achieve (started)
*--------------------------------------------------------------------*
TYPES: BEGIN OF lty_cell,
r TYPE string,
t TYPE string,
s TYPE string,
END OF lty_cell.
TYPES: BEGIN OF lty_column,
min TYPE string,
max TYPE string,
width TYPE float,
customwidth TYPE string,
style TYPE string,
bestfit TYPE string,
collapsed TYPE string,
hidden TYPE string,
outlinelevel TYPE string,
END OF lty_column.
TYPES: BEGIN OF lty_sheetview,
showgridlines TYPE zexcel_show_gridlines,
tabselected TYPE string,
zoomscalenormal TYPE string,
workbookviewid TYPE string,
showrowcolheaders TYPE string,
END OF lty_sheetview.
TYPES: BEGIN OF lty_mergecell,
ref TYPE string,
END OF lty_mergecell.
TYPES: BEGIN OF lty_row,
r TYPE string,
customheight TYPE string,
ht TYPE float,
spans TYPE string,
thickbot TYPE string,
customformat TYPE string,
thicktop TYPE string,
collapsed TYPE string,
hidden TYPE string,
outlinelevel TYPE string,
END OF lty_row.
TYPES: BEGIN OF lty_page_setup,
id TYPE string,
orientation TYPE string,
scale TYPE string,
END OF lty_page_setup.
TYPES: BEGIN OF lty_page_margins,
footer TYPE string,
header TYPE string,
bottom TYPE string,
top TYPE string,
right TYPE string,
left TYPE string,
END OF lty_page_margins.
TYPES: BEGIN OF lty_sheetformatpr,
customheight TYPE string,
defaultrowheight TYPE string,
customwidth TYPE string,
defaultcolwidth TYPE string,
END OF lty_sheetformatpr.
TYPES: BEGIN OF lty_headerfooter,
alignwithmargins TYPE string,
differentoddeven TYPE string,
END OF lty_headerfooter.
TYPES: BEGIN OF lty_tabcolor,
rgb TYPE string,
theme TYPE string,
END OF lty_tabcolor.
TYPES: BEGIN OF lty_datavalidation,
type TYPE zexcel_data_val_type,
allowblank TYPE flag,
showinputmessage TYPE flag,
showerrormessage TYPE flag,
showdropdown TYPE flag,
operator TYPE zexcel_data_val_operator,
formula1 TYPE zexcel_validation_formula1,
formula2 TYPE zexcel_validation_formula1,
sqref TYPE string,
cell_column TYPE zexcel_cell_column_alpha,
cell_column_to TYPE zexcel_cell_column_alpha,
cell_row TYPE zexcel_cell_row,
cell_row_to TYPE zexcel_cell_row,
error TYPE string,
errortitle TYPE string,
prompt TYPE string,
prompttitle TYPE string,
errorstyle TYPE zexcel_data_val_error_style,
END OF lty_datavalidation.
CONSTANTS: lc_xml_attr_true TYPE string VALUE &apos;true&apos;,
lc_xml_attr_true_int TYPE string VALUE &apos;1&apos;,
lc_rel_drawing TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing&apos;,
lc_rel_printer TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings&apos;.
DATA: lo_ixml_worksheet TYPE REF TO if_ixml_document,
lo_ixml_cells TYPE REF TO if_ixml_node_collection,
lo_ixml_iterator TYPE REF TO if_ixml_node_iterator,
lo_ixml_iterator2 TYPE REF TO if_ixml_node_iterator,
lo_ixml_row_elem TYPE REF TO if_ixml_element,
lo_ixml_cell_elem TYPE REF TO if_ixml_element,
ls_cell TYPE lty_cell,
lv_index TYPE i,
lo_ixml_value_elem TYPE REF TO if_ixml_element,
lo_ixml_formula_elem TYPE REF TO if_ixml_element,
lv_cell_value TYPE zexcel_cell_value,
lv_cell_formula TYPE zexcel_cell_formula,
lv_cell_column TYPE zexcel_cell_column_alpha,
lv_cell_row TYPE zexcel_cell_row,
lo_excel_style TYPE REF TO zcl_excel_style,
lv_style_guid TYPE zexcel_cell_style,
lo_ixml_imension_elem TYPE REF TO if_ixml_element, &quot;#+234
lv_dimension_range TYPE string, &quot;#+234
lo_ixml_sheetview_elem TYPE REF TO if_ixml_element,
ls_sheetview TYPE lty_sheetview,
lo_ixml_pane_elem TYPE REF TO if_ixml_element,
ls_excel_pane TYPE zexcel_pane,
lv_pane_cell_row TYPE zexcel_cell_row,
lv_pane_cell_col_a TYPE zexcel_cell_column_alpha,
lv_pane_cell_col TYPE zexcel_cell_column,
lo_ixml_mergecells TYPE REF TO if_ixml_node_collection,
lo_ixml_mergecell_elem TYPE REF TO if_ixml_element,
ls_mergecell TYPE lty_mergecell,
lv_merge_column_start TYPE zexcel_cell_column_alpha,
lv_merge_column_end TYPE zexcel_cell_column_alpha,
lv_merge_row_start TYPE zexcel_cell_row,
lv_merge_row_end TYPE zexcel_cell_row,
lo_ixml_sheetformatpr_elem TYPE REF TO if_ixml_element,
ls_sheetformatpr TYPE lty_sheetformatpr,
lv_height TYPE float,
lo_ixml_headerfooter_elem TYPE REF TO if_ixml_element,
ls_headerfooter TYPE lty_headerfooter,
ls_odd_header TYPE zexcel_s_worksheet_head_foot,
ls_odd_footer TYPE zexcel_s_worksheet_head_foot,
ls_even_header TYPE zexcel_s_worksheet_head_foot,
ls_even_footer TYPE zexcel_s_worksheet_head_foot,
lo_ixml_hf_value_elem TYPE REF TO if_ixml_element,
lo_ixml_pagemargins_elem TYPE REF TO if_ixml_element,
ls_pagemargins TYPE lty_page_margins,
lo_ixml_pagesetup_elem TYPE REF TO if_ixml_element,
ls_pagesetup TYPE lty_page_setup,
lo_ixml_columns TYPE REF TO if_ixml_node_collection,
lo_ixml_column_elem TYPE REF TO if_ixml_element,
ls_column TYPE lty_column,
lv_column_alpha TYPE zexcel_cell_column_alpha,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lv_outline_level TYPE int4,
lo_ixml_tabcolor TYPE REF TO if_ixml_element,
ls_tabcolor TYPE lty_tabcolor,
ls_excel_s_tabcolor TYPE zexcel_s_tabcolor,
lo_ixml_rows TYPE REF TO if_ixml_node_collection,
ls_row TYPE lty_row,
lv_max_col TYPE i, &quot;for use with SPANS element
* lv_min_col TYPE i, &quot;for use with SPANS element &quot; not in use currently
lv_max_col_s TYPE char10, &quot;for use with SPANS element
lv_min_col_s TYPE char10, &quot;for use with SPANS element
lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
*--- End of current code aligning ---------------------------------------------------------------
lv_path TYPE string,
lo_ixml_node TYPE REF TO if_ixml_element,
ls_relationship TYPE t_relationship,
lo_ixml_rels_worksheet TYPE REF TO if_ixml_document,
lv_rels_worksheet_path TYPE string,
lv_stripped_name TYPE chkfile,
lv_dirname TYPE string,
lo_ixml_datavalidations TYPE REF TO if_ixml_node_collection,
lo_ixml_datavalidation_elem TYPE REF TO if_ixml_element,
ls_datavalidation TYPE lty_datavalidation,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lv_datavalidation_range TYPE string,
lt_datavalidation_range TYPE TABLE OF string.
DATA: lv_errormessage TYPE string,
lo_ex TYPE REF TO cx_root.
*--------------------------------------------------------------------*
* §2 We need to read the the file &quot;\\_rels\.rels&quot; because it tells
* us where in this folder structure the data for the workbook
* is located in the xlsx zip-archive
*
* The xlsx Zip-archive has generally the following folder structure:
* &lt;root&gt; |
* |--&gt; _rels
* |--&gt; doc_Props
* |--&gt; xl |
* |--&gt; _rels
* |--&gt; theme
* |--&gt; worksheets
*--------------------------------------------------------------------*
&quot; Read Workbook Relationships
CALL FUNCTION &apos;TRINT_SPLIT_FILE_AND_PATH&apos;
EXPORTING
full_name = ip_path
IMPORTING
stripped_name = lv_stripped_name
file_path = lv_dirname.
CONCATENATE lv_dirname &apos;_rels/&apos; lv_stripped_name &apos;.rels&apos;
INTO lv_rels_worksheet_path.
TRY. &quot; +#222 _rels/xxx.rels might not be present. If not found there can be no drawings --&gt; just ignore this section
lo_ixml_rels_worksheet = me-&gt;get_ixml_from_zip_archive( lv_rels_worksheet_path ).
lo_ixml_node ?= lo_ixml_rels_worksheet-&gt;find_from_name( &apos;Relationship&apos; ).
CATCH zcx_excel. &quot;#EC NO_HANDLER +#222
&quot; +#222 No errorhandling necessary - node will be unbound if error occurs
ENDTRY. &quot; +#222
WHILE lo_ixml_node IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_ixml_node
CHANGING
cp_structure = ls_relationship ).
CONCATENATE lv_dirname ls_relationship-target INTO lv_path.
lv_path = resolve_path( lv_path ).
CASE ls_relationship-type.
WHEN lc_rel_drawing.
&quot; Read Drawings
me-&gt;load_worksheet_drawing( ip_path = lv_path
io_worksheet = io_worksheet ).
WHEN lc_rel_printer.
&quot; Read Printer settings
WHEN OTHERS.
ENDCASE.
lo_ixml_node ?= lo_ixml_node-&gt;get_next( ).
ENDWHILE.
lo_ixml_worksheet = me-&gt;get_ixml_from_zip_archive( ip_path ).
lo_ixml_tabcolor ?= lo_ixml_worksheet-&gt;find_from_name( &apos;tabColor&apos; ).
IF lo_ixml_tabcolor IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_ixml_tabcolor
CHANGING
cp_structure = ls_tabcolor ).
* Theme not supported yet
IF ls_tabcolor-rgb IS NOT INITIAL.
ls_excel_s_tabcolor-rgb = ls_tabcolor-rgb.
io_worksheet-&gt;set_tabcolor( ls_excel_s_tabcolor ).
ENDIF.
ENDIF.
lo_ixml_rows = lo_ixml_worksheet-&gt;get_elements_by_tag_name( name = &apos;row&apos; ).
lo_ixml_iterator = lo_ixml_rows-&gt;create_iterator( ).
lo_ixml_row_elem ?= lo_ixml_iterator-&gt;get_next( ).
WHILE lo_ixml_row_elem IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_ixml_row_elem
CHANGING
cp_structure = ls_row ).
SPLIT ls_row-spans AT &apos;:&apos; INTO lv_min_col_s lv_max_col_s.
lv_index = lv_max_col_s.
IF lv_index &gt; lv_max_col.
lv_max_col = lv_index.
ENDIF.
lv_cell_row = ls_row-r.
IF ls_row-customheight = &apos;1&apos;
OR ls_row-collapsed = lc_xml_attr_true
OR ls_row-collapsed = lc_xml_attr_true_int
OR ls_row-hidden = lc_xml_attr_true
OR ls_row-hidden = lc_xml_attr_true_int
OR ls_row-outlinelevel &gt; &apos;0&apos;.
lo_row_dimension = io_worksheet-&gt;get_row_dimension( lv_cell_row ).
IF ls_row-customheight = &apos;1&apos;.
lo_row_dimension-&gt;set_row_height( ls_row-ht ).
ENDIF.
IF ls_row-collapsed = lc_xml_attr_true
OR ls_row-collapsed = lc_xml_attr_true_int.
lo_row_dimension-&gt;set_collapsed( abap_true ).
ENDIF.
IF ls_row-hidden = lc_xml_attr_true
OR ls_row-hidden = lc_xml_attr_true_int.
lo_row_dimension-&gt;set_visible( abap_false ).
ENDIF.
IF ls_row-outlinelevel &gt; &apos;&apos;.
* outline_level = condense( row-outlineLevel ). &quot;For basis 7.02 and higher
CONDENSE ls_row-outlinelevel.
lv_outline_level = ls_row-outlinelevel.
IF lv_outline_level &gt; 0.
lo_row_dimension-&gt;set_outline_level( lv_outline_level ).
ENDIF.
ENDIF.
ENDIF.
lo_ixml_cells = lo_ixml_row_elem-&gt;get_elements_by_tag_name( name = &apos;c&apos; ).
lo_ixml_iterator2 = lo_ixml_cells-&gt;create_iterator( ).
lo_ixml_cell_elem ?= lo_ixml_iterator2-&gt;get_next( ).
WHILE lo_ixml_cell_elem IS BOUND.
CLEAR: lv_cell_value,
lv_cell_formula,
lv_style_guid.
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_cell_elem CHANGING cp_structure = ls_cell ).
lo_ixml_value_elem = lo_ixml_cell_elem-&gt;find_from_name( name = &apos;v&apos; ).
CASE ls_cell-t.
WHEN &apos;s&apos;. &quot; String values are stored as index in shared string table
lv_index = lo_ixml_value_elem-&gt;get_value( ) + 1.
READ TABLE shared_strings INTO lv_cell_value INDEX lv_index.
WHEN &apos;inlineStr&apos;. &quot; inlineStr values are kept in special node
lo_ixml_value_elem = lo_ixml_cell_elem-&gt;find_from_name( name = &apos;is&apos; ).
IF lo_ixml_value_elem IS BOUND.
lv_cell_value = lo_ixml_value_elem-&gt;get_value( ).
ENDIF.
WHEN OTHERS. &quot;other types are stored directly
IF lo_ixml_value_elem IS BOUND.
lv_cell_value = lo_ixml_value_elem-&gt;get_value( ).
ENDIF.
ENDCASE.
CLEAR lv_style_guid.
&quot;read style based on index
IF ls_cell-s IS NOT INITIAL.
lv_index = ls_cell-s + 1.
READ TABLE styles INTO lo_excel_style INDEX lv_index.
IF sy-subrc = 0.
lv_style_guid = lo_excel_style-&gt;get_guid( ).
ENDIF.
ENDIF.
lo_ixml_formula_elem = lo_ixml_cell_elem-&gt;find_from_name( name = &apos;f&apos; ).
IF lo_ixml_formula_elem IS BOUND.
lv_cell_formula = lo_ixml_formula_elem-&gt;get_value( ).
*--------------------------------------------------------------------*
* Begin of insertion issue#284 - Copied formulae not
*--------------------------------------------------------------------*
DATA: BEGIN OF ls_formula_attributes,
ref TYPE string,
si TYPE i,
t TYPE string,
END OF ls_formula_attributes,
ls_ref_formula TYPE ty_ref_formulae.
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_formula_elem CHANGING cp_structure = ls_formula_attributes ).
IF ls_formula_attributes-t = &apos;shared&apos;.
zcl_excel_common=&gt;convert_columnrow2column_a_row( EXPORTING
i_columnrow = ls_cell-r
IMPORTING
e_column = lv_cell_column
e_row = lv_cell_row ).
TRY.
CLEAR ls_ref_formula.
ls_ref_formula-sheet = io_worksheet.
ls_ref_formula-row = lv_cell_row.
ls_ref_formula-column = zcl_excel_common=&gt;convert_column2int( lv_cell_column ).
ls_ref_formula-si = ls_formula_attributes-si.
ls_ref_formula-ref = ls_formula_attributes-ref.
ls_ref_formula-formula = lv_cell_formula.
INSERT ls_ref_formula INTO TABLE me-&gt;mt_ref_formulae.
CATCH cx_root INTO lo_ex.
lv_errormessage = lo_ex-&gt;if_message~get_text( ).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDTRY.
ENDIF.
*--------------------------------------------------------------------*
* End of insertion issue#284 - Copied formulae not
*--------------------------------------------------------------------*
ENDIF.
IF lv_cell_value IS NOT INITIAL
OR lv_cell_formula IS NOT INITIAL
OR lv_style_guid IS NOT INITIAL.
zcl_excel_common=&gt;convert_columnrow2column_a_row( EXPORTING
i_columnrow = ls_cell-r
IMPORTING
e_column = lv_cell_column
e_row = lv_cell_row ).
io_worksheet-&gt;set_cell( ip_column = lv_cell_column &quot; cell_elem Column
ip_row = lv_cell_row &quot; cell_elem row_elem
ip_value = lv_cell_value &quot; cell_elem Value
ip_formula = lv_cell_formula
ip_data_type = ls_cell-t
ip_style = lv_style_guid ).
ENDIF.
lo_ixml_cell_elem ?= lo_ixml_iterator2-&gt;get_next( ).
ENDWHILE.
lo_ixml_row_elem ?= lo_ixml_iterator-&gt;get_next( ).
ENDWHILE.
*--------------------------------------------------------------------*
*#234 - column width not read correctly - begin of coding
* reason - libre office doesn&apos;t use SPAN in row - definitions
*--------------------------------------------------------------------*
IF lv_max_col = 0.
lo_ixml_imension_elem = lo_ixml_worksheet-&gt;find_from_name( name = &apos;dimension&apos; ).
IF lo_ixml_imension_elem IS BOUND.
lv_dimension_range = lo_ixml_imension_elem-&gt;get_attribute( &apos;ref&apos; ).
IF lv_dimension_range CS &apos;:&apos;.
REPLACE REGEX &apos;\D+\d+:(\D+)\d+&apos; IN lv_dimension_range WITH &apos;$1&apos;. &quot; Get max column
ELSE.
REPLACE REGEX &apos;(\D+)\d+&apos; IN lv_dimension_range WITH &apos;$1&apos;. &quot; Get max column
ENDIF.
lv_max_col = zcl_excel_common=&gt;convert_column2int( lv_dimension_range ).
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
*#234 - column width not read correctly - end of coding
*--------------------------------------------------------------------*
&quot;Get the customized column width
lo_ixml_columns = lo_ixml_worksheet-&gt;get_elements_by_tag_name( name = &apos;col&apos; ).
lo_ixml_iterator = lo_ixml_columns-&gt;create_iterator( ).
lo_ixml_column_elem ?= lo_ixml_iterator-&gt;get_next( ).
WHILE lo_ixml_column_elem IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_ixml_column_elem
CHANGING
cp_structure = ls_column ).
lo_ixml_column_elem ?= lo_ixml_iterator-&gt;get_next( ).
IF ls_column-customwidth = lc_xml_attr_true
OR ls_column-customwidth = lc_xml_attr_true_int
OR ls_column-bestfit = lc_xml_attr_true
OR ls_column-bestfit = lc_xml_attr_true_int
OR ls_column-collapsed = lc_xml_attr_true
OR ls_column-collapsed = lc_xml_attr_true_int
OR ls_column-hidden = lc_xml_attr_true
OR ls_column-hidden = lc_xml_attr_true_int
OR ls_column-outlinelevel &gt; &apos;&apos;
OR ls_column-style &gt; &apos;&apos;.
lv_index = ls_column-min.
WHILE lv_index &lt;= ls_column-max AND lv_index &lt;= lv_max_col.
lv_column_alpha = zcl_excel_common=&gt;convert_column2alpha( lv_index ).
lo_column_dimension = io_worksheet-&gt;get_column_dimension( lv_column_alpha ).
IF ls_column-customwidth = lc_xml_attr_true
OR ls_column-customwidth = lc_xml_attr_true_int
OR ls_column-width IS NOT INITIAL. &quot;+#234
lo_column_dimension-&gt;set_width( ls_column-width ).
ENDIF.
IF ls_column-bestfit = lc_xml_attr_true
OR ls_column-bestfit = lc_xml_attr_true_int.
lo_column_dimension-&gt;set_auto_size( abap_true ).
ENDIF.
IF ls_column-collapsed = lc_xml_attr_true
OR ls_column-collapsed = lc_xml_attr_true_int.
lo_column_dimension-&gt;set_collapsed( abap_true ).
ENDIF.
IF ls_column-hidden = lc_xml_attr_true
OR ls_column-hidden = lc_xml_attr_true_int.
lo_column_dimension-&gt;set_visible( abap_false ).
ENDIF.
IF ls_column-outlinelevel &gt; &apos;&apos;.
* outline_level = condense( column-outlineLevel ).
CONDENSE ls_column-outlinelevel.
lv_outline_level = ls_column-outlinelevel.
IF lv_outline_level &gt; 0.
lo_column_dimension-&gt;set_outline_level( lv_outline_level ).
ENDIF.
ENDIF.
IF ls_column-style &gt; &apos;&apos;.
sy-index = ls_column-style + 1.
READ TABLE styles INTO lo_excel_style INDEX sy-index.
DATA: dummy_zexcel_cell_style TYPE zexcel_cell_style.
dummy_zexcel_cell_style = lo_excel_style-&gt;get_guid( ).
lo_column_dimension-&gt;set_column_style_by_guid( dummy_zexcel_cell_style ).
ENDIF.
ADD 1 TO lv_index.
ENDWHILE.
ENDIF.
* Fix 207 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007
* IF column-hidden = lc_xml_attr_true OR
* column-hidden = lc_xml_attr_true_int.
* index = column-min.
* WHILE index &lt;= column-max.
* column_alpha = zcl_excel_common=&gt;convert_column2alpha( index ).
* column_dimension = io_worksheet-&gt;get_column_dimension( column_alpha ).
* column_dimension-&gt;set_visible( abap_false ).
* ADD 1 TO index.
* ENDWHILE.
* ENDIF.
ENDWHILE.
&quot;Now we need to get information from the sheetView node
lo_ixml_sheetview_elem = lo_ixml_worksheet-&gt;find_from_name( name = &apos;sheetView&apos; ).
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_sheetview_elem CHANGING cp_structure = ls_sheetview ).
IF ls_sheetview-showgridlines IS INITIAL OR
ls_sheetview-showgridlines = lc_xml_attr_true OR
ls_sheetview-showgridlines = lc_xml_attr_true_int.
&quot;If the attribute is not specified or set to true, we will show grid lines
ls_sheetview-showgridlines = abap_true.
ELSE.
ls_sheetview-showgridlines = abap_false.
ENDIF.
io_worksheet-&gt;set_show_gridlines( ls_sheetview-showgridlines ).
&quot;Add merge cell information
lo_ixml_mergecells = lo_ixml_worksheet-&gt;get_elements_by_tag_name( name = &apos;mergeCell&apos; ).
lo_ixml_iterator = lo_ixml_mergecells-&gt;create_iterator( ).
lo_ixml_mergecell_elem ?= lo_ixml_iterator-&gt;get_next( ).
WHILE lo_ixml_mergecell_elem IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_ixml_mergecell_elem
CHANGING
cp_structure = ls_mergecell ).
zcl_excel_common=&gt;convert_range2column_a_row( EXPORTING
i_range = ls_mergecell-ref
IMPORTING
e_column_start = lv_merge_column_start
e_column_end = lv_merge_column_end
e_row_start = lv_merge_row_start
e_row_end = lv_merge_row_end ).
lo_ixml_mergecell_elem ?= lo_ixml_iterator-&gt;get_next( ).
io_worksheet-&gt;set_merge( EXPORTING
ip_column_start = lv_merge_column_start
ip_column_end = lv_merge_column_end
ip_row = lv_merge_row_start
ip_row_to = lv_merge_row_end ).
ENDWHILE.
&quot; read sheet format properties
lo_ixml_sheetformatpr_elem = lo_ixml_worksheet-&gt;find_from_name( &apos;sheetFormatPr&apos; ).
IF lo_ixml_sheetformatpr_elem IS NOT INITIAL.
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_sheetformatpr_elem CHANGING cp_structure = ls_sheetformatpr ).
IF ls_sheetformatpr-customheight = &apos;1&apos;.
lv_height = ls_sheetformatpr-defaultrowheight.
lo_row_dimension = io_worksheet-&gt;get_default_row_dimension( ).
lo_row_dimension-&gt;set_row_height( lv_height ).
ENDIF.
&quot; TODO... column
ENDIF.
&quot; Read in page margins
lo_ixml_pagemargins_elem = lo_ixml_worksheet-&gt;find_from_name( &apos;pageMargins&apos; ).
IF lo_ixml_pagemargins_elem IS NOT INITIAL.
fill_struct_from_attributes( EXPORTING
ip_element = lo_ixml_pagemargins_elem
CHANGING
cp_structure = ls_pagemargins ).
io_worksheet-&gt;sheet_setup-&gt;margin_bottom = ls_pagemargins-bottom.
io_worksheet-&gt;sheet_setup-&gt;margin_footer = ls_pagemargins-footer.
io_worksheet-&gt;sheet_setup-&gt;margin_header = ls_pagemargins-header.
io_worksheet-&gt;sheet_setup-&gt;margin_left = ls_pagemargins-left.
io_worksheet-&gt;sheet_setup-&gt;margin_right = ls_pagemargins-right.
io_worksheet-&gt;sheet_setup-&gt;margin_top = ls_pagemargins-top.
ENDIF.
&quot; Read in page setup
lo_ixml_pagesetup_elem = lo_ixml_worksheet-&gt;find_from_name( &apos;pageSetup&apos; ).
IF lo_ixml_pagesetup_elem IS NOT INITIAL.
fill_struct_from_attributes( EXPORTING
ip_element = lo_ixml_pagesetup_elem
CHANGING
cp_structure = ls_pagesetup ).
io_worksheet-&gt;sheet_setup-&gt;orientation = ls_pagesetup-orientation.
io_worksheet-&gt;sheet_setup-&gt;scale = ls_pagesetup-scale.
ENDIF.
&quot; Read header footer
lo_ixml_headerfooter_elem = lo_ixml_worksheet-&gt;find_from_name( &apos;headerFooter&apos; ).
IF lo_ixml_headerfooter_elem IS NOT INITIAL.
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_headerfooter_elem CHANGING cp_structure = ls_headerfooter ).
io_worksheet-&gt;sheet_setup-&gt;diff_oddeven_headerfooter = ls_headerfooter-differentoddeven.
lo_ixml_hf_value_elem = lo_ixml_headerfooter_elem-&gt;find_from_name( &apos;oddFooter&apos; ).
IF lo_ixml_hf_value_elem IS NOT INITIAL.
ls_odd_footer-left_value = lo_ixml_hf_value_elem-&gt;get_value( ).
ENDIF.
* 2do§1 Header/footer
&quot; TODO.. get the rest.
io_worksheet-&gt;sheet_setup-&gt;set_header_footer( ip_odd_header = ls_odd_header
ip_odd_footer = ls_odd_footer
ip_even_header = ls_even_header
ip_even_footer = ls_even_footer ).
ENDIF.
&quot; Start fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007
&quot; Read pane
lo_ixml_pane_elem = lo_ixml_sheetview_elem-&gt;find_from_name( name = &apos;pane&apos; ).
IF lo_ixml_pane_elem IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_pane_elem CHANGING cp_structure = ls_excel_pane ).
&quot; Issue #194
&quot; Replace REGEX with method from the common class
zcl_excel_common=&gt;convert_columnrow2column_a_row( EXPORTING
i_columnrow = ls_excel_pane-topleftcell
IMPORTING
e_column = lv_pane_cell_col_a &quot; Cell Column
e_row = lv_pane_cell_row ). &quot; Natural number
lv_pane_cell_col = zcl_excel_common=&gt;convert_column2int( lv_pane_cell_col_a ).
SUBTRACT 1 FROM: lv_pane_cell_col,
lv_pane_cell_row.
IF lv_pane_cell_col &gt; 0
AND lv_pane_cell_row &gt; 0.
io_worksheet-&gt;freeze_panes( ip_num_rows = lv_pane_cell_row
ip_num_columns = lv_pane_cell_col ).
ELSEIF lv_pane_cell_row &gt; 0.
io_worksheet-&gt;freeze_panes( ip_num_rows = lv_pane_cell_row ).
ELSE.
io_worksheet-&gt;freeze_panes( ip_num_columns = lv_pane_cell_col ).
ENDIF.
ENDIF.
&quot; End fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007
&quot; Start fix 276 Read data validations
lo_ixml_datavalidations = lo_ixml_worksheet-&gt;get_elements_by_tag_name( name = &apos;dataValidation&apos; ).
lo_ixml_iterator = lo_ixml_datavalidations-&gt;create_iterator( ).
lo_ixml_datavalidation_elem ?= lo_ixml_iterator-&gt;get_next( ).
WHILE lo_ixml_datavalidation_elem IS BOUND.
fill_struct_from_attributes( EXPORTING
ip_element = lo_ixml_datavalidation_elem
CHANGING
cp_structure = ls_datavalidation ).
CLEAR lo_ixml_formula_elem.
lo_ixml_formula_elem = lo_ixml_datavalidation_elem-&gt;find_from_name( name = &apos;formula1&apos; ).
IF lo_ixml_formula_elem IS BOUND.
ls_datavalidation-formula1 = lo_ixml_formula_elem-&gt;get_value( ).
ENDIF.
CLEAR lo_ixml_formula_elem.
lo_ixml_formula_elem = lo_ixml_datavalidation_elem-&gt;find_from_name( name = &apos;formula2&apos; ).
IF lo_ixml_formula_elem IS BOUND.
ls_datavalidation-formula2 = lo_ixml_formula_elem-&gt;get_value( ).
ENDIF.
SPLIT ls_datavalidation-sqref AT space INTO TABLE lt_datavalidation_range.
LOOP AT lt_datavalidation_range INTO lv_datavalidation_range.
zcl_excel_common=&gt;convert_range2column_a_row( EXPORTING
i_range = lv_datavalidation_range
IMPORTING
e_column_start = ls_datavalidation-cell_column
e_column_end = ls_datavalidation-cell_column_to
e_row_start = ls_datavalidation-cell_row
e_row_end = ls_datavalidation-cell_row_to ).
lo_data_validation = io_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = ls_datavalidation-type.
lo_data_validation-&gt;allowblank = ls_datavalidation-allowblank.
lo_data_validation-&gt;showinputmessage = ls_datavalidation-showinputmessage.
lo_data_validation-&gt;showerrormessage = ls_datavalidation-showerrormessage.
lo_data_validation-&gt;showdropdown = ls_datavalidation-showdropdown.
lo_data_validation-&gt;operator = ls_datavalidation-operator.
lo_data_validation-&gt;formula1 = ls_datavalidation-formula1.
lo_data_validation-&gt;formula2 = ls_datavalidation-formula2.
lo_data_validation-&gt;prompttitle = ls_datavalidation-prompttitle.
lo_data_validation-&gt;prompt = ls_datavalidation-prompt.
lo_data_validation-&gt;errortitle = ls_datavalidation-errortitle.
lo_data_validation-&gt;error = ls_datavalidation-error.
lo_data_validation-&gt;errorstyle = ls_datavalidation-errorstyle.
lo_data_validation-&gt;cell_row = ls_datavalidation-cell_row.
lo_data_validation-&gt;cell_row_to = ls_datavalidation-cell_row_to.
lo_data_validation-&gt;cell_column = ls_datavalidation-cell_column.
lo_data_validation-&gt;cell_column_to = ls_datavalidation-cell_column_to.
ENDLOOP.
lo_ixml_datavalidation_elem ?= lo_ixml_iterator-&gt;get_next( ).
ENDWHILE.
&quot; End fix 276 Read data validations
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 "/>
<source>method LOAD_WORKSHEET_DRAWING.
TYPES: BEGIN OF t_c_nv_pr,
name TYPE string,
id TYPE string,
END OF t_c_nv_pr.
TYPES: BEGIN OF t_blip,
cstate TYPE string,
embed TYPE string,
END OF t_blip.
TYPES: BEGIN OF t_chart,
id TYPE string,
END OF t_chart.
CONSTANTS: lc_xml_attr_true TYPE string VALUE &apos;true&apos;,
lc_xml_attr_true_int TYPE string VALUE &apos;1&apos;.
CONSTANTS: lc_rel_chart TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart&apos;,
lc_rel_image TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/image&apos;.
DATA: drawing TYPE REF TO if_ixml_document,
anchors TYPE REF TO if_ixml_node_collection,
node TYPE REF TO if_ixml_element,
coll_length TYPE i,
iterator TYPE REF TO if_ixml_node_iterator,
anchor_elem TYPE REF TO if_ixml_element,
relationship TYPE t_relationship,
rel_drawings TYPE t_rel_drawings,
rel_drawing TYPE t_rel_drawing,
rels_drawing TYPE REF TO if_ixml_document,
rels_drawing_path TYPE string,
stripped_name TYPE chkfile,
dirname TYPE string,
path TYPE string,
path2 TYPE text255,
file_ext2 TYPE char10.
&quot; Read Workbook Relationships
CALL FUNCTION &apos;TRINT_SPLIT_FILE_AND_PATH&apos;
EXPORTING
full_name = ip_path
IMPORTING
stripped_name = stripped_name
file_path = dirname.
CONCATENATE dirname &apos;_rels/&apos; stripped_name &apos;.rels&apos;
INTO rels_drawing_path.
rels_drawing_path = resolve_path( rels_drawing_path ).
rels_drawing = me-&gt;get_ixml_from_zip_archive( rels_drawing_path ).
node ?= rels_drawing-&gt;find_from_name( &apos;Relationship&apos; ).
WHILE node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = relationship ).
rel_drawing-id = relationship-id.
CONCATENATE dirname relationship-target INTO path.
path = resolve_path( path ).
rel_drawing-content = me-&gt;get_from_zip_archive( path ). &quot;------------&gt; This is for template usage
path2 = path.
zcl_excel_common=&gt;split_file( EXPORTING ip_file = path2
IMPORTING ep_extension = file_ext2 ).
rel_drawing-file_ext = file_ext2.
&quot;-------------Added by Alessandro Iannacci - Should load graph xml
CASE relationship-type.
WHEN lc_rel_chart.
&quot;Read chart xml
rel_drawing-content_xml = me-&gt;get_ixml_from_zip_archive( path ).
WHEN OTHERS.
ENDCASE.
&quot;----------------------------
APPEND rel_drawing TO rel_drawings.
node ?= node-&gt;get_next( ).
ENDWHILE.
drawing = me-&gt;get_ixml_from_zip_archive( ip_path ).
* one-cell anchor **************
anchors = drawing-&gt;get_elements_by_tag_name( name = &apos;oneCellAnchor&apos; namespace = &apos;xdr&apos; ).
coll_length = anchors-&gt;get_length( ).
iterator = anchors-&gt;create_iterator( ).
DO coll_length TIMES.
anchor_elem ?= iterator-&gt;get_next( ).
CALL METHOD me-&gt;load_drawing_anchor
EXPORTING
io_anchor_element = anchor_elem
io_worksheet = io_worksheet
it_related_drawings = rel_drawings.
ENDDO.
* two-cell anchor ******************
anchors = drawing-&gt;get_elements_by_tag_name( name = &apos;twoCellAnchor&apos; namespace = &apos;xdr&apos; ).
coll_length = anchors-&gt;get_length( ).
iterator = anchors-&gt;create_iterator( ).
DO coll_length TIMES.
anchor_elem ?= iterator-&gt;get_next( ).
CALL METHOD me-&gt;load_drawing_anchor
EXPORTING
io_anchor_element = anchor_elem
io_worksheet = io_worksheet
it_related_drawings = rel_drawings.
ENDDO.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_APPLSERVER" VERSION="1" LANGU="E" DESCRIPT="Load excel data from appserver" EXPOSURE="0" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_APPLSERVER" SCONAME="I_FILENAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE"/>
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_APPLSERVER" SCONAME="R_EXCEL_DATA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>METHOD read_from_applserver.
DATA: lv_filelength TYPE i,
lt_binary_data TYPE STANDARD TABLE OF x255 WITH NON-UNIQUE DEFAULT KEY,
ls_binary_data LIKE LINE OF lt_binary_data,
lv_filename TYPE string,
lv_max_length_line TYPE i,
lv_actual_length_line TYPE i,
lv_errormessage TYPE string.
MOVE i_filename TO lv_filename.
DESCRIBE FIELD ls_binary_data LENGTH lv_max_length_line IN BYTE MODE.
OPEN DATASET lv_filename FOR INPUT IN BINARY MODE.
IF sy-subrc &lt;&gt; 0.
lv_errormessage = &apos;A problem occured when reading the file&apos;(001).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
WHILE sy-subrc = 0.
READ DATASET lv_filename INTO ls_binary_data MAXIMUM LENGTH lv_max_length_line ACTUAL LENGTH lv_actual_length_line.
APPEND ls_binary_data TO lt_binary_data.
lv_filelength = lv_filelength + lv_actual_length_line.
ENDWHILE.
CLOSE DATASET lv_filename.
*--------------------------------------------------------------------*
* Binary data needs to be provided as XSTRING for further processing
*--------------------------------------------------------------------*
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING
input_length = lv_filelength
IMPORTING
buffer = r_excel_data
TABLES
binary_tab = lt_binary_data.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_LOCAL_FILE" VERSION="1" LANGU="E" DESCRIPT="Load excel data from local file" EXPOSURE="0" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_LOCAL_FILE" SCONAME="I_FILENAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE"/>
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="READ_FROM_LOCAL_FILE" SCONAME="R_EXCEL_DATA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>METHOD read_from_local_file.
DATA: lv_filelength TYPE i,
lt_binary_data TYPE STANDARD TABLE OF x255 WITH NON-UNIQUE DEFAULT KEY,
ls_binary_data LIKE LINE OF lt_binary_data,
lv_filename TYPE string,
lv_errormessage TYPE string.
MOVE i_filename TO lv_filename.
cl_gui_frontend_services=&gt;gui_upload( EXPORTING
filename = lv_filename
filetype = &apos;BIN&apos; &quot; We are basically working with zipped directories --&gt; force binary read
IMPORTING
filelength = lv_filelength
CHANGING
data_tab = lt_binary_data
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19 ).
IF sy-subrc &lt;&gt; 0.
lv_errormessage = &apos;A problem occured when reading the file&apos;(001).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
*--------------------------------------------------------------------*
* Binary data needs to be provided as XSTRING for further processing
*--------------------------------------------------------------------*
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING
input_length = lv_filelength
IMPORTING
buffer = r_excel_data
TABLES
binary_tab = lt_binary_data.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_PATH" VERSION="1" LANGU="E" DESCRIPT="Return path after ../ values are removed" EXPOSURE="1" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_PATH" SCONAME="IP_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_PATH" SCONAME="RP_RESULT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method RESOLVE_PATH.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 Determine whether the replacement should be done
* iterative to allow /../../.. or something alike
* 2do§2 Determine whether /./ has to be supported as well
* 2do§3 Create unit-test for this method
*
* Please don&apos;t just delete these ToDos if they are not
* needed but leave a comment that states this
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-11-11
* - ...
* changes: replaced previous coding by regular expression
* adding comments to explain what we are trying to achieve
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* §1 This routine will receive a path, that may have a relative pathname (/../) included somewhere
* The output should be a resolved path without relative references
* Example: Input xl/worksheets/../drawings/drawing1.xml
* Output xl/drawings/drawing1.xml
*--------------------------------------------------------------------*
rp_result = ip_path.
*--------------------------------------------------------------------*
* §1 Remove relative pathnames
*--------------------------------------------------------------------*
* Regular expression [^/]*/\.\./
* [^/]* --&gt; any number of characters other than /
* followed by /\.\./ --&gt; the sequence /../
* ==&gt; worksheets/../ will be found in the example
*--------------------------------------------------------------------*
REPLACE REGEX &apos;[^/]*/\.\./&apos; IN rp_result WITH ``.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="RESOLVE_REFERENCED_FORMULAE" VERSION="1" LANGU="E" DESCRIPT="Resolve referenced formulae" EXPOSURE="1" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method RESOLVE_REFERENCED_FORMULAE.
TYPES: BEGIN OF ty_referenced_cells,
sheet TYPE REF TO zcl_excel_worksheet,
si TYPE i,
row_from TYPE i,
row_to TYPE i,
col_from TYPE i,
col_to TYPE i,
formula TYPE string,
ref_cell TYPE char10,
END OF ty_referenced_cells.
DATA: ls_ref_formula LIKE LINE OF me-&gt;mt_ref_formulae,
lts_referenced_cells TYPE SORTED TABLE OF ty_referenced_cells WITH NON-UNIQUE KEY sheet si row_from row_to col_from col_to,
ls_referenced_cell LIKE LINE OF lts_referenced_cells,
lv_col_from TYPE zexcel_cell_column_alpha,
lv_col_to TYPE zexcel_cell_column_alpha,
lv_resulting_formula TYPE string,
lv_current_cell TYPE char10.
me-&gt;mt_ref_formulae = me-&gt;mt_ref_formulae.
*--------------------------------------------------------------------*
* Get referenced Cells, Build ranges for easy lookup
*--------------------------------------------------------------------*
LOOP AT me-&gt;mt_ref_formulae INTO ls_ref_formula WHERE ref &lt;&gt; space.
CLEAR ls_referenced_cell.
ls_referenced_cell-sheet = ls_ref_formula-sheet.
ls_referenced_cell-si = ls_ref_formula-si.
ls_referenced_cell-formula = ls_ref_formula-formula.
TRY.
zcl_excel_common=&gt;convert_range2column_a_row( EXPORTING i_range = ls_ref_formula-ref
IMPORTING e_column_start = lv_col_from
e_column_end = lv_col_to
e_row_start = ls_referenced_cell-row_from
e_row_end = ls_referenced_cell-row_to ).
ls_referenced_cell-col_from = zcl_excel_common=&gt;convert_column2int( lv_col_from ).
ls_referenced_cell-col_to = zcl_excel_common=&gt;convert_column2int( lv_col_to ).
CLEAR ls_referenced_cell-ref_cell.
TRY.
ls_referenced_cell-ref_cell(3) = zcl_excel_common=&gt;convert_column2alpha( ls_ref_formula-column ).
ls_referenced_cell-ref_cell+3 = ls_ref_formula-row.
CONDENSE ls_referenced_cell-ref_cell NO-GAPS.
CATCH zcx_excel.
ENDTRY.
INSERT ls_referenced_cell INTO TABLE lts_referenced_cells.
CATCH zcx_excel.
ENDTRY.
ENDLOOP.
* break x0009004.
*--------------------------------------------------------------------*
* For each referencing cell determine the referenced cell
* and resolve the formula
*--------------------------------------------------------------------*
LOOP AT me-&gt;mt_ref_formulae INTO ls_ref_formula WHERE ref = space.
CLEAR lv_current_cell.
TRY.
lv_current_cell(3) = zcl_excel_common=&gt;convert_column2alpha( ls_ref_formula-column ).
lv_current_cell+3 = ls_ref_formula-row.
CONDENSE lv_current_cell NO-GAPS.
CATCH zcx_excel.
ENDTRY.
LOOP AT lts_referenced_cells INTO ls_referenced_cell WHERE sheet = ls_ref_formula-sheet
AND si = ls_ref_formula-si
AND row_from &lt;= ls_ref_formula-row
AND row_to &gt;= ls_ref_formula-row
AND col_from &lt;= ls_ref_formula-column
AND col_to &gt;= ls_ref_formula-column.
TRY.
lv_resulting_formula = zcl_excel_common=&gt;determine_resulting_formula( iv_reference_cell = ls_referenced_cell-ref_cell
iv_reference_formula = ls_referenced_cell-formula
iv_current_cell = lv_current_cell ).
ls_referenced_cell-sheet-&gt;set_cell_formula( ip_column = ls_ref_formula-column
ip_row = ls_ref_formula-row
ip_formula = lv_resulting_formula ).
CATCH zcx_excel.
ENDTRY.
EXIT.
ENDLOOP.
ENDLOOP.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_READER_XLSM" VERSION="1" LANGU="E" DESCRIPT="Excel with macro reader" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_READER_2007">
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<inheritance CLSNAME="ZCL_EXCEL_READER_XLSM" REFCLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" STATE="1">
<redefinition CLSNAME="ZCL_EXCEL_READER_XLSM" REFCLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" MTDNAME="LOAD_WORKBOOK" EXPOSURE="1"/>
<redefinition CLSNAME="ZCL_EXCEL_READER_XLSM" REFCLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" MTDNAME="LOAD_WORKSHEET" EXPOSURE="1"/>
</inheritance>
<method CLSNAME="ZCL_EXCEL_READER_XLSM" CMPNAME="LOAD_VBAPROJECT" VERSION="1" LANGU="E" DESCRIPT="Load VBA binary" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_READER_XLSM" CMPNAME="LOAD_VBAPROJECT" 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_XLSM" CMPNAME="LOAD_VBAPROJECT" 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"/>
<source>METHOD load_vbaproject.
DATA lv_content TYPE xstring.
lv_content = me-&gt;get_from_zip_archive( ip_path ).
ip_excel-&gt;zif_excel_book_vba_project~set_vbaproject( lv_content ).
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKBOOK" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method LOAD_WORKBOOK.
super-&gt;load_workbook( EXPORTING iv_workbook_full_filename = iv_workbook_full_filename
io_excel = io_excel ).
CONSTANTS: lc_vba_project TYPE string VALUE &apos;http://schemas.microsoft.com/office/2006/relationships/vbaProject&apos;.
DATA: rels_workbook_path TYPE string,
rels_workbook TYPE REF TO if_ixml_document,
path TYPE string,
node TYPE REF TO if_ixml_element,
workbook TYPE REF TO if_ixml_document,
stripped_name TYPE chkfile,
dirname TYPE string,
relationship TYPE t_relationship,
fileversion TYPE t_fileversion,
workbookpr TYPE t_workbookpr.
FIELD-SYMBOLS: &lt;worksheet&gt; TYPE t_relationship.
CALL FUNCTION &apos;TRINT_SPLIT_FILE_AND_PATH&apos;
EXPORTING
full_name = iv_workbook_full_filename
IMPORTING
stripped_name = stripped_name
file_path = dirname.
&quot; Read Workbook Relationships
CONCATENATE dirname &apos;_rels/&apos; stripped_name &apos;.rels&apos;
INTO rels_workbook_path.
rels_workbook = me-&gt;get_ixml_from_zip_archive( rels_workbook_path ).
node ?= rels_workbook-&gt;find_from_name( &apos;Relationship&apos; ).
WHILE node IS BOUND.
me-&gt;fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = relationship ).
CASE relationship-type.
WHEN lc_vba_project.
&quot; Read VBA binary
CONCATENATE dirname relationship-target INTO path.
me-&gt;load_vbaproject( ip_path = path
ip_excel = io_excel ).
WHEN OTHERS.
ENDCASE.
node ?= node-&gt;get_next( ).
ENDWHILE.
&quot; Read Workbook codeName
workbook = me-&gt;get_ixml_from_zip_archive( iv_workbook_full_filename ).
node ?= workbook-&gt;find_from_name( &apos;fileVersion&apos; ).
IF node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = fileversion ).
io_excel-&gt;zif_excel_book_vba_project~set_codename( fileversion-codename ).
ENDIF.
&quot; Read Workbook codeName
workbook = me-&gt;get_ixml_from_zip_archive( iv_workbook_full_filename ).
node ?= workbook-&gt;find_from_name( &apos;workbookPr&apos; ).
IF node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = workbookpr ).
io_excel-&gt;zif_excel_book_vba_project~set_codename_pr( workbookpr-codename ).
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method LOAD_WORKSHEET.
super-&gt;load_worksheet( EXPORTING ip_path = ip_path
io_worksheet = io_worksheet ).
DATA: path TYPE string,
node TYPE REF TO if_ixml_element,
worksheet TYPE REF TO if_ixml_document,
sheetpr TYPE t_sheetpr.
* &quot; Read Workbook codeName
* workbook = me-&gt;get_ixml_from_zip_archive( ip_path ).
* node ?= workbook-&gt;find_from_name( &apos;fileVersion&apos; ).
* IF node IS BOUND.
*
* fill_struct_from_attributes( EXPORTING ip_element = node
* CHANGING cp_structure = fileversion ).
*
* IO_WORKSHEET-&gt;zif_excel_book_vba_project~set_codename( fileversion-codename ).
* ENDIF.
&quot; Read Workbook codeName
worksheet = me-&gt;get_ixml_from_zip_archive( ip_path ).
node ?= worksheet-&gt;find_from_name( &apos;sheetPr&apos; ).
IF node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = sheetpr ).
io_worksheet-&gt;zif_excel_sheet_vba_project~set_codename_pr( sheetpr-codename ).
ENDIF.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_SECURITY" VERSION="1" LANGU="E" DESCRIPT="Security" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_SECURITY" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_SECURITY" CMPNAME="LOCKREVISION" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SECURITY" CMPNAME="LOCKSTRUCTURE" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SECURITY" CMPNAME="LOCKWINDOWS" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SECURITY" CMPNAME="REVISIONSPASSWORD" VERSION="1" LANGU="E" DESCRIPT="Revisions password" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_REVISIONSPASSWORD" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SECURITY" CMPNAME="WORKBOOKPASSWORD" VERSION="1" LANGU="E" DESCRIPT="Workbook password" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_WORKBOOKPASSWORD" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_SECURITY" CMPNAME="IS_SECURITY_ENABLED" VERSION="1" LANGU="E" DESCRIPT="Is some sort of dcument security enabled?" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_SECURITY" CMPNAME="IS_SECURITY_ENABLED" SCONAME="EP_SECURITY_ENABLED" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>METHOD is_security_enabled.
IF lockrevision EQ abap_true OR lockstructure EQ abap_true OR lockwindows EQ abap_true.
ep_security_enabled = abap_true.
ENDIF.
ENDMETHOD.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_SHEET_SETUP" VERSION="1" LANGU="E" DESCRIPT="Sheet setup" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_SHEET_SETUP" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="BLACK_AND_WHITE" VERSION="1" LANGU="E" DESCRIPT="Print black and white" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="CELL_COMMENTS" VERSION="1" LANGU="E" DESCRIPT="This attribute specifies how to print cell comments" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRINGVAL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="COPIES" VERSION="1" LANGU="E" DESCRIPT="Number of copies to print" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_BREAK_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Worksheet Break" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BREAK" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_BREAK_NONE" VERSION="1" LANGU="E" DESCRIPT="Worksheet Break" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BREAK" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_BREAK_ROW" VERSION="1" LANGU="E" DESCRIPT="Worksheet Break" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BREAK" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_CC_AS_DISPLAYED" VERSION="1" LANGU="E" DESCRIPT="Cell comments" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;asDisplayed&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_CC_AT_END" VERSION="1" LANGU="E" DESCRIPT="Cell comments" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;atEnd&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_CC_NONE" VERSION="1" LANGU="E" DESCRIPT="Cell commenct" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;none&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_ORD_DOWNTHENOVER" VERSION="1" LANGU="E" DESCRIPT="Page order" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;downThenOver&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_ORD_OVERTHENDOWN" VERSION="1" LANGU="E" DESCRIPT="Page order" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;overThenDown&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_ORIENTATION_DEFAULT" VERSION="1" LANGU="E" DESCRIPT="Sheet orientation" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;default&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_ORIENATATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_ORIENTATION_LANDSCAPE" VERSION="1" LANGU="E" DESCRIPT="Sheet orientation" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;landscape&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_ORIENATATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_ORIENTATION_PORTRAIT" VERSION="1" LANGU="E" DESCRIPT="Sheet orientation" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;portrait&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_ORIENATATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_6_3_4_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="38" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A2_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="64" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A3" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="8" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A3_EXTRA_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="61" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A3_EXTRA_TV_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="66" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A3_TV_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTVALUE="65" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A4" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTVALUE="9" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A4_EXTRA_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="2" ATTVALUE="51" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A4_PLUS_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="2" ATTVALUE="58" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A4_SMALL" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="2" ATTVALUE="10" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A4_TV_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="2" ATTVALUE="53" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A5" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="2" ATTVALUE="11" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A5_EXTRA_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="27 " ATTDECLTYP="2" ATTVALUE="62" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_A5_TV_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="28 " ATTDECLTYP="2" ATTVALUE="59" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_B4" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="29 " ATTDECLTYP="2" ATTVALUE="12" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_B4_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="30 " ATTDECLTYP="2" ATTVALUE="33" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_B5" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="31 " ATTDECLTYP="2" ATTVALUE="13" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_B5_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="32 " ATTDECLTYP="2" ATTVALUE="34" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_B6_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="33 " ATTDECLTYP="2" ATTVALUE="35" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_C" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="34 " ATTDECLTYP="2" ATTVALUE="24" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_C3_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="35 " ATTDECLTYP="2" ATTVALUE="29" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_C4_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="36 " ATTDECLTYP="2" ATTVALUE="30" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_C5_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="37 " ATTDECLTYP="2" ATTVALUE="28" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_C65_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="38 " ATTDECLTYP="2" ATTVALUE="32" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_C6_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="39 " ATTDECLTYP="2" ATTVALUE="31" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_D" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="40 " ATTDECLTYP="2" ATTVALUE="25" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_DE_LEG_FANFOLD" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="41 " ATTDECLTYP="2" ATTVALUE="41" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_DE_STD_FANFOLD" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="42 " ATTDECLTYP="2" ATTVALUE="40" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_DL_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="43 " ATTDECLTYP="2" ATTVALUE="27" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_E" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="44 " ATTDECLTYP="2" ATTVALUE="26" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_EXECUTIVE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="45 " ATTDECLTYP="2" ATTVALUE="7" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_FOLIO" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="46 " ATTDECLTYP="2" ATTVALUE="14" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_INVITE_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="47 " ATTDECLTYP="2" ATTVALUE="47" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_ISO_B4" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="48 " ATTDECLTYP="2" ATTVALUE="42" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_ISO_B5_EXTRA_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="49 " ATTDECLTYP="2" ATTVALUE="63" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_ITALY_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="50 " ATTDECLTYP="2" ATTVALUE="36" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_JIS_B5_TV_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="51 " ATTDECLTYP="2" ATTVALUE="60" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_JPN_DBL_POSTCARD" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="52 " ATTDECLTYP="2" ATTVALUE="43" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LEDGER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="53 " ATTDECLTYP="2" ATTVALUE="4" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LEGAL" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="54 " ATTDECLTYP="2" ATTVALUE="5" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LEGAL_EXTRA_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="55 " ATTDECLTYP="2" ATTVALUE="49" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LETTER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="56 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LETTER_EXTRA_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="57 " ATTDECLTYP="2" ATTVALUE="48" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LETTER_EXTV_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="58 " ATTDECLTYP="2" ATTVALUE="54" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LETTER_PLUS_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="59 " ATTDECLTYP="2" ATTVALUE="57" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LETTER_SMALL" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="60 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_LETTER_TV_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="61 " ATTDECLTYP="2" ATTVALUE="52" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_MONARCH_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="62 " ATTDECLTYP="2" ATTVALUE="37" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_NO10_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="63 " ATTDECLTYP="2" ATTVALUE="20" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_NO11_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="64 " ATTDECLTYP="2" ATTVALUE="21" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_NO12_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="65 " ATTDECLTYP="2" ATTVALUE="22" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_NO14_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="66 " ATTDECLTYP="2" ATTVALUE="23" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_NO9_ENVELOPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="67 " ATTDECLTYP="2" ATTVALUE="19" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_NOTE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="68 " ATTDECLTYP="2" ATTVALUE="18" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_QUARTO" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="69 " ATTDECLTYP="2" ATTVALUE="15" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_STANDARD_1" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="70 " ATTDECLTYP="2" ATTVALUE="16" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_STANDARD_2" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="71 " ATTDECLTYP="2" ATTVALUE="17" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_STANDARD_PAPER_1" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="72 " ATTDECLTYP="2" ATTVALUE="44" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_STANDARD_PAPER_2" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="73 " ATTDECLTYP="2" ATTVALUE="45" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_STANDARD_PAPER_3" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="74 " ATTDECLTYP="2" ATTVALUE="46" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_STATEMENT" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="75 " ATTDECLTYP="2" ATTVALUE="6" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_SUPERA_A4_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="76 " ATTDECLTYP="2" ATTVALUE="55" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_SUPERB_A3_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="77 " ATTDECLTYP="2" ATTVALUE="56" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_TABLOID" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="78 " ATTDECLTYP="2" ATTVALUE="3" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_TABL_EXTRA_PAPER" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="79 " ATTDECLTYP="2" ATTVALUE="50" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PAPERSIZE_US_STD_FANFOLD" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="80 " ATTDECLTYP="2" ATTVALUE="39" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PAPER_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PE_BLANK" VERSION="1" LANGU="E" DESCRIPT="Print error" EXPOSURE="2" STATE="1" EDITORDER="81 " ATTDECLTYP="2" ATTVALUE="&apos;blank&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PE_DASH" VERSION="1" LANGU="E" DESCRIPT="Print error" EXPOSURE="2" STATE="1" EDITORDER="82 " ATTDECLTYP="2" ATTVALUE="&apos;dash&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PE_DISPLAYED" VERSION="1" LANGU="E" DESCRIPT="Print error" EXPOSURE="2" STATE="1" EDITORDER="83 " ATTDECLTYP="2" ATTVALUE="&apos;displayed&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="C_PE_NA" VERSION="1" LANGU="E" DESCRIPT="Print error" EXPOSURE="2" STATE="1" EDITORDER="84 " ATTDECLTYP="2" ATTVALUE="&apos;NA&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="DIFF_ODDEVEN_HEADERFOOTER" VERSION="1" LANGU="E" DESCRIPT="Different Header/Footer for odd/even pages" EXPOSURE="2" STATE="1" EDITORDER="85 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="DRAFT" VERSION="1" LANGU="E" DESCRIPT="Print without graphics" EXPOSURE="2" STATE="1" EDITORDER="86 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="ERRORS" VERSION="1" LANGU="E" DESCRIPT="Specifies how to print cell values for cells with errors" EXPOSURE="2" STATE="1" EDITORDER="87 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRINGVAL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="EVEN_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Footer for even pages" EXPOSURE="2" STATE="1" EDITORDER="88 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="EVEN_HEADER" VERSION="1" LANGU="E" DESCRIPT="Header for even pages" EXPOSURE="2" STATE="1" EDITORDER="89 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="FIRST_PAGE_NUMBER" VERSION="1" LANGU="E" DESCRIPT="Page number for first printed page" EXPOSURE="2" STATE="1" EDITORDER="90 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="FIT_TO_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Flag indicating whether the Fit to Page print option is enab" EXPOSURE="2" STATE="1" EDITORDER="91 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="FIT_TO_PAGE" VERSION="1" LANGU="E" DESCRIPT="Number of vertical pages to fit on" EXPOSURE="2" STATE="1" EDITORDER="92 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="FIT_TO_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Number of horizontal pages to fit on" EXPOSURE="2" STATE="1" EDITORDER="93 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="HORIZONTAL_CENTERED" VERSION="1" LANGU="E" DESCRIPT="horizontal Centered" EXPOSURE="2" STATE="1" EDITORDER="94 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="HORIZONTAL_DPI" VERSION="1" LANGU="E" DESCRIPT="Horizontal print resolution of the device" EXPOSURE="2" STATE="1" EDITORDER="95 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="MARGIN_BOTTOM" VERSION="1" LANGU="E" DESCRIPT="Margin bottom" EXPOSURE="2" STATE="1" EDITORDER="96 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DEC_8_2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="MARGIN_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Margin footer" EXPOSURE="2" STATE="1" EDITORDER="97 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DEC_8_2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="MARGIN_HEADER" VERSION="1" LANGU="E" DESCRIPT="Margin header" EXPOSURE="2" STATE="1" EDITORDER="98 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DEC_8_2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="MARGIN_LEFT" VERSION="1" LANGU="E" DESCRIPT="Margin left" EXPOSURE="2" STATE="1" EDITORDER="99 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DEC_8_2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="MARGIN_RIGHT" VERSION="1" LANGU="E" DESCRIPT="Margin right" EXPOSURE="2" STATE="1" EDITORDER="100 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DEC_8_2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="MARGIN_TOP" VERSION="1" LANGU="E" DESCRIPT="Margin top" EXPOSURE="2" STATE="1" EDITORDER="101 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DEC_8_2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="ODD_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Footer for all OR odd Pages" EXPOSURE="2" STATE="1" EDITORDER="102 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="ODD_HEADER" VERSION="1" LANGU="E" DESCRIPT="Header for all OR odd Pages" EXPOSURE="2" STATE="1" EDITORDER="103 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="ORIENTATION" VERSION="1" LANGU="E" DESCRIPT="Sheet orientation" EXPOSURE="2" STATE="1" EDITORDER="104 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_ORIENATATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="PAGE_ORDER" VERSION="1" LANGU="E" DESCRIPT="Order of printed pages" EXPOSURE="2" STATE="1" EDITORDER="105 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="PAPER_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Height of custom paper as a number followed by a unit id" EXPOSURE="2" STATE="1" EDITORDER="106 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="PAPER_SIZE" VERSION="1" LANGU="E" DESCRIPT="Paper size" EXPOSURE="2" STATE="1" EDITORDER="107 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="PAPER_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Width of custom paper as a number followed by a unit id" EXPOSURE="2" STATE="1" EDITORDER="108 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SCALE" VERSION="1" LANGU="E" DESCRIPT="Scale 10 - 400 (percent)" EXPOSURE="2" STATE="1" EDITORDER="109 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="USE_FIRST_PAGE_NUM" VERSION="1" LANGU="E" DESCRIPT="Use firstPageNumber value for first page number" EXPOSURE="2" STATE="1" EDITORDER="110 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="USE_PRINTER_DEFAULTS" VERSION="1" LANGU="E" DESCRIPT="Use the printer’s defaults settings for page setup values" EXPOSURE="2" STATE="1" EDITORDER="111 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="VERTICAL_CENTERED" VERSION="1" LANGU="E" DESCRIPT="vertical Centered" EXPOSURE="2" STATE="1" EDITORDER="112 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="VERTICAL_DPI" VERSION="1" LANGU="E" DESCRIPT="Vertical print resolution of the device" EXPOSURE="2" STATE="1" EDITORDER="113 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
orientation = me-&gt;c_orientation_default.
* default margins
margin_bottom = &apos;0.75&apos;.
margin_footer = &apos;0.3&apos;.
margin_header = &apos;0.3&apos;.
margin_left = &apos;0.7&apos;.
margin_right = &apos;0.7&apos;.
margin_top = &apos;0.75&apos;.
* clear page settings
CLEAR: black_and_white,
cell_comments,
copies,
draft,
errors,
first_page_number,
fit_to_page,
fit_to_height,
fit_to_width,
horizontal_dpi,
orientation,
page_order,
paper_height,
paper_size,
paper_width,
scale,
use_first_page_num,
use_printer_defaults,
vertical_dpi.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="GET_HEADER_FOOTER_STRING" VERSION="1" LANGU="E" DESCRIPT="Get processed Header/Footer value strings" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="GET_HEADER_FOOTER_STRING" SCONAME="EP_ODD_HEADER" VERSION="1" LANGU="E" DESCRIPT="Processed Odd Header Value String" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="GET_HEADER_FOOTER_STRING" SCONAME="EP_ODD_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Processed Odd Footer value String" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="GET_HEADER_FOOTER_STRING" SCONAME="EP_EVEN_HEADER" VERSION="1" LANGU="E" DESCRIPT="Processed Even Header Value String" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="GET_HEADER_FOOTER_STRING" SCONAME="EP_EVEN_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Processed Even Footer Value String" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_HEADER_FOOTER_STRING.
* ----------------------------------------------------------------------
DATA: lc_marker_left(2) TYPE c VALUE &apos;&amp;L&apos;
, lc_marker_right(2) TYPE c VALUE &apos;&amp;R&apos;
, lc_marker_center(2) TYPE c VALUE &apos;&amp;C&apos;
, lv_value TYPE string
.
* ----------------------------------------------------------------------
IF ep_odd_header IS SUPPLIED.
IF me-&gt;odd_header-left_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;odd_header ip_side = &apos;LEFT&apos; ).
CONCATENATE lc_marker_left lv_value INTO ep_odd_header.
ENDIF.
IF me-&gt;odd_header-center_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;odd_header ip_side = &apos;CENTER&apos; ).
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_odd_header.
ENDIF.
IF me-&gt;odd_header-right_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;odd_header ip_side = &apos;RIGHT&apos; ).
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_odd_header.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
IF ep_odd_footer IS SUPPLIED.
IF me-&gt;odd_footer-left_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;odd_footer ip_side = &apos;LEFT&apos; ).
CONCATENATE lc_marker_left lv_value INTO ep_odd_footer.
ENDIF.
IF me-&gt;odd_footer-center_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;odd_footer ip_side = &apos;CENTER&apos; ).
CONCATENATE ep_odd_footer lc_marker_center lv_value INTO ep_odd_footer.
ENDIF.
IF me-&gt;odd_footer-right_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;odd_footer ip_side = &apos;RIGHT&apos; ).
CONCATENATE ep_odd_footer lc_marker_right lv_value INTO ep_odd_footer.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
IF ep_even_header IS SUPPLIED.
IF me-&gt;even_header-left_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;even_header ip_side = &apos;LEFT&apos; ).
CONCATENATE lc_marker_left lv_value INTO ep_even_header.
ENDIF.
IF me-&gt;even_header-center_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;even_header ip_side = &apos;CENTER&apos; ).
CONCATENATE ep_even_header lc_marker_center lv_value INTO ep_even_header.
ENDIF.
IF me-&gt;even_header-right_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;even_header ip_side = &apos;RIGHT&apos; ).
CONCATENATE ep_even_header lc_marker_right lv_value INTO ep_even_header.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
IF ep_even_footer IS SUPPLIED.
IF me-&gt;even_footer-left_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;even_footer ip_side = &apos;LEFT&apos; ).
CONCATENATE lc_marker_left lv_value INTO ep_even_footer.
ENDIF.
IF me-&gt;even_footer-center_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;even_footer ip_side = &apos;CENTER&apos; ).
CONCATENATE ep_even_footer lc_marker_center lv_value INTO ep_even_footer.
ENDIF.
IF me-&gt;even_footer-right_value IS NOT INITIAL.
lv_value = me-&gt;process_header_footer( ip_header = me-&gt;even_footer ip_side = &apos;RIGHT&apos; ).
CONCATENATE ep_even_footer lc_marker_right lv_value INTO ep_even_footer.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="PROCESS_HEADER_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Process (formating / editing) Header/Footer" EXPOSURE="1" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="PROCESS_HEADER_FOOTER" SCONAME="IP_HEADER" VERSION="1" LANGU="E" DESCRIPT="Header / Footer" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="PROCESS_HEADER_FOOTER" SCONAME="IP_SIDE" VERSION="1" LANGU="E" DESCRIPT="LEFT / CENTER / RIGHT" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="PROCESS_HEADER_FOOTER" SCONAME="RV_PROCESSED_STRING" VERSION="1" LANGU="E" DESCRIPT="Processed Value String" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method PROCESS_HEADER_FOOTER.
* ----------------------------------------------------------------------
* Only Basic font/text formatting possible:
* Bold (yes / no), Font Type, Font Size
DATA: lv_fname(12) TYPE c
, lv_string TYPE string
.
FIELD-SYMBOLS: &lt;lv_value&gt; TYPE string
, &lt;ls_font&gt; TYPE zexcel_s_style_font
.
* ----------------------------------------------------------------------
CONCATENATE ip_side &apos;_VALUE&apos; INTO lv_fname.
ASSIGN COMPONENT lv_fname OF STRUCTURE ip_header TO &lt;lv_value&gt;.
CONCATENATE ip_side &apos;_FONT&apos; INTO lv_fname.
ASSIGN COMPONENT lv_fname OF STRUCTURE ip_header TO &lt;ls_font&gt;.
IF &lt;ls_font&gt; IS ASSIGNED AND &lt;lv_value&gt; IS ASSIGNED.
IF &lt;ls_font&gt;-name IS NOT INITIAL.
CONCATENATE &apos;&amp;&quot;&apos; &lt;ls_font&gt;-name &apos;,&apos; INTO rv_processed_string.
ELSE.
rv_processed_string = &apos;&amp;&quot;-,&apos;.
ENDIF.
IF &lt;ls_font&gt;-bold = abap_true.
CONCATENATE rv_processed_string &apos;Bold&quot;&apos; INTO rv_processed_string.
ELSE.
CONCATENATE rv_processed_string &apos;Standard&quot;&apos; INTO rv_processed_string.
ENDIF.
IF &lt;ls_font&gt;-size IS NOT INITIAL.
lv_string = &lt;ls_font&gt;-size.
CONCATENATE rv_processed_string &apos;&amp;&apos; lv_string INTO rv_processed_string.
ENDIF.
CONCATENATE rv_processed_string &lt;lv_value&gt; INTO rv_processed_string.
ENDIF.
* ----------------------------------------------------------------------
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_HEADER_FOOTER" VERSION="1" LANGU="E" DESCRIPT="set page header and footer" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_HEADER_FOOTER" SCONAME="IP_ODD_HEADER" VERSION="1" LANGU="E" DESCRIPT="Header for all OR odd pages" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_HEADER_FOOTER" SCONAME="IP_ODD_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Footer for all OR odd ages" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_HEADER_FOOTER" SCONAME="IP_EVEN_HEADER" VERSION="1" LANGU="E" DESCRIPT="Header for even pages" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_HEADER_FOOTER" SCONAME="IP_EVEN_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Footer for even pages" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_WORKSHEET_HEAD_FOOT" PAROPTIONL="X"/>
<source>method SET_HEADER_FOOTER.
* Only Basic font/text formatting possible:
* Bold (yes / no), Font Type, Font Size
*
* usefull placeholders, which can be used in header/footer value strings
* &apos;&amp;P&apos; - page number
* &apos;&amp;N&apos; - total number of pages
* &apos;&amp;D&apos; - Date
* &apos;&amp;T&apos; - Time
* &apos;&amp;F&apos; - File Name
* &apos;&amp;Z&apos; - Path
* &apos;&amp;A&apos; - Sheet name
* new line via class constant CL_ABAP_CHAR_UTILITIES=&gt;newline
*
* Example Value String &apos;page &amp;P of &amp;N&apos;
*
* DO NOT USE &amp;L , &amp;C or &amp;R which automatically created as position markers
me-&gt;odd_header = ip_odd_header.
me-&gt;odd_footer = ip_odd_footer.
me-&gt;even_header = ip_even_header.
me-&gt;even_footer = ip_even_footer.
IF me-&gt;even_header IS NOT INITIAL OR me-&gt;even_footer IS NOT INITIAL.
me-&gt;diff_oddeven_headerfooter = abap_true.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_PAGE_MARGINS" VERSION="1" LANGU="E" DESCRIPT="Set page margins" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_PAGE_MARGINS" SCONAME="IP_BOTTOM" VERSION="1" LANGU="E" DESCRIPT="Margin bottom" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLOAT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_PAGE_MARGINS" SCONAME="IP_FOOTER" VERSION="1" LANGU="E" DESCRIPT="Margin footer" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLOAT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_PAGE_MARGINS" SCONAME="IP_HEADER" VERSION="1" LANGU="E" DESCRIPT="Margin header" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLOAT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_PAGE_MARGINS" SCONAME="IP_LEFT" VERSION="1" LANGU="E" DESCRIPT="Margin left" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLOAT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_PAGE_MARGINS" SCONAME="IP_RIGHT" VERSION="1" LANGU="E" DESCRIPT="Margin right" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLOAT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_PAGE_MARGINS" SCONAME="IP_TOP" VERSION="1" LANGU="E" DESCRIPT="Margin top" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLOAT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_SHEET_SETUP" CMPNAME="SET_PAGE_MARGINS" SCONAME="IP_UNIT" VERSION="1" LANGU="E" DESCRIPT="in, cm" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE" PARVALUE="&apos;in&apos;"/>
<source>method SET_PAGE_MARGINS.
DATA: lv_coef TYPE f,
lv_unit TYPE string.
lv_unit = ip_unit.
TRANSLATE lv_unit TO UPPER CASE.
CASE lv_unit.
WHEN &apos;IN&apos;. lv_coef = 1.
WHEN &apos;CM&apos;. lv_coef = &apos;0.393700787&apos;.
WHEN &apos;MM&apos;. lv_coef = &apos;0.0393700787&apos;.
ENDCASE.
IF ip_bottom IS SUPPLIED. margin_bottom = lv_coef * ip_bottom. ENDIF.
IF ip_footer IS SUPPLIED. margin_footer = lv_coef * ip_footer. ENDIF.
IF ip_header IS SUPPLIED. margin_header = lv_coef * ip_header. ENDIF.
IF ip_left IS SUPPLIED. margin_left = lv_coef * ip_left. ENDIF.
IF ip_right IS SUPPLIED. margin_right = lv_coef * ip_right. ENDIF.
IF ip_top IS SUPPLIED. margin_top = lv_coef * ip_top. ENDIF.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment Style" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="BORDERS" VERSION="1" LANGU="E" DESCRIPT="Border Style" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_BORDERS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="FILL" VERSION="1" LANGU="E" DESCRIPT="Fill Style" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_FILL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="FONT" VERSION="1" LANGU="E" DESCRIPT="Font Style" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_FONT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" EXPOSURE="0" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="NUMBER_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Number Format Style" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="PROTECTION" VERSION="1" LANGU="E" DESCRIPT="Protection Style" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="CONSTRUCTOR" SCONAME="IP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" PAROPTIONL="X"/>
<source>method CONSTRUCTOR.
CREATE OBJECT font.
CREATE OBJECT fill.
CREATE OBJECT borders.
CREATE OBJECT alignment.
CREATE OBJECT number_format.
CREATE OBJECT protection.
* Start of insertion # issue 139 - Dateretention of cellstyles
IF ip_guid IS NOT INITIAL.
me-&gt;guid = ip_guid.
ELSE.
* End of insertion # issue 139 - Dateretention of cellstyles
CALL FUNCTION &apos;GUID_CREATE&apos;
IMPORTING
ev_guid_16 = me-&gt;guid.
* Start of insertion # issue 139 - Dateretention of cellstyles
ENDIF.
* End of insertion # issue 139 - Dateretention of cellstyles
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="GET_GUID" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE" CMPNAME="GET_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="Generic Data Element for GUID Fields (X16)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method GET_GUID.
ep_guid = me-&gt;guid.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLES" VERSION="1" LANGU="E" DESCRIPT="Styles collection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="STYLES" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="ADD" SCONAME="IP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method ADD.
styles-&gt;add( ip_style ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="CLEAR" VERSION="1" LANGU="E" DESCRIPT="Initializes the Collection" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAR.
styles-&gt;clear( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
CREATE OBJECT styles.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="GET" VERSION="1" LANGU="E" DESCRIPT="Gets Element" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="GET" SCONAME="IP_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="GET" SCONAME="EO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method GET.
eo_style ?= styles-&gt;if_object_collection~get( ip_index ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="GET_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Returns an iterator" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="GET_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_ITERATOR.
eo_iterator ?= styles-&gt;if_object_collection~get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="Checks whether elements are contained" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="IS_EMPTY" SCONAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>method IS_EMPTY.
is_empty = styles-&gt;if_object_collection~is_empty( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="REGISTER_NEW_STYLE" VERSION="1" LANGU="E" DESCRIPT="Register a new style" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="REGISTER_NEW_STYLE" SCONAME="IO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="REGISTER_NEW_STYLE" SCONAME="EP_STYLE_CODE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method REGISTER_NEW_STYLE.
me-&gt;add( io_style ).
ep_style_code = me-&gt;size( ) - 1. &quot;style count starts from 0
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="REMOVE" VERSION="1" LANGU="E" DESCRIPT="Deletes an Element from the Collection" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="REMOVE" SCONAME="IP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method REMOVE.
styles-&gt;remove( ip_style ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Specifies number of contained elements" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES" CMPNAME="SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method SIZE.
ep_size = styles-&gt;if_object_collection~size( ).
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" VERSION="1" LANGU="E" DESCRIPT="Styles conditional collection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="STYLES_CONDITIONAL" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="ADD" SCONAME="IP_STYLE_CONDITIONAL" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_CONDITIONAL"/>
<source>method ADD.
styles_conditional-&gt;add( ip_style_conditional ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="CLEAR" VERSION="1" LANGU="E" DESCRIPT="Initializes the Collection" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAR.
styles_conditional-&gt;clear( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
CREATE OBJECT styles_conditional.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="GET" VERSION="1" LANGU="E" DESCRIPT="Gets Element" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="GET" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
<parameter CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="GET" SCONAME="EO_STYLE_CONDITIONAL" VERSION="1" LANGU="E" DESCRIPT="Font Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_CONDITIONAL"/>
<source>method GET.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_style_conditional ?= styles_conditional-&gt;if_object_collection~get( lv_index ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="GET_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Returns an iterator" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="GET_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_ITERATOR.
eo_iterator ?= styles_conditional-&gt;if_object_collection~get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="Checks whether elements are contained" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="IS_EMPTY" SCONAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>method IS_EMPTY.
is_empty = styles_conditional-&gt;if_object_collection~is_empty( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="REMOVE" VERSION="1" LANGU="E" DESCRIPT="Deletes an Element from the Collection" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="REMOVE" SCONAME="IP_STYLE_CONDITIONAL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_CONDITIONAL"/>
<source>method REMOVE.
styles_conditional-&gt;remove( ip_style_conditional ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Specifies number of contained elements" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLES_CONDITIONAL" CMPNAME="SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method SIZE.
ep_size = styles_conditional-&gt;if_object_collection~size( ).
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment Style" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_STYLE_ALIGNMENT" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_HORIZONTAL_CENTER" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;center&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_HORIZONTAL_CENTER_CONTINUOUS" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;centerContinuous&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_HORIZONTAL_GENERAL" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;general&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_HORIZONTAL_JUSTIFY" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="&apos;justify&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_HORIZONTAL_LEFT" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;left&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_HORIZONTAL_RIGHT" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;right&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_VERTICAL_BOTTOM" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;bottom&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_VERTICAL_CENTER" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;center&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_VERTICAL_JUSTIFY" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;justify&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="C_VERTICAL_TOP" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;top&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="HORIZONTAL" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="INDENT" VERSION="1" LANGU="E" DESCRIPT="Indent" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="0" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_INDENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="SHRINKTOFIT" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="TEXTROTATION" VERSION="1" LANGU="E" DESCRIPT="Text Rotation" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TEXT_ROTATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="VERTICAL" VERSION="1" LANGU="E" DESCRIPT="Alignment" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="WRAPTEXT" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
horizontal = me-&gt;c_horizontal_general.
vertical = me-&gt;c_vertical_bottom.
wrapText = abap_false.
shrinkToFit = abap_false.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="GET_STRUCTURE" VERSION="1" LANGU="E" DESCRIPT="Get class as a structure" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_ALIGNMENT" CMPNAME="GET_STRUCTURE" SCONAME="ES_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Cell alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_ALIGNMENT"/>
<source>method GET_STRUCTURE.
es_alignment-horizontal = me-&gt;horizontal.
es_alignment-vertical = me-&gt;vertical.
es_alignment-textrotation = me-&gt;textrotation.
es_alignment-wraptext = me-&gt;wraptext.
es_alignment-shrinktofit = me-&gt;shrinktofit.
es_alignment-indent = me-&gt;indent.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_BORDER" VERSION="1" LANGU="E" DESCRIPT="Border" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="BORDER_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="BORDER_STYLE" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_DASHDOT" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;dashDot&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_DASHDOTDOT" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;dashDotDot&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_DASHED" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="&apos;dashed&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_DOTTED" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;dotted&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_DOUBLE" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;double&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_HAIR" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;hair&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_MEDIUM" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;medium&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_MEDIUMDASHDOT" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;mediumDashDot&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_MEDIUMDASHDOTDOT" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;mediumDashDotDot&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_MEDIUMDASHED" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;mediumDashed&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_NONE" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;none&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_SLANTDASHDOT" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;slantDashDot&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_THICK" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;thick&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="C_BORDER_THIN" VERSION="1" LANGU="E" DESCRIPT="Border style" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;thin&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_BORDER" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
border_style = zcl_excel_style_border=&gt;c_border_none.
border_color-theme = zcl_excel_style_color=&gt;c_theme_not_set.
border_color-indexed = zcl_excel_style_color=&gt;c_indexed_not_set.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_BORDERS" VERSION="1" LANGU="E" DESCRIPT="Border Style" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="ALLBORDERS" VERSION="1" LANGU="E" DESCRIPT="Border" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="C_DIAGONAL_BOTH" VERSION="1" LANGU="E" DESCRIPT="Diagonal" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="3" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DIAGONAL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="C_DIAGONAL_DOWN" VERSION="1" LANGU="E" DESCRIPT="Diagonal" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DIAGONAL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="C_DIAGONAL_NONE" VERSION="1" LANGU="E" DESCRIPT="Diagonal" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DIAGONAL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="C_DIAGONAL_UP" VERSION="1" LANGU="E" DESCRIPT="Diagonal" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DIAGONAL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="DIAGONAL" VERSION="1" LANGU="E" DESCRIPT="Border" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="DIAGONAL_MODE" VERSION="1" LANGU="E" DESCRIPT="Diagonal" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DIAGONAL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="DOWN" VERSION="1" LANGU="E" DESCRIPT="Border" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="LEFT" VERSION="1" LANGU="E" DESCRIPT="Border" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="RIGHT" VERSION="1" LANGU="E" DESCRIPT="Border" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="TOP" VERSION="1" LANGU="E" DESCRIPT="Border" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_BORDER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="GET_STRUCTURE" VERSION="1" LANGU="E" DESCRIPT="Get structure" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_BORDERS" CMPNAME="GET_STRUCTURE" SCONAME="ES_FILL" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_BORDER"/>
<source>method GET_STRUCTURE.
*initialize colors to &apos;not set&apos;
es_fill-left_color-indexed = zcl_excel_style_color=&gt;c_indexed_not_set.
es_fill-left_color-theme = zcl_excel_style_color=&gt;c_theme_not_set.
es_fill-right_color-indexed = zcl_excel_style_color=&gt;c_indexed_not_set.
es_fill-right_color-theme = zcl_excel_style_color=&gt;c_theme_not_set.
es_fill-top_color-indexed = zcl_excel_style_color=&gt;c_indexed_not_set.
es_fill-top_color-theme = zcl_excel_style_color=&gt;c_theme_not_set.
es_fill-bottom_color-indexed = zcl_excel_style_color=&gt;c_indexed_not_set.
es_fill-bottom_color-theme = zcl_excel_style_color=&gt;c_theme_not_set.
es_fill-diagonal_color-indexed = zcl_excel_style_color=&gt;c_indexed_not_set.
es_fill-diagonal_color-theme = zcl_excel_style_color=&gt;c_theme_not_set.
* Check if all borders is set otherwise check single border
IF me-&gt;allborders IS BOUND.
es_fill-left_color = me-&gt;allborders-&gt;border_color.
es_fill-left_style = me-&gt;allborders-&gt;border_style.
es_fill-right_color = me-&gt;allborders-&gt;border_color.
es_fill-right_style = me-&gt;allborders-&gt;border_style.
es_fill-top_color = me-&gt;allborders-&gt;border_color.
es_fill-top_style = me-&gt;allborders-&gt;border_style.
es_fill-bottom_color = me-&gt;allborders-&gt;border_color.
es_fill-bottom_style = me-&gt;allborders-&gt;border_style.
ELSE.
IF me-&gt;left IS BOUND.
es_fill-left_color = me-&gt;left-&gt;border_color.
es_fill-left_style = me-&gt;left-&gt;border_style.
ENDIF.
IF me-&gt;right IS BOUND.
es_fill-right_color = me-&gt;right-&gt;border_color.
es_fill-right_style = me-&gt;right-&gt;border_style.
ENDIF.
IF me-&gt;top IS BOUND.
es_fill-top_color = me-&gt;top-&gt;border_color.
es_fill-top_style = me-&gt;top-&gt;border_style.
ENDIF.
IF me-&gt;down IS BOUND.
es_fill-bottom_color = me-&gt;down-&gt;border_color.
es_fill-bottom_style = me-&gt;down-&gt;border_style.
ENDIF.
ENDIF.
* Check if diagonal is set
IF me-&gt;diagonal IS BOUND.
es_fill-diagonal_color = me-&gt;diagonal-&gt;border_color.
es_fill-diagonal_style = me-&gt;diagonal-&gt;border_style.
CASE me-&gt;diagonal_mode.
WHEN 1.
es_fill-diagonalup = 1.
es_fill-diagonaldown = 0.
WHEN 2.
es_fill-diagonalup = 0.
es_fill-diagonaldown = 1.
WHEN 3.
es_fill-diagonalup = 1.
es_fill-diagonaldown = 1.
WHEN OTHERS.
es_fill-diagonalup = 0.
es_fill-diagonaldown = 0.
ENDCASE.
ENDIF.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_COLOR" VERSION="1" LANGU="E" DESCRIPT="Excel Style Color" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_ALPHA" VERSION="1" LANGU="E" DESCRIPT="Color Alpha" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;FF&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_BLACK" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;FF000000&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_BLUE" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;FF0000FF&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_DARKBLUE" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;FF000080&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_DARKGREEN" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;FF008000&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_DARKRED" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;FF800000&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_DARKYELLOW" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="&apos;FF808000&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_GRAY" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;FFCCCCCC&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_GREEN" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;FF00FF00&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_INDEXED_NOT_SET" VERSION="1" LANGU="E" DESCRIPT="Indexed color value - Not Set" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="2" ATTVALUE="-1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_INDEXED_SYS_FOREGROUND" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="2" ATTVALUE="64" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_RED" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;FFFF0000&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_ACCENT1" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="4" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_ACCENT2" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="5" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_ACCENT3" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="6" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_ACCENT4" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="7" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_ACCENT5" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTVALUE="8" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_ACCENT6" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTVALUE="9" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_DARK1" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_DARK2" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_HYPERLINK" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="2" ATTVALUE="10" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_HYPERLINK_FOLLOWED" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="2" ATTVALUE="11" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_LIGHT1" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_LIGHT2" VERSION="1" LANGU="E" DESCRIPT="Theme Color" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="3" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_THEME_NOT_SET" VERSION="1" LANGU="E" DESCRIPT="Theme Color - Not Set" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="2" ATTVALUE="-1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_WHITE" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;FFFFFFFF&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="C_YELLOW" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;FFFFFF00&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="CREATE_NEW_ARGB" VERSION="1" LANGU="E" DESCRIPT="Create a custom ARGB color from RGB" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="CREATE_NEW_ARGB" SCONAME="IP_RED" VERSION="1" LANGU="E" DESCRIPT="Color Component" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_COMPONENT"/>
<parameter CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="CREATE_NEW_ARGB" SCONAME="IP_GREEN" VERSION="1" LANGU="E" DESCRIPT="Color Component" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_COMPONENT"/>
<parameter CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="CREATE_NEW_ARGB" SCONAME="IP_BLU" VERSION="1" LANGU="E" DESCRIPT="Color Component" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_COMPONENT"/>
<parameter CLSNAME="ZCL_EXCEL_STYLE_COLOR" CMPNAME="CREATE_NEW_ARGB" SCONAME="EP_COLOR_ARGB" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB"/>
<source>method CREATE_NEW_ARGB.
CONCATENATE zcl_excel_style_color=&gt;c_alpha ip_red ip_green ip_blu INTO ep_color_argb.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" VERSION="1" LANGU="E" DESCRIPT="Font Style" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_CFVO_TYPE_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Condition type" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;formula&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_CFVO_TYPE_NUMBER" VERSION="1" LANGU="E" DESCRIPT="Condition type" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;num&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_CFVO_TYPE_PERCENT" VERSION="1" LANGU="E" DESCRIPT="Condition type" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;percent&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_CFVO_TYPE_PERCENTILE" VERSION="1" LANGU="E" DESCRIPT="Condition type" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;percentile&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_3ARROWS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;3Arrows&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_3ARROWSGRAY" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="&apos;3ArrowsGray&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_3FLAGS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;3Flags&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_3SIGNS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;3Signs&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_3SYMBOLS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;3Symbols&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_3SYMBOLS2" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;3Symbols2&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_3TRAFFICLIGHTS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_3TRAFFICLIGHTS2" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;3TrafficLights2&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_4ARROWS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;4Arrows&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_4ARROWSGRAY" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;4ArrowsGray&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_4RATING" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;4Rating&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_4REDTOBLACK" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;4RedToBlack&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_4TRAFFICLIGHTS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;4TrafficLights&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_5ARROWS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="&apos;5Arrows&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_5ARROWSGRAY" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="&apos;5ArrowsGray&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_5QUARTERS" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTVALUE="&apos;5Quarters&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_ICONSET_5RATING" VERSION="1" LANGU="E" DESCRIPT="Condition rule iconset" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTVALUE="&apos;5Rating&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_BEGINSWITH" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="2" ATTVALUE="&apos;beginsWith&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_BETWEEN" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="2" ATTVALUE="&apos;between&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_CONTAINSTEXT" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="2" ATTVALUE="&apos;containsText&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_ENDSWITH" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="2" ATTVALUE="&apos;endsWith&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_EQUAL" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="2" ATTVALUE="&apos;equal&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_GREATERTHAN" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="27 " ATTDECLTYP="2" ATTVALUE="&apos;greaterThan&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_GREATERTHANOREQUAL" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="28 " ATTDECLTYP="2" ATTVALUE="&apos;greaterThanOrEqual&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_LESSTHAN" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="29 " ATTDECLTYP="2" ATTVALUE="&apos;lessThan&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_LESSTHANOREQUAL" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="30 " ATTDECLTYP="2" ATTVALUE="&apos;lessThanOrEqual&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_NONE" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="31 " ATTDECLTYP="2" ATTVALUE="&apos;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_NOTCONTAINS" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="32 " ATTDECLTYP="2" ATTVALUE="&apos;notContains&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_OPERATOR_NOTEQUAL" VERSION="1" LANGU="E" DESCRIPT="Condition operator" EXPOSURE="2" STATE="1" EDITORDER="33 " ATTDECLTYP="2" ATTVALUE="&apos;notEqual&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_RULE_CELLIS" VERSION="1" LANGU="E" DESCRIPT="Condition rule" EXPOSURE="2" STATE="1" EDITORDER="34 " ATTDECLTYP="2" ATTVALUE="&apos;cellIs&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_RULE_CONTAINSTEXT" VERSION="1" LANGU="E" DESCRIPT="Condition rule" EXPOSURE="2" STATE="1" EDITORDER="35 " ATTDECLTYP="2" ATTVALUE="&apos;containsText&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_RULE_DATABAR" VERSION="1" LANGU="E" DESCRIPT="Condition rule" EXPOSURE="2" STATE="1" EDITORDER="36 " ATTDECLTYP="2" ATTVALUE="&apos;dataBar&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_RULE_EXPRESSION" VERSION="1" LANGU="E" DESCRIPT="Condition rule" EXPOSURE="2" STATE="1" EDITORDER="37 " ATTDECLTYP="2" ATTVALUE="&apos;expression&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_RULE_ICONSET" VERSION="1" LANGU="E" DESCRIPT="Condition rule" EXPOSURE="2" STATE="1" EDITORDER="38 " ATTDECLTYP="2" ATTVALUE="&apos;iconSet&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_RULE_NONE" VERSION="1" LANGU="E" DESCRIPT="Condition rule" EXPOSURE="2" STATE="1" EDITORDER="39 " ATTDECLTYP="2" ATTVALUE="&apos;none&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_SHOWVALUE_FALSE" VERSION="1" LANGU="E" DESCRIPT="Condition type" EXPOSURE="2" STATE="1" EDITORDER="40 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_SHOW_VALUE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="C_SHOWVALUE_TRUE" VERSION="1" LANGU="E" DESCRIPT="Condition type" EXPOSURE="2" STATE="1" EDITORDER="41 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_SHOW_VALUE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="MODE_CELLIS" VERSION="1" LANGU="E" DESCRIPT="Iconset settings" EXPOSURE="2" STATE="1" EDITORDER="42 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_CELLIS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="MODE_DATABAR" VERSION="1" LANGU="E" DESCRIPT="Databar settings" EXPOSURE="2" STATE="1" EDITORDER="43 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_DATABAR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="MODE_EXPRESSION" VERSION="1" LANGU="E" DESCRIPT="Expression settings" EXPOSURE="2" STATE="1" EDITORDER="44 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_EXPRESSION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="MODE_ICONSET" VERSION="1" LANGU="E" DESCRIPT="Iconset settings" EXPOSURE="2" STATE="1" EDITORDER="45 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITIONAL_ICONSET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="PRIORITY" VERSION="1" LANGU="E" DESCRIPT="Style Priority" EXPOSURE="2" STATE="1" EDITORDER="46 " ATTDECLTYP="0" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_PRIORITY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="RULE" VERSION="1" LANGU="E" DESCRIPT="Condition rule" EXPOSURE="2" STATE="1" EDITORDER="47 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CONDITION_RULE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="START_CELL" VERSION="1" LANGU="E" DESCRIPT="Cell data" EXPOSURE="0" STATE="1" EDITORDER="48 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CELL_DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="STOP_CELL" VERSION="1" LANGU="E" DESCRIPT="Cell data" EXPOSURE="0" STATE="1" EDITORDER="49 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CELL_DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
DATA: ls_iconset TYPE zexcel_conditional_iconset.
ls_iconset-iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights.
ls_iconset-cfvo1_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo1_value = &apos;0&apos;.
ls_iconset-cfvo2_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo2_value = &apos;20&apos;.
ls_iconset-cfvo3_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo3_value = &apos;40&apos;.
ls_iconset-cfvo4_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo4_value = &apos;60&apos;.
ls_iconset-cfvo5_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo5_value = &apos;80&apos;.
me-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_none.
* me-&gt;iconset-&gt;operator = zcl_excel_style_conditional=&gt;c_operator_none.
me-&gt;mode_iconset = ls_iconset.
me-&gt;priority = 1.
* inizialize dimension range
me-&gt;stop_cell-cell_row = 1.
me-&gt;stop_cell-cell_column = 1.
me-&gt;start_cell-cell_row = 1.
me-&gt;start_cell-cell_column = 1.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="GET_DIMENSION_RANGE" VERSION="1" LANGU="E" DESCRIPT="Get used range dimension" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="GET_DIMENSION_RANGE" SCONAME="EP_DIMENSION_RANGE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_DIMENSION_RANGE.
IF stop_cell EQ start_cell. &quot;only one cell
ep_dimension_range = start_cell-cell_coords.
ELSE.
CONCATENATE start_cell-cell_coords &apos;:&apos; stop_cell-cell_coords INTO ep_dimension_range.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="SET_RANGE" VERSION="1" LANGU="E" DESCRIPT="Set range used in conditional formatting" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="SET_RANGE" SCONAME="IP_START_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="SET_RANGE" SCONAME="IP_START_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="SET_RANGE" SCONAME="IP_STOP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_STYLE_CONDITIONAL" CMPNAME="SET_RANGE" SCONAME="IP_STOP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<source>method SET_RANGE.
DATA: lv_column TYPE zexcel_cell_column,
lv_row_alpha TYPE string.
lv_column = zcl_excel_common=&gt;convert_column2int( ip_stop_column ).
stop_cell-cell_row = 1.
stop_cell-cell_column = lv_column.
lv_row_alpha = ip_stop_row.
SHIFT lv_row_alpha RIGHT DELETING TRAILING space.
SHIFT lv_row_alpha LEFT DELETING LEADING space.
CONCATENATE ip_stop_column lv_row_alpha INTO stop_cell-cell_coords.
lv_column = zcl_excel_common=&gt;convert_column2int( ip_start_column ).
start_cell-cell_row = 1.
start_cell-cell_column = lv_column.
lv_row_alpha = ip_start_row.
SHIFT lv_row_alpha RIGHT DELETING TRAILING space.
SHIFT lv_row_alpha LEFT DELETING LEADING space.
CONCATENATE ip_start_column lv_row_alpha INTO start_cell-cell_coords.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_FILL" VERSION="1" LANGU="E" DESCRIPT="Fill Style" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="BGCOLOR" VERSION="1" LANGU="E" DESCRIPT="Color" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_GRADIENT_LINEAR" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;linear&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_GRADIENT_PATH" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;path&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_NONE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;none&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_DARKDOWN" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;darkDown&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_DARKGRAY" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="&apos;darkGray&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_DARKGRID" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;darkGrid&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_DARKHORIZONTAL" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;darkHorizontal&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_DARKTRELLIS" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;darkTrellis&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_DARKUP" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;darkUp&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_DARKVERTICAL" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;darkVertical&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_GRAY0625" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;gray0625&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_GRAY125" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;gray125&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_LIGHTDOWN" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;lightDown&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_LIGHTGRAY" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;lightGray&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_LIGHTGRID" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;lightGrid&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_LIGHTHORIZONTAL" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;lightHorizontal&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_LIGHTTRELLIS" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="&apos;lightTrellis&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_LIGHTUP" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="&apos;lightUp&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_LIGHTVERTICAL" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTVALUE="&apos;lightVertical&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_PATTERN_MEDIUMGRAY" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTVALUE="&apos;mediumGray&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="C_FILL_SOLID" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;solid&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="FGCOLOR" VERSION="1" LANGU="E" DESCRIPT="Color" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="FILLTYPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="ROTATION" VERSION="1" LANGU="E" DESCRIPT="Rotation" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ROTATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
filltype = zcl_excel_style_fill=&gt;c_fill_none.
fgcolor-theme = zcl_excel_style_color=&gt;c_theme_not_set.
fgcolor-indexed = zcl_excel_style_color=&gt;c_indexed_not_set.
bgcolor-theme = zcl_excel_style_color=&gt;c_theme_not_set.
bgcolor-indexed = zcl_excel_style_color=&gt;c_indexed_sys_foreground.
rotation = 0.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="GET_STRUCTURE" VERSION="1" LANGU="E" DESCRIPT="Get structure" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_FILL" CMPNAME="GET_STRUCTURE" SCONAME="ES_FILL" VERSION="1" LANGU="E" DESCRIPT="Cell Fill" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_FILL"/>
<source>method GET_STRUCTURE.
es_fill-rotation = me-&gt;rotation.
es_fill-filltype = me-&gt;filltype.
es_fill-fgColor = me-&gt;fgColor.
es_fill-bgColor = me-&gt;bgColor.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_FONT" VERSION="1" LANGU="E" DESCRIPT="Font Style" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_STYLE_FONT" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="BOLD" VERSION="1" LANGU="E" DESCRIPT="Bold" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="COLOR" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_FAMILY_DECORATIVE" VERSION="1" LANGU="E" DESCRIPT="Font family" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="5" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_FAMILY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_FAMILY_MODERN" VERSION="1" LANGU="E" DESCRIPT="Font family" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="3" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_FAMILY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_FAMILY_NONE" VERSION="1" LANGU="E" DESCRIPT="Font family" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_FAMILY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_FAMILY_ROMAN" VERSION="1" LANGU="E" DESCRIPT="Font family" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_FAMILY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_FAMILY_SCRIPT" VERSION="1" LANGU="E" DESCRIPT="Font family" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="4" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_FAMILY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_FAMILY_SWISS" VERSION="1" LANGU="E" DESCRIPT="Font family" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_FAMILY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_NAME_ARIAL" VERSION="1" LANGU="E" DESCRIPT="Font name" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;Arial&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_NAME_CALIBRI" VERSION="1" LANGU="E" DESCRIPT="Font name" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;Calibri&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_NAME_CAMBRIA" VERSION="1" LANGU="E" DESCRIPT="Font name" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;Cambria&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_NAME_ROMAN" VERSION="1" LANGU="E" DESCRIPT="Font name" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;Times New Roman&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_SCHEME_MAJOR" VERSION="1" LANGU="E" DESCRIPT="Font scheme" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;major&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_SCHEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_SCHEME_MINOR" VERSION="1" LANGU="E" DESCRIPT="Font scheme" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;minor&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_SCHEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_SCHEME_NONE" VERSION="1" LANGU="E" DESCRIPT="Font scheme" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_SCHEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_UNDERLINE_DOUBLE" VERSION="1" LANGU="E" DESCRIPT="Font underline" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;double&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_UNDERLINE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_UNDERLINE_DOUBLEACCOUNTING" VERSION="1" LANGU="E" DESCRIPT="Font underline" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;doubleAccounting&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_UNDERLINE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_UNDERLINE_NONE" VERSION="1" LANGU="E" DESCRIPT="Font underline" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="&apos;none&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_UNDERLINE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_UNDERLINE_SINGLE" VERSION="1" LANGU="E" DESCRIPT="Font underline" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="&apos;single&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_UNDERLINE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="C_UNDERLINE_SINGLEACCOUNTING" VERSION="1" LANGU="E" DESCRIPT="Font underline" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTVALUE="&apos;singleAccounting&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_UNDERLINE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="FAMILY" VERSION="1" LANGU="E" DESCRIPT="Font family" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="0" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_FAMILY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="ITALIC" VERSION="1" LANGU="E" DESCRIPT="Italic" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="NAME" VERSION="1" LANGU="E" DESCRIPT="Font name" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="0" ATTVALUE="&apos;Calibri&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="SCHEME" VERSION="1" LANGU="E" DESCRIPT="Scheme code" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="0" ATTVALUE="&apos;minor&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_SCHEME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Font size" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="0" ATTVALUE="11" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="STRIKETHROUGH" VERSION="1" LANGU="E" DESCRIPT="Strikethrough" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="UNDERLINE" VERSION="1" LANGU="E" DESCRIPT="Underline" EXPOSURE="2" STATE="1" EDITORDER="27 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="UNDERLINE_MODE" VERSION="1" LANGU="E" DESCRIPT="Underline mode" EXPOSURE="2" STATE="1" EDITORDER="28 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_UNDERLINE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="CALCULATE_TEXT_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Calculate text width based on font size" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="CALCULATE_TEXT_WIDTH" SCONAME="I_TEXT" 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_STYLE_FONT" CMPNAME="CALCULATE_TEXT_WIDTH" SCONAME="R_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Field of type FLTP" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method CALCULATE_TEXT_WIDTH.
&quot; Addition to solve issue #120, contribution by Stefan Schmöcker
r_width = strlen( i_text ).
&quot; use scale factor based on default 11
&quot; ( don&apos;t know where defaultsetting is stored currently )
r_width = r_width * me-&gt;size / 11.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
me-&gt;color-rgb = zcl_excel_style_color=&gt;c_black.
me-&gt;color-theme = zcl_excel_style_color=&gt;c_theme_not_set.
me-&gt;color-indexed = zcl_excel_style_color=&gt;c_indexed_not_set.
me-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_minor.
me-&gt;underline_mode = zcl_excel_style_font=&gt;c_underline_single.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="GET_STRUCTURE" VERSION="1" LANGU="E" DESCRIPT="Get class as a structure" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_FONT" CMPNAME="GET_STRUCTURE" SCONAME="ES_FONT" VERSION="1" LANGU="E" DESCRIPT="Cell Font" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_FONT"/>
<source>method GET_STRUCTURE.
es_font-bold = me-&gt;bold.
es_font-italic = me-&gt;italic.
es_font-underline = me-&gt;underline.
es_font-underline_mode = me-&gt;underline_mode.
es_font-strikethrough = me-&gt;strikethrough.
es_font-size = me-&gt;size.
es_font-color = me-&gt;color.
es_font-name = me-&gt;name.
es_font-family = me-&gt;family.
es_font-scheme = me-&gt;scheme.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Number Format Style" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_CURRENCY_EUR_SIMPLE" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;[$EUR ]#,##0.00_-&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_CURRENCY_USD" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;$#,##0_-&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_CURRENCY_USD_SIMPLE" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;&quot;$&quot;#,##0.00_-&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_DATETIME" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="&apos;d/m/y h:mm&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_DDMMYYYY" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="&apos;dd/mm/yy&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_DDMMYYYYDOT" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;dd\.mm\.yyyy&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_DMMINUS" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;d-m&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_DMYMINUS" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;d-m-y&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_DMYSLASH" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;d/m/y&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_MYMINUS" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;m-y&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_STD" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;STD_DATE&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_TIME1" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;h:mm AM/PM&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_TIME2" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;h:mm:ss AM/PM&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_TIME3" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;h:mm&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_TIME4" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;h:mm:ss&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_TIME5" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;mm:ss&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_TIME6" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="&apos;h:mm:ss&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_TIME7" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="&apos;i:s.S&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_TIME8" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTVALUE="&apos;h:mm:ss@&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_XLSX14" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTVALUE="&apos;mm-dd-yy&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_XLSX15" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="2" ATTVALUE="&apos;d-mmm-yy&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_XLSX16" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="2" ATTVALUE="&apos;d-mmm&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_XLSX17" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="2" ATTVALUE="&apos;mmm-yy&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_XLSX22" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="2" ATTVALUE="&apos;m/d/yy h:mm&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_YYMMDD" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="2" ATTVALUE="&apos;yymmdd&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_YYMMDDMINUS" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="27 " ATTDECLTYP="2" ATTVALUE="&apos;yy-mm-dd&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_YYMMDDSLASH" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="28 " ATTDECLTYP="2" ATTVALUE="&apos;yy/mm/dd&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_YYYYMMDD" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="29 " ATTDECLTYP="2" ATTVALUE="&apos;yyyymmdd&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_YYYYMMDDMINUS" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="30 " ATTDECLTYP="2" ATTVALUE="&apos;yyyy-mm-dd&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_DATE_YYYYMMDDSLASH" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="31 " ATTDECLTYP="2" ATTVALUE="&apos;yyyy/mm/dd&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_GENERAL" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="32 " ATTDECLTYP="2" ATTVALUE="&apos;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_NUMBER" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="33 " ATTDECLTYP="2" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_NUMBER_00" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="34 " ATTDECLTYP="2" ATTVALUE="&apos;0.00&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_NUMBER_COMMA_SEP1" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="35 " ATTDECLTYP="2" ATTVALUE="&apos;#,##0.00&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_NUMBER_COMMA_SEP2" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="36 " ATTDECLTYP="2" ATTVALUE="&apos;#,##0.00_-&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_NUMC_STD" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;STD_NDEC&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_PERCENTAGE" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="37 " ATTDECLTYP="2" ATTVALUE="&apos;0%&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_PERCENTAGE_00" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="38 " ATTDECLTYP="2" ATTVALUE="&apos;0.00%&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="C_FORMAT_TEXT" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="39 " ATTDECLTYP="2" ATTVALUE="&apos;@&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="FORMAT_CODE" VERSION="1" LANGU="E" DESCRIPT="Number format" EXPOSURE="2" STATE="1" EDITORDER="40 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
format_code = me-&gt;c_format_general.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="GET_STRUCTURE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_NUMBER_FORMAT" CMPNAME="GET_STRUCTURE" SCONAME="EP_NUMBER_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Number format" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_NUMFMT"/>
<source>method GET_STRUCTURE.
ep_number_format-numfmt = me-&gt;format_code.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" VERSION="1" LANGU="E" DESCRIPT="Protection Style" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="C_PROTECTION_HIDDEN" VERSION="1" LANGU="E" DESCRIPT="Protection" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="C_PROTECTION_LOCKED" VERSION="1" LANGU="E" DESCRIPT="Protection" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="C_PROTECTION_UNHIDDEN" VERSION="1" LANGU="E" DESCRIPT="Protection" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="C_PROTECTION_UNLOCKED" VERSION="1" LANGU="E" DESCRIPT="Protection" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="HIDDEN" VERSION="1" LANGU="E" DESCRIPT="Protection" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="LOCKED" VERSION="1" LANGU="E" DESCRIPT="Protection" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
locked = me-&gt;c_protection_locked.
hidden = me-&gt;c_protection_unhidden.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="GET_STRUCTURE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_STYLE_PROTECTION" CMPNAME="GET_STRUCTURE" SCONAME="EP_PROTECTION" VERSION="1" LANGU="E" DESCRIPT="Protection" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_PROTECTION"/>
<source>method GET_STRUCTURE.
ep_protection-locked = me-&gt;locked.
ep_protection-hidden = me-&gt;hidden.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_TABLE" VERSION="1" LANGU="E" DESCRIPT="Represents Excel Table" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_CUSTOM" VERSION="1" LANGU="E" DESCRIPT="Totals function" EXPOSURE="2" STATE="1" EDITORDER="28 " ATTDECLTYP="2" ATTVALUE="&apos;custom&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="GET_BOTTOM_ROW_INTEGER" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " 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="6 " 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="7 " 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="9 " 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 zcl_excel_table=&gt;totals_function_custom. &quot; issue #292
RETURN.
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.
DATA lr_temp TYPE REF TO data.
FIELD-SYMBOLS: &lt;lt_table_temp&gt; TYPE ANY TABLE,
&lt;lt_table&gt; TYPE ANY TABLE.
GET REFERENCE OF ir_data INTO lr_temp.
ASSIGN lr_temp-&gt;* TO &lt;lt_table_temp&gt;.
CREATE DATA table_data LIKE &lt;lt_table_temp&gt;.
ASSIGN me-&gt;table_data-&gt;* TO &lt;lt_table&gt;.
&lt;lt_table&gt; = &lt;lt_table_temp&gt;.
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>
<CLAS CLSNAME="ZCL_EXCEL_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<types CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="MTY_S_FONT_METRIC" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="4 " SRCCOLUMN1="4 " SRCROW2="7 " SRCCOLUMN2="32 " TYPESRC_LENG="139 " TYPESRC="BEGIN OF mty_s_font_metric,
char TYPE c LENGTH 1,
char_width TYPE tdcwidths,
END OF mty_s_font_metric
"/>
<types CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="MTY_TH_FONT_METRICS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="9 " SRCCOLUMN1="4 " SRCROW2="11 " SRCCOLUMN2="30 " TYPESRC_LENG="102 " TYPESRC="mty_th_font_metrics
TYPE HASHED TABLE OF mty_s_font_metric
WITH UNIQUE KEY char
"/>
<types CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="MTY_S_FONT_CACHE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="13 " SRCCOLUMN1="4 " SRCROW2="19 " SRCCOLUMN2="31 " TYPESRC_LENG="299 " TYPESRC="BEGIN OF mty_s_font_cache,
font_name TYPE zexcel_style_font_name,
font_height TYPE tdfontsize,
flag_bold TYPE abap_bool,
flag_italic TYPE abap_bool,
th_font_metrics TYPE mty_th_font_metrics,
END OF mty_s_font_cache
"/>
<types CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="MTY_TH_FONT_CACHE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="4 " TYPTYPE="4" SRCROW1="21 " SRCCOLUMN1="4 " SRCROW2="23 " SRCCOLUMN2="69 " TYPESRC_LENG="138 " TYPESRC="mty_th_font_cache
TYPE HASHED TABLE OF mty_s_font_cache
WITH UNIQUE KEY font_name font_height flag_bold flag_italic
"/>
<implementing CLSNAME="ZCL_EXCEL_WORKSHEET" REFCLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<implementing CLSNAME="ZCL_EXCEL_WORKSHEET" REFCLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<implementing CLSNAME="ZCL_EXCEL_WORKSHEET" REFCLSNAME="ZIF_EXCEL_SHEET_PROTECTION" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<implementing CLSNAME="ZCL_EXCEL_WORKSHEET" REFCLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes
*&amp;---------------------------------------------------------------------*
*&amp; Class (Implementation) C_OI_PROXY_ERROR
*&amp;---------------------------------------------------------------------*
CLASS c_oi_proxy_error IMPLEMENTATION.
METHOD constructor.
* IMPORTING object_name TYPE c
* method_name TYPE c.
error_nr = ret_call_not_flushed.
me-&gt;i_oi_error~error_code = c_oi_errors=&gt;ret_call_not_flushed.
me-&gt;i_oi_error~is_flushed = &apos; &apos;.
me-&gt;i_oi_error~has_failed = &apos;X&apos;.
me-&gt;i_oi_error~has_succeeded = &apos; &apos;.
me-&gt;message_id = &apos;SOFFICEINTEGRATION&apos;.
me-&gt;message_nr = &apos;899&apos;.
me-&gt;param1 = object_name.
me-&gt;param2 = method_name.
ENDMETHOD. &quot;constructor
METHOD i_oi_error~flush_error.
IF error_nr EQ 0.
me-&gt;i_oi_error~error_code = c_oi_errors=&gt;ret_ok.
me-&gt;i_oi_error~is_flushed = &apos;X&apos;.
me-&gt;i_oi_error~has_failed = &apos; &apos;.
me-&gt;i_oi_error~has_succeeded = &apos;X&apos;.
me-&gt;message_id = &apos;&apos;.
me-&gt;message_nr = &apos;000&apos;.
CALL METHOD c_oi_errors=&gt;translate_proxy_error_code
EXPORTING
errorcode = error_nr
IMPORTING
retcode = me-&gt;i_oi_error~error_code.
ELSEIF error_nr EQ ret_call_not_flushed.
&quot;call still not flushed
CALL METHOD c_oi_errors=&gt;translate_proxy_error_code
EXPORTING
errorcode = error_nr
errorstring = me-&gt;param2 &quot;method name
objectname = me-&gt;param1
IMPORTING
retcode = me-&gt;i_oi_error~error_code.
ELSE.
me-&gt;i_oi_error~is_flushed = &apos;X&apos;.
me-&gt;i_oi_error~has_succeeded = &apos; &apos;.
me-&gt;i_oi_error~has_failed = &apos;X&apos;.
CALL METHOD c_oi_errors=&gt;translate_proxy_error_code
EXPORTING
errorcode = error_nr
errorstring = error_string
IMPORTING
retcode = me-&gt;i_oi_error~error_code.
CALL METHOD c_oi_errors=&gt;get_message
IMPORTING
message_id = me-&gt;message_id
message_number = me-&gt;message_nr
param1 = me-&gt;param1
param2 = me-&gt;param2
param3 = me-&gt;param3
param4 = me-&gt;param4.
ENDIF.
ENDMETHOD. &quot;i_oi_error~flush_error
METHOD i_oi_error~raise_message.
* IMPORTING type TYPE c.
* EXCEPTIONS message_raised flush_failed.
IF me-&gt;i_oi_error~has_succeeded IS INITIAL.
IF NOT me-&gt;i_oi_error~is_flushed IS INITIAL.
MESSAGE ID message_id TYPE type
NUMBER message_nr WITH param1 param2 param3 param4
RAISING message_raised.
ELSE.
RAISE flush_failed.
ENDIF.
ENDIF.
ENDMETHOD. &quot;i_oi_error~raise_message
METHOD i_oi_error~get_message.
* EXPORTING message_id TYPE c
* message_number TYPE c
* param1 TYPE c
* param2 TYPE c
* param3 TYPE c
* param4 TYPE c.
param1 = me-&gt;param1. param2 = me-&gt;param2.
param3 = me-&gt;param3. param4 = me-&gt;param4.
message_id = me-&gt;message_id.
message_number = me-&gt;message_nr.
ENDMETHOD. &quot;i_oi_error~get_message
ENDCLASS. &quot;C_OI_PROXY_ERROR
*&amp;---------------------------------------------------------------------*
*&amp; Class (Implementation) CL_GRID_ACCESSION
*&amp;---------------------------------------------------------------------*
CLASS lcl_gui_alv_grid IMPLEMENTATION.
METHOD get_alv_attributes.
CREATE DATA et_table LIKE io_grid-&gt;mt_outtab.
et_table = io_grid-&gt;mt_outtab.
ENDMETHOD. &quot;get_data
ENDCLASS. &quot;CL_GRID_ACCESSION</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
TYPE-POOLS: sydes.
TYPE-POOLS: slis.
*--------------------------------------------------------------------*
* CLASS c_oi_proxy_error
*--------------------------------------------------------------------*
* use for method bind_ALV
*--------------------------------------------------------------------*
CLASS c_oi_proxy_error DEFINITION.
PUBLIC SECTION.
INTERFACES: i_oi_error.
DATA: error_nr TYPE i.
DATA: error_string TYPE sy-msgv1.
METHODS: constructor IMPORTING object_name TYPE c
method_name TYPE c.
PRIVATE SECTION.
CONSTANTS:
ret_call_not_flushed TYPE i VALUE -999999.
DATA: message_id TYPE sy-msgid,
message_nr TYPE sy-msgno,
param1 TYPE sy-msgv1,
param2 TYPE sy-msgv2,
param3 TYPE sy-msgv3,
param4 TYPE sy-msgv4.
ENDCLASS. &quot;c_oi_proxy_error DEFINITION
*--------------------------------------------------------------------*
* CLASS lcl_gui_alv_grid
*--------------------------------------------------------------------*
* to get protected attribute and method of cl_gui_alv_grid
* use for method bind_ALV
*--------------------------------------------------------------------*
CLASS lcl_gui_alv_grid DEFINITION INHERITING FROM cl_gui_alv_grid.
PUBLIC SECTION.
* get ALV grid data
METHODS: get_alv_attributes
IMPORTING
io_grid TYPE REF TO cl_gui_alv_grid &quot; ALV grid
EXPORTING
et_table TYPE REF TO data. &quot; dta table
ENDCLASS. &quot;lcl_gui_alv_grid DEFINITION</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<textPool>
<language SPRAS="1">
<textElement ID="I" KEY="001" ENTRY="Sheet" LENGTH="132 "/>
</language>
<language SPRAS="2">
<textElement ID="I" KEY="001" ENTRY="Sheet" LENGTH="132 "/>
</language>
<language SPRAS="D">
<textElement ID="I" KEY="001" ENTRY="Tabelle" LENGTH="132 "/>
<textElement ID="I" KEY="400" ENTRY="Tabelle überschneidet sich mit schon eingebundener Tabelle und wird diesem Tabellenblatt nicht hinzugefügt." LENGTH="132 "/>
<textElement ID="I" KEY="401" ENTRY="Für Druckbereich Wiederholungsspalten wurde ein ungültiger Bereich übergeben" LENGTH="132 "/>
<textElement ID="I" KEY="402" ENTRY="Nicht erlaubtes Zeichen in Titel des Arbeitblatts. Liste der verbotenen Zeichen: /\[]*?:" LENGTH="132 "/>
<textElement ID="I" KEY="403" ENTRY="Blattname darf nicht mit &amp; beginnen." LENGTH="132 "/>
</language>
<language SPRAS="E">
<textElement ID="I" KEY="001" ENTRY="Sheet" LENGTH="132 "/>
<textElement ID="I" KEY="400" ENTRY="Table overlaps with previously bound table and will not be added to worksheet." LENGTH="132 "/>
<textElement ID="I" KEY="401" ENTRY="Invalid range supplied for print-title repeatable columns" LENGTH="132 "/>
<textElement ID="I" KEY="402" ENTRY="Found illegal character in sheetname. List of forbidden characters: /\[]*?:" LENGTH="132 "/>
<textElement ID="I" KEY="403" ENTRY="Sheetname may not start with &amp;" LENGTH="132 "/>
</language>
<language SPRAS="I">
<textElement ID="I" KEY="001" ENTRY="Foglio1" LENGTH="132 "/>
</language>
<language SPRAS="L">
<textElement ID="I" KEY="001" ENTRY="Sheet" LENGTH="132 "/>
</language>
<language SPRAS="S">
<textElement ID="I" KEY="001" ENTRY="Sheet" LENGTH="132 "/>
</language>
</textPool>
<typeUsage CLSNAME="ZCL_EXCEL_WORKSHEET" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<typeUsage CLSNAME="ZCL_EXCEL_WORKSHEET" TYPEGROUP="SLIS" VERSION="1" TPUTYPE="0" IMPLICIT="X"/>
<typeUsage CLSNAME="ZCL_EXCEL_WORKSHEET" TYPEGROUP="SOI" VERSION="1" TPUTYPE="0" IMPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<forwardDeclaration>SLIS</forwardDeclaration>
<forwardDeclaration>SOI</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ACTIVE_CELL" VERSION="1" LANGU="E" DESCRIPT="Version Number Component" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CELL_DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHARTS" VERSION="1" LANGU="E" DESCRIPT="Charts collection" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWINGS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="COLUMN_DIMENSIONS" VERSION="1" LANGU="E" DESCRIPT="Collection of column dimensions" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_WORKSHEET_COLUMNDIME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CONDITIONAL_STYLES" VERSION="1" LANGU="E" DESCRIPT="Styles conditional collection" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLES_CONDITIONAL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="C_BREAK_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Worksheet Break" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BREAK" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="C_BREAK_NONE" VERSION="1" LANGU="E" DESCRIPT="Worksheet Break" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BREAK" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="C_BREAK_ROW" VERSION="1" LANGU="E" DESCRIPT="Worksheet Break" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BREAK" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="DATA_VALIDATIONS" VERSION="1" LANGU="E" DESCRIPT="Data validations collection" EXPOSURE="0" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DATA_VALIDATIONS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="DEFAULT_COLUMN_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" EXPOSURE="0" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="DEFAULT_EXCEL_DATE_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Date format used in case style is not provide for D fields" EXPOSURE="0" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="DEFAULT_EXCEL_TIME_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Date format used in case style is not provide for D fields" EXPOSURE="0" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="DEFAULT_ROW_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Worksheet RowDimension" EXPOSURE="0" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="DRAWINGS" VERSION="1" LANGU="E" DESCRIPT="Drawings collection" EXPOSURE="0" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWINGS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="EXCEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANE_CELL_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="0" STATE="1" EDITORDER="15 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANE_CELL_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="0" STATE="1" EDITORDER="16 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GUID" VERSION="1" LANGU="E" DESCRIPT="GUID in &apos;RAW&apos; format" EXPOSURE="0" STATE="1" EDITORDER="17 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="UUID" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="HYPERLINKS" VERSION="1" LANGU="E" DESCRIPT="Colletion of hyperlinks" EXPOSURE="0" STATE="1" EDITORDER="18 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="LOWER_CELL" VERSION="1" LANGU="E" DESCRIPT="Bottom right range cell" EXPOSURE="0" STATE="1" EDITORDER="19 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CELL_DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="MTH_FONT_CACHE" VERSION="1" LANGU="E" DESCRIPT="Hash table containing fonts and their metrics" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="MTY_TH_FONT_CACHE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="PRINT_GRIDLINES" VERSION="1" LANGU="E" DESCRIPT="Print Gridlines" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="0" ATTRDONLY="X" ATTVALUE="ABAP_FALSE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_PRINT_GRIDLINES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="PRINT_TITLE_COL_FROM" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="0" STATE="1" EDITORDER="33 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="PRINT_TITLE_COL_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="0" STATE="1" EDITORDER="34 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="PRINT_TITLE_ROW_FROM" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="0" STATE="1" EDITORDER="35 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="PRINT_TITLE_ROW_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="0" STATE="1" EDITORDER="36 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="RANGES" VERSION="1" LANGU="E" DESCRIPT="Ranges collection" EXPOSURE="0" STATE="1" EDITORDER="21 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ROW_DIMENSIONS" VERSION="1" LANGU="E" DESCRIPT="Collection of row dimensions" EXPOSURE="0" STATE="1" EDITORDER="22 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_WORKSHEET_ROWDIMENSIO" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SHEET_CONTENT" VERSION="1" LANGU="E" DESCRIPT="Excel worksheet content" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_CELL_DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SHEET_CONTENT_MERGE" VERSION="1" LANGU="E" DESCRIPT="Excel worksheet content" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_CELL_DATA_UNSORTED" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SHEET_SETUP" VERSION="1" LANGU="E" DESCRIPT="Sheet setup" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_SHEET_SETUP" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SHOW_GRIDLINES" VERSION="1" LANGU="E" DESCRIPT="Show Gridlines" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="0" ATTRDONLY="X" ATTVALUE="ABAP_TRUE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHOW_GRIDLINES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SHOW_ROWCOLHEADERS" VERSION="1" LANGU="E" DESCRIPT="Show Gridlines" EXPOSURE="2" STATE="1" EDITORDER="27 " ATTDECLTYP="0" ATTRDONLY="X" ATTVALUE="ABAP_TRUE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHOW_GRIDLINES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="STYLES" VERSION="1" LANGU="E" DESCRIPT="Sheet style table type" EXPOSURE="2" STATE="1" EDITORDER="28 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_SHEET_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="TABCOLOR" VERSION="1" LANGU="E" DESCRIPT="Tabcolor" EXPOSURE="2" STATE="1" EDITORDER="29 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_TABCOLOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="TABLES" VERSION="1" LANGU="E" DESCRIPT="Colletion of tables" EXPOSURE="0" STATE="1" EDITORDER="30 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" EXPOSURE="0" STATE="1" EDITORDER="31 " ATTDECLTYP="0" ATTVALUE="&apos;Worksheet&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="UPPER_CELL" VERSION="1" LANGU="E" DESCRIPT="Top left range cell" EXPOSURE="0" STATE="1" EDITORDER="32 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CELL_DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS~CLEAR_PRINT_REPEAT_COLUMNS">
<source>method ZIF_EXCEL_SHEET_PRINTSETTINGS~CLEAR_PRINT_REPEAT_COLUMNS.
*--------------------------------------------------------------------*
* adjust internal representation
*--------------------------------------------------------------------*
CLEAR: me-&gt;print_title_col_from,
me-&gt;print_title_col_to .
*--------------------------------------------------------------------*
* adjust corresponding range
*--------------------------------------------------------------------*
me-&gt;print_title_set_range( ).
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS~CLEAR_PRINT_REPEAT_ROWS">
<source>method ZIF_EXCEL_SHEET_PRINTSETTINGS~CLEAR_PRINT_REPEAT_ROWS.
*--------------------------------------------------------------------*
* adjust internal representation
*--------------------------------------------------------------------*
CLEAR: me-&gt;print_title_row_from,
me-&gt;print_title_row_to .
*--------------------------------------------------------------------*
* adjust corresponding range
*--------------------------------------------------------------------*
me-&gt;print_title_set_range( ).
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS~GET_PRINT_REPEAT_COLUMNS">
<source>method ZIF_EXCEL_SHEET_PRINTSETTINGS~GET_PRINT_REPEAT_COLUMNS.
ev_columns_from = me-&gt;print_title_col_from.
ev_columns_to = me-&gt;print_title_col_to.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS~GET_PRINT_REPEAT_ROWS">
<source>method ZIF_EXCEL_SHEET_PRINTSETTINGS~GET_PRINT_REPEAT_ROWS.
ev_rows_from = me-&gt;print_title_row_from.
ev_rows_to = me-&gt;print_title_row_to.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS~SET_PRINT_REPEAT_COLUMNS">
<source>method ZIF_EXCEL_SHEET_PRINTSETTINGS~SET_PRINT_REPEAT_COLUMNS.
*--------------------------------------------------------------------*
* issue#235 - repeat rows/columns
* - Stefan Schmöcker, 2012-12-02
*--------------------------------------------------------------------*
DATA: lv_col_from_int TYPE i,
lv_col_to_int TYPE i,
lv_errormessage TYPE string.
DATA: lo_range_iterator TYPE REF TO cl_object_collection_iterator,
lo_range TYPE REF TO zcl_excel_range.
lv_col_from_int = zcl_excel_common=&gt;convert_column2int( iv_columns_from ).
lv_col_to_int = zcl_excel_common=&gt;convert_column2int( iv_columns_to ).
*--------------------------------------------------------------------*
* Check if valid range is supplied
*--------------------------------------------------------------------*
IF lv_col_from_int &lt; 1.
lv_errormessage = &apos;Invalid range supplied for print-title repeatable columns&apos;(401).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
IF lv_col_from_int &gt; lv_col_to_int.
lv_errormessage = &apos;Invalid range supplied for print-title repeatable columns&apos;(401).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
*--------------------------------------------------------------------*
* adjust internal representation
*--------------------------------------------------------------------*
me-&gt;print_title_col_from = iv_columns_from.
me-&gt;print_title_col_to = iv_columns_to.
*--------------------------------------------------------------------*
* adjust corresponding range
*--------------------------------------------------------------------*
me-&gt;print_title_set_range( ).
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS~SET_PRINT_REPEAT_ROWS">
<source>method ZIF_EXCEL_SHEET_PRINTSETTINGS~SET_PRINT_REPEAT_ROWS.
*--------------------------------------------------------------------*
* issue#235 - repeat rows/columns
* - Stefan Schmöcker, 2012-12-02
*--------------------------------------------------------------------*
DATA: lv_errormessage TYPE string.
DATA: lo_range_iterator TYPE REF TO cl_object_collection_iterator,
lo_range TYPE REF TO zcl_excel_range.
*--------------------------------------------------------------------*
* Check if valid range is supplied
*--------------------------------------------------------------------*
IF iv_rows_from &lt; 1.
lv_errormessage = &apos;Invalid range supplied for print-title repeatable rowumns&apos;(401).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
IF iv_rows_from &gt; iv_rows_to.
lv_errormessage = &apos;Invalid range supplied for print-title repeatable rowumns&apos;(401).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
*--------------------------------------------------------------------*
* adjust internal representation
*--------------------------------------------------------------------*
me-&gt;print_title_row_from = iv_rows_from.
me-&gt;print_title_row_to = iv_rows_to.
*--------------------------------------------------------------------*
* adjust corresponding range
*--------------------------------------------------------------------*
me-&gt;print_title_set_range( ).
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE">
<source>method ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.
IF zif_excel_sheet_properties~style IS NOT INITIAL.
ep_style = zif_excel_sheet_properties~style.
ELSE.
ep_style = me-&gt;excel-&gt;get_default_style( ).
ENDIF.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE">
<source>method ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.
zif_excel_sheet_properties~show_zeros = zif_excel_sheet_properties=&gt;c_showzero.
zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=&gt;c_below_on.
zif_excel_sheet_properties~summaryright = zif_excel_sheet_properties=&gt;c_right_on.
* inizialize zoomscale values
ZIF_EXCEL_SHEET_PROPERTIES~zoomscale = 100.
ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_normal = 100.
ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_pagelayoutview = 100 .
ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_sheetlayoutview = 100 .
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE">
<source>method ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.
zif_excel_sheet_properties~style = ip_style.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE">
<source>method ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.
me-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_unprotected.
CLEAR me-&gt;zif_excel_sheet_protection~password.
me-&gt;zif_excel_sheet_protection~auto_filter = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~delete_columns = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~delete_rows = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~format_cells = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~format_columns = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~format_rows = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~insert_columns = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~insert_hyperlinks = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~insert_rows = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~objects = zif_excel_sheet_protection=&gt;c_noactive.
* me-&gt;zif_excel_sheet_protection~password = zif_excel_sheet_protection=&gt;c_noactive. &quot;issue #68
me-&gt;zif_excel_sheet_protection~pivot_tables = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~scenarios = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~select_locked_cells = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~select_unlocked_cells = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~sheet = zif_excel_sheet_protection=&gt;c_noactive.
me-&gt;zif_excel_sheet_protection~sort = zif_excel_sheet_protection=&gt;c_noactive.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME">
<source>method ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.
me-&gt;zif_excel_sheet_vba_project~codename = ip_codename.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR">
<source>method ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.
me-&gt;zif_excel_sheet_vba_project~codename_pr = ip_codename_pr.
endmethod.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Add drawing to the sheet" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_DRAWING" SCONAME="IP_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Drawing" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
<source>method ADD_DRAWING.
CASE ip_drawing-&gt;get_type( ).
WHEN zcl_excel_drawing=&gt;type_image.
drawings-&gt;include( ip_drawing ).
WHEN zcl_excel_drawing=&gt;type_chart.
charts-&gt;include( ip_drawing ).
ENDCASE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_NEW_CONDITIONAL_STYLE" VERSION="1" LANGU="E" DESCRIPT="Creates a new conditional formatting" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_NEW_CONDITIONAL_STYLE" SCONAME="EO_CONDITIONAL_STYLE" VERSION="1" LANGU="E" DESCRIPT="Font Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE_CONDITIONAL"/>
<source>method ADD_NEW_CONDITIONAL_STYLE.
CREATE OBJECT eo_conditional_style.
conditional_styles-&gt;add( eo_conditional_style ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_NEW_DATA_VALIDATION" VERSION="1" LANGU="E" DESCRIPT="Creates a new data validation" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_NEW_DATA_VALIDATION" SCONAME="EO_DATA_VALIDATION" VERSION="1" LANGU="E" DESCRIPT="Data validation" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DATA_VALIDATION"/>
<source>method ADD_NEW_DATA_VALIDATION.
CREATE OBJECT eo_data_validation.
data_validations-&gt;add( eo_data_validation ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_NEW_RANGE" VERSION="1" LANGU="E" DESCRIPT="Create a new local range" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="ADD_NEW_RANGE" SCONAME="EO_RANGE" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGE"/>
<source>method ADD_NEW_RANGE.
* Create default blank range
CREATE OBJECT eo_range.
ranges-&gt;add( eo_range ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV" VERSION="1" LANGU="E" DESCRIPT="Set cell value from ALV object" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV" SCONAME="IO_ALV" VERSION="1" LANGU="E" DESCRIPT="ALV List Viewer object ( ALV, SALV, ...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV" SCONAME="IT_TABLE" VERSION="1" LANGU="E" DESCRIPT="Data table" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV" SCONAME="I_TOP" VERSION="1" LANGU="E" DESCRIPT="Top edge of data block" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PARVALUE="1"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV" SCONAME="I_LEFT" VERSION="1" LANGU="E" DESCRIPT="Left-hand edge of data block" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PARVALUE="1"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV" SCONAME="TABLE_STYLE" VERSION="1" LANGU="E" DESCRIPT="Name of the table style" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method BIND_ALV.
data: lo_converter type ref to zcl_excel_converter.
create object lo_converter.
try.
lo_converter-&gt;convert(
exporting
io_alv = io_alv
it_table = it_table
i_row_int = i_top
i_column_int = i_left
i_table = abap_true
i_style_table = table_style
io_worksheet = me
changing
co_excel = excel ).
catch zcx_excel .
endtry.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" VERSION="1" LANGU="E" DESCRIPT="Set cell value from ALV object (OLE2)" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_DOCUMENT_URL" VERSION="1" LANGU="E" DESCRIPT="URL of file, must start with &lt;file://&gt;" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CHAR255" PARVALUE="SPACE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_XLS" VERSION="1" LANGU="E" DESCRIPT="Export to .xls file?" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C" PARVALUE="SPACE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_SAVE_PATH" VERSION="1" LANGU="E" DESCRIPT="Local file path" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="IO_ALV" VERSION="1" LANGU="E" DESCRIPT="ALV List Viewer" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="CL_GUI_ALV_GRID"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="IT_LISTHEADER" VERSION="1" LANGU="E" DESCRIPT="Top-of-page" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SLIS_T_LISTHEADER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_TOP" VERSION="1" LANGU="E" DESCRIPT="Top edge of data block" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PARVALUE="1"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_LEFT" VERSION="1" LANGU="E" DESCRIPT="Left-hand edge of data block" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PARVALUE="1"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_COLUMNS_HEADER" VERSION="1" LANGU="E" DESCRIPT="Export columns header?" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C" PARVALUE="&apos;X&apos;"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_COLUMNS_AUTOFIT" VERSION="1" LANGU="E" DESCRIPT="Autofit columns width?" CMPTYPE="1" MTDTYPE="0" EDITORDER="9 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C" PARVALUE="&apos;X&apos;"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_FORMAT_COL_HEADER" VERSION="1" LANGU="E" DESCRIPT="Column header format" CMPTYPE="1" MTDTYPE="0" EDITORDER="10 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SOI_FORMAT_ITEM" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_FORMAT_SUBTOTAL" VERSION="1" LANGU="E" DESCRIPT="Subtotal lines format" CMPTYPE="1" MTDTYPE="0" EDITORDER="11 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SOI_FORMAT_ITEM" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="I_FORMAT_TOTAL" VERSION="1" LANGU="E" DESCRIPT="Total line format" CMPTYPE="1" MTDTYPE="0" EDITORDER="12 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SOI_FORMAT_ITEM" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="MISS_GUIDE" VERSION="1" LANGU="E" DESCRIPT="Windows guide is missing" MTDTYPE="0" EDITORDER="1 "/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="EX_TRANSFER_KKBLO_ERROR" VERSION="1" LANGU="E" DESCRIPT="Transfer to KKBLO struct error" MTDTYPE="0" EDITORDER="2 "/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="FATAL_ERROR" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="3 "/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="INV_DATA_RANGE" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="4 "/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="DIM_MISMATCH_VKEY" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="5 "/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="DIM_MISMATCH_SEMA" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="6 "/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_ALV_OLE2" SCONAME="ERROR_IN_SEMA" VERSION="1" LANGU="E" DESCRIPT="Un-know columns Ops, columns Typ" MTDTYPE="0" EDITORDER="7 "/>
<source>method BIND_ALV_OLE2.
*--------------------------------------------------------------------*
* Method description:
* Method use to export a CL_GUI_ALV_GRID object to xlsx/xls file
* with list header and characteristics of ALV field catalog such as:
* + Total, group&apos;s subtotal
* + Quantity fields, amount fields (dependent fields)
* + No_out, no_zero, ...
* Technique use in method:
* SAP Desktop Office Integration (DOI)
*--------------------------------------------------------------------*
* Data for session 0: DOI constructor
* ------------------------------------------
data: lo_control type ref to I_OI_CONTAINER_CONTROL.
data: lo_proxy type ref to I_OI_DOCUMENT_PROXY.
data: lo_spreadsheet type ref to I_OI_SPREADSHEET.
data: lo_error type ref to I_OI_ERROR.
data: lc_retcode type SOI_RET_STRING.
data: li_has type i. &quot;Proxy has spreadsheet interface?
data: l_is_closed type i.
* Data for session 1: Get LVC data from ALV object
* ------------------------------------------
data: l_has_activex,
l_doctype_excel_sheet(11) type c.
data: wa_DOC_HANDLE Type CNTL_HANDLE.
* LVC
data: lt_fieldcat_lvc type LVC_T_FCAT.
data: wa_fieldcat_lvc type lvc_s_fcat.
data: lt_sort_lvc type LVC_T_SORT.
data: lt_filter_idx_lvc type LVC_T_FIDX.
data: lt_GROUPLEVELS_LVC type LVC_T_GRPL.
* KKBLO
DATA: LT_FIELDCAT_KKBLO Type KKBLO_T_FIELDCAT.
DATA: LT_SORT_KKBLO Type KKBLO_T_SORTINFO.
DATA: LT_GROUPLEVELS_KKBLO Type KKBLO_T_GROUPLEVELS.
DATA: LT_FILTER_IDX_KKBLO Type KKBLO_T_SFINFO.
data: wa_listheader like line of it_listheader.
* Subtotal
data: lt_collect00 type ref to data.
data: lt_collect01 type ref to data.
data: lt_collect02 type ref to data.
data: lt_collect03 type ref to data.
data: lt_collect04 type ref to data.
data: lt_collect05 type ref to data.
data: lt_collect06 type ref to data.
data: lt_collect07 type ref to data.
data: lt_collect08 type ref to data.
data: lt_collect09 type ref to data.
* data table name
data: l_tabname type kkblo_tabname.
* local object
data: lo_grid type ref to lcl_gui_alv_grid.
* data table get from ALV
data: lt_alv type ref to data.
* total / subtotal data
field-symbols: &lt;f_collect00&gt; type standard table.
field-symbols: &lt;f_collect01&gt; type standard table.
field-symbols: &lt;f_collect02&gt; type standard table.
field-symbols: &lt;f_collect03&gt; type standard table.
field-symbols: &lt;f_collect04&gt; type standard table.
field-symbols: &lt;f_collect05&gt; type standard table.
field-symbols: &lt;f_collect06&gt; type standard table.
field-symbols: &lt;f_collect07&gt; type standard table.
field-symbols: &lt;f_collect08&gt; type standard table.
field-symbols: &lt;f_collect09&gt; type standard table.
* table before append subtotal lines
field-symbols: &lt;f_alv_tab&gt; type standard table.
* data for session 2: sort, filter and calculate total/subtotal
* ------------------------------------------
* table to save index of subotal / total line in excel tanle
* this ideal to control index of subtotal / total line later
* for ex, when get subtotal / total line to format
types: begin of st_subtot_indexs,
index type i,
end of st_subtot_indexs.
data: lt_subtot_indexs type table of st_subtot_indexs.
data: wa_subtot_indexs like line of lt_subtot_indexs.
* data table after append subtotal
data: lt_excel type ref to data.
data: l_tabix type i.
data: l_save_index type i.
* dyn subtotal table name
data: l_collect type string.
* subtotal range, to format subtotal (and total)
data: subranges type soi_range_list.
data: subrangeitem type soi_range_item.
data: l_sub_index type i.
* table after append subtotal lines
field-symbols: &lt;f_excel_tab&gt; type standard table.
field-symbols: &lt;f_excel_line&gt; type any.
* dyn subtotal tables
field-symbols: &lt;f_collect_tab&gt; type standard table.
field-symbols: &lt;f_collect_line&gt; type any.
field-symbols: &lt;f_filter_idx_line&gt; like line of LT_FILTER_IDX_KKBLO.
field-symbols: &lt;f_fieldcat_line&gt; like line of LT_FIELDCAT_KKBLO.
field-symbols: &lt;f_grouplevels_line&gt; like line of LT_GROUPLEVELS_KKBLO.
field-symbols: &lt;f_line&gt; type any.
* Data for session 3: map data to semantic table
* ------------------------------------------
types: begin of st_column_index,
fieldname type kkblo_fieldname,
tabname type kkblo_tabname,
col like sy-index,
end of st_column_index.
* columns index
data: lt_column_index type table of st_column_index.
data: wa_column_index like line of lt_column_index.
* table of dependent field ( currency and quantity unit field)
data: lt_fieldcat_depf type kkblo_t_fieldcat.
data: wa_fieldcat_depf type kkblo_fieldcat.
* XXL interface:
* -XXL: contain exporting columns characteristic
data: lt_sema type table of gxxlt_s initial size 0.
data: wa_sema like line of lt_sema.
* -XXL interface: header
data: lt_hkey type table of gxxlt_h initial size 0.
data: wa_hkey like line of lt_hkey.
* -XXL interface: header keys
data: lt_vkey type table of gxxlt_v initial size 0.
data: wa_vkey like line of lt_vkey.
* Number of H Keys: number of key columns
data: l_n_hrz_keys type i.
* Number of data columns in the list object: non-key columns no
data: l_n_att_cols type i.
* Number of V Keys: number of header row
data: l_n_vrt_keys type i.
* curency to format amount
data: lt_tcurx type table of tcurx.
data: wa_tcurx like line of lt_tcurx.
data: l_def type flag. &quot; currency / quantity flag
data: wa_t006 type t006. &quot; decimal place of unit
data: l_num type i. &quot; table columns number
data: l_typ type c. &quot; table type
data: wa type ref to data.
data: l_int type i.
data: l_counter type i.
field-symbols: &lt;f_excel_column&gt; type any.
field-symbols: &lt;f_fcat_column&gt; type any.
* Data for session 4: write to excel
* ------------------------------------------
data: data_starting_at type i value 1.
data: data_ending_at type i value -1.
data: sema_type type c.
data l_error type ref to c_oi_proxy_error.
data count type i.
data datac type i.
data datareal type i. &quot; exporting column number
data vkeycount type i.
data all type i.
data mit type i value 1. &quot; index of recent row?
data li_col_pos type i value 1. &quot; column position
data li_col_num type i. &quot; table columns number
field-symbols: &lt;line&gt; type any.
field-symbols: &lt;item&gt; type any.
data td type sydes_desc.
data: typ.
data: ranges type soi_range_list.
data: rangeitem type soi_range_item.
data: contents type soi_generic_table.
data: contentsitem type soi_generic_item.
data: semaitem type gxxlt_s.
data: hkeyitem type gxxlt_h.
data: vkeyitem type gxxlt_v.
data: li_commentary_rows type i. &quot;row number of title lines + 1
data: lo_error_w type ref to i_oi_error.
data: l_retcode type soi_ret_string.
data: no_flush type c value &apos;X&apos;.
data: li_head_top type i. &quot;header rows position
* Data for session 5: Save and clode document
* ------------------------------------------
data: li_document_size type i.
data: ls_path type RLGRAP-FILENAME.
* MACRO: Close_document
*-------------------------------------------
DEFINE close_document.
clear: l_is_closed.
IF lo_proxy is not initial.
* check proxy detroyed adi
call method lo_proxy-&gt;is_destroyed
IMPORTING
ret_value = l_is_closed.
* if dun detroyed yet: close -&gt; release proxy
IF l_is_closed is initial.
call method lo_proxy-&gt;close_document
* EXPORTING
* do_save = do_save
IMPORTING
error = lo_error
retcode = lc_retcode.
ENDIF.
call method lo_proxy-&gt;release_document
IMPORTING
error = lo_error
retcode = lC_retcode.
else.
lc_retcode = c_oi_errors=&gt;ret_document_not_open.
ENDIF.
* Detroy control container
IF lo_control is not initial.
CALL METHOD lo_control-&gt;destroy_control.
ENDIF.
clear:
lo_spreadsheet,
lo_proxy,
lo_control.
* free local
clear: l_is_closed.
END-OF-DEFINITION.
* Macro to catch DOI error
*-------------------------------------------
DEFINE error_doi.
if lc_retcode ne c_oi_errors=&gt;ret_ok.
close_document.
call method lo_error-&gt;raise_message
EXPORTING
type = &apos;E&apos;.
clear: lo_error.
endif.
END-OF-DEFINITION.
*--------------------------------------------------------------------*
* SESSION 0: DOI CONSTRUCTOR
*--------------------------------------------------------------------*
* check active windown
call function &apos;GUI_HAS_ACTIVEX&apos;
IMPORTING
return = l_has_activex.
if l_has_activex is initial.
raise MISS_GUIDE.
endif.
* Get Container Object of Screen
call method c_oi_container_control_creator=&gt;get_container_control
IMPORTING
control = lo_control
retcode = lC_retcode.
error_doi.
* Initialize Container control
CALL METHOD lo_control-&gt;init_control
EXPORTING
parent = CL_GUI_CONTAINER=&gt;DEFAULT_SCREEN
r3_application_name = &apos;&apos;
inplace_enabled = &apos;X&apos;
no_flush = &apos;X&apos;
register_on_close_event = &apos;X&apos;
register_on_custom_event = &apos;X&apos;
IMPORTING
error = lO_ERROR
retcode = lc_retcode.
error_doi.
* Get Proxy Document:
* check exist of document proxy, if exist -&gt; close first
if not lo_proxy is initial.
close_document.
endif.
IF i_xls is not initial.
* xls format, doctype = soi_doctype_excel97_sheet
l_doctype_excel_sheet = &apos;Excel.Sheet.8&apos;.
else.
* xlsx format, doctype = soi_doctype_excel_sheet
l_doctype_excel_sheet = &apos;Excel.Sheet&apos;.
ENDIF.
CALL METHOD lo_control-&gt;get_document_proxy
EXPORTING
document_type = l_doctype_excel_sheet
register_container = &apos;X&apos;
IMPORTING
document_proxy = lo_proxy
error = lO_ERROR
retcode = lc_retcode.
error_doi.
IF I_DOCUMENT_URL is initial.
* create new excel document
call method lo_proxy-&gt;create_document
EXPORTING
create_view_data = &apos;X&apos;
open_inplace = &apos;X&apos;
no_flush = &apos;X&apos;
IMPORTING
ERROR = lO_ERROR
retcode = lc_retcode.
error_doi.
else.
* Read excel template for i_DOCUMENT_URL
* this excel template can be store in local or server
CALL METHOD lo_proxy-&gt;open_document
EXPORTING
document_url = i_document_url
open_inplace = &apos;X&apos;
no_flush = &apos;X&apos;
IMPORTING
error = lo_error
retcode = lc_retcode.
error_doi.
endif.
* Check Spreadsheet Interface of Document Proxy
CALL METHOD lo_proxy-&gt;has_spreadsheet_interface
IMPORTING
is_available = li_has
error = lO_ERROR
retcode = lc_retcode.
error_doi.
* create Spreadsheet object
CHECK li_has IS NOT INITIAL.
CALL METHOD lo_proxy-&gt;get_spreadsheet_interface
IMPORTING
sheet_interface = lo_spreadsheet
error = lO_ERROR
retcode = lc_retcode.
error_doi.
*--------------------------------------------------------------------*
* SESSION 1: GET LVC DATA FROM ALV OBJECT
*--------------------------------------------------------------------*
* data table
create object lo_grid
EXPORTING
i_parent = CL_GUI_CONTAINER=&gt;SCREEN0.
call method lo_grid-&gt;get_alv_attributes
EXPORTING
io_grid = io_alv
IMPORTING
Et_table = lt_alv.
assign lt_alv-&gt;* to &lt;f_alv_tab&gt;.
* fieldcat
CALL METHOD iO_alv-&gt;GET_FRONTEND_FIELDCATALOG
IMPORTING
ET_FIELDCATALOG = lt_fieldcat_LVC.
* table name
loop at lt_fieldcat_LVC into wa_fieldcat_lvc
where not tabname is initial.
l_tabname = wa_fieldcat_lvc-tabname.
exit.
endloop.
if sy-subrc ne 0.
l_tabname = &apos;1&apos;.
endif.
clear: wa_fieldcat_lvc.
* sort table
CALL METHOD IO_ALV-&gt;GET_SORT_CRITERIA
IMPORTING
ET_SORT = lt_sort_lvc.
* filter index
CALL METHOD IO_ALV-&gt;GET_FILTERED_ENTRIES
IMPORTING
ET_FILTERED_ENTRIES = lt_filter_idx_lvc.
* group level + subtotal
CALL METHOD IO_ALV-&gt;GET_SUBTOTALS
IMPORTING
EP_COLLECT00 = lt_collect00
EP_COLLECT01 = lt_collect01
EP_COLLECT02 = lt_collect02
EP_COLLECT03 = lt_collect03
EP_COLLECT04 = lt_collect04
EP_COLLECT05 = lt_collect05
EP_COLLECT06 = lt_collect06
EP_COLLECT07 = lt_collect07
EP_COLLECT08 = lt_collect08
EP_COLLECT09 = lt_collect09
ET_GROUPLEVELS = lt_GROUPLEVELS_LVC.
assign lt_collect00-&gt;* to &lt;f_collect00&gt;.
assign lt_collect01-&gt;* to &lt;f_collect01&gt;.
assign lt_collect02-&gt;* to &lt;f_collect02&gt;.
assign lt_collect03-&gt;* to &lt;f_collect03&gt;.
assign lt_collect04-&gt;* to &lt;f_collect04&gt;.
assign lt_collect05-&gt;* to &lt;f_collect05&gt;.
assign lt_collect06-&gt;* to &lt;f_collect06&gt;.
assign lt_collect07-&gt;* to &lt;f_collect07&gt;.
assign lt_collect08-&gt;* to &lt;f_collect08&gt;.
assign lt_collect09-&gt;* to &lt;f_collect09&gt;.
* transfer to KKBLO struct
CALL FUNCTION &apos;LVC_TRANSFER_TO_KKBLO&apos;
EXPORTING
IT_FIELDCAT_LVC = lt_fieldcat_lvc
IT_SORT_LVC = lt_sort_lvc
IT_FILTER_INDEX_LVC = lt_filter_idx_lvc
IT_GROUPLEVELS_LVC = lt_grouplevels_lvc
IMPORTING
ET_FIELDCAT_KKBLO = lt_fieldcat_kkblo
ET_SORT_KKBLO = lt_sort_kkblo
ET_FILTERED_ENTRIES_KKBLO = lt_filter_idx_kkblo
ET_GROUPLEVELS_KKBLO = lt_grouplevels_kkblo
TABLES
IT_DATA = &lt;f_alv_tab&gt;
EXCEPTIONS
IT_DATA_MISSING = 1
IT_FIELDCAT_LVC_MISSING = 2
OTHERS = 3.
IF SY-SUBRC &lt;&gt; 0.
raise ex_transfer_KKBLO_ERROR.
ENDIF.
clear:
wa_fieldcat_lvc,
lt_fieldcat_lvc,
lt_sort_lvc,
lt_filter_idx_lvc,
lt_GROUPLEVELS_LVC.
clear:
lo_grid.
*--------------------------------------------------------------------*
* SESSION 2: SORT, FILTER AND CALCULATE TOTAL / SUBTOTAL
*--------------------------------------------------------------------*
* append subtotal &amp; total line
create data lt_excel like &lt;f_ALV_TAB&gt;.
assign lt_excel-&gt;* to &lt;f_excel_tab&gt;.
loop at &lt;f_alv_tab&gt; assigning &lt;f_line&gt;.
l_save_index = sy-tabix.
* filter base on filter index table
read table LT_FILTER_IDX_KKBLO assigning &lt;f_filter_idx_line&gt;
with key index = l_save_index
binary search.
if sy-subrc ne 0.
append &lt;f_line&gt; to &lt;f_excel_tab&gt;.
endif.
* append subtotal lines
read table LT_GROUPLEVELS_KKBLO assigning &lt;f_grouplevels_line&gt;
with key index_to = l_save_index
binary search.
if sy-subrc = 0.
l_tabix = sy-tabix.
do.
if &lt;f_grouplevels_line&gt;-subtot eq &apos;X&apos; and
&lt;f_grouplevels_line&gt;-hide_level is initial and
&lt;f_grouplevels_line&gt;-cindex_from ne 0.
* dynamic append subtotal line to excel table base on grouplevel table
* ex &lt;f_GROUPLEVELS_line&gt;-level = 1
* then &lt;f_collect_tab&gt; = &apos;&lt;F_COLLECT01&gt;&apos;
l_collect = &lt;f_grouplevels_line&gt;-level.
condense l_collect.
concatenate &apos;&lt;F_COLLECT0&apos;
l_collect &apos;&gt;&apos;
* &apos;-&gt;*&apos;
into l_collect.
assign (l_collect) to &lt;f_collect_tab&gt;.
* incase there&apos;re more than 1 total line of group, at the same level
* for example: subtotal of multi currency
LOOP AT &lt;f_collect_tab&gt; assigning &lt;f_collect_line&gt;.
IF sy-tabix between &lt;f_grouplevels_line&gt;-cindex_from
and &lt;f_grouplevels_line&gt;-cindex_to.
append &lt;f_collect_line&gt; to &lt;f_excel_tab&gt;.
* save subtotal lines index
wa_subtot_indexs-index = sy-tabix.
append wa_subtot_indexs to lt_subtot_indexs.
* append sub total ranges table for format later
add 1 to l_sub_index.
subrangeitem-name = l_sub_index.
condense subrangeitem-name.
concatenate &apos;SUBTOT&apos;
subrangeitem-name
into subrangeitem-name.
subrangeitem-rows = wa_subtot_indexs-index.
subrangeitem-columns = 1. &quot; start col
append subrangeitem to subranges.
clear: subrangeitem.
ENDIF.
ENDLOOP.
unassign: &lt;f_collect_tab&gt;.
unassign: &lt;f_collect_line&gt;.
clear: l_collect.
endif.
* check next subtotal level of group
unassign: &lt;f_grouplevels_line&gt;.
add 1 to l_tabix.
read table LT_GROUPLEVELS_KKBLO assigning &lt;f_grouplevels_line&gt;
index l_tabix.
if sy-subrc ne 0
or &lt;f_grouplevels_line&gt;-index_to ne l_save_index.
exit.
endif.
unassign:
&lt;f_collect_tab&gt;,
&lt;f_collect_line&gt;.
enddo.
endif.
clear:
l_tabix,
l_save_index.
unassign:
&lt;f_filter_idx_line&gt;,
&lt;f_grouplevels_line&gt;.
endloop.
* free local data
unassign:
&lt;f_line&gt;,
&lt;f_collect_tab&gt;,
&lt;f_collect_line&gt;,
&lt;f_fieldcat_line&gt;.
* append grand total line
IF &lt;f_collect00&gt; is assigned.
assign &lt;f_collect00&gt; to &lt;f_collect_tab&gt;.
if &lt;f_collect_tab&gt; is not initial.
LOOP AT &lt;f_collect_tab&gt; assigning &lt;f_collect_line&gt;.
append &lt;f_collect_line&gt; to &lt;f_excel_tab&gt;.
* save total line index
wa_subtot_indexs-index = sy-tabix.
append wa_subtot_indexs to lt_subtot_indexs.
* append grand total range (to format)
add 1 to l_sub_index.
subrangeitem-name = l_sub_index.
condense subrangeitem-name.
concatenate &apos;TOTAL&apos;
subrangeitem-name
into subrangeitem-name.
subrangeitem-rows = wa_subtot_indexs-index.
subrangeitem-columns = 1. &quot; start col
append subrangeitem to subranges.
ENDLOOP.
endif.
ENDIF.
clear:
subrangeitem,
LT_SORT_KKBLO,
&lt;f_collect00&gt;,
&lt;f_collect01&gt;,
&lt;f_collect02&gt;,
&lt;f_collect03&gt;,
&lt;f_collect04&gt;,
&lt;f_collect05&gt;,
&lt;f_collect06&gt;,
&lt;f_collect07&gt;,
&lt;f_collect08&gt;,
&lt;f_collect09&gt;.
unassign:
&lt;f_collect00&gt;,
&lt;f_collect01&gt;,
&lt;f_collect02&gt;,
&lt;f_collect03&gt;,
&lt;f_collect04&gt;,
&lt;f_collect05&gt;,
&lt;f_collect06&gt;,
&lt;f_collect07&gt;,
&lt;f_collect08&gt;,
&lt;f_collect09&gt;,
&lt;f_collect_tab&gt;,
&lt;f_collect_line&gt;.
*--------------------------------------------------------------------*
* SESSION 3: MAP DATA TO SEMANTIC TABLE
*--------------------------------------------------------------------*
* get dependent field field: currency and quantity
create data wa like line of &lt;f_excel_tab&gt;.
assign wa-&gt;* to &lt;f_excel_line&gt;.
describe field &lt;f_excel_line&gt; type l_typ components l_num.
do l_num times.
l_save_index = sy-index.
assign component l_save_index of structure &lt;f_excel_line&gt;
to &lt;f_excel_column&gt;.
if sy-subrc ne 0.
message e059(0k) with &apos;FATAL ERROR&apos; raising fatal_error.
endif.
loop at LT_FIELDCAT_KKBLO assigning &lt;f_fieldcat_line&gt;
where tabname = l_tabname.
assign component &lt;f_fieldcat_line&gt;-fieldname
of structure &lt;f_excel_line&gt; to &lt;f_fcat_column&gt;.
describe distance between &lt;f_excel_column&gt; and &lt;f_fcat_column&gt;
into l_int in byte mode.
* append column index
* this columns index is of table, not fieldcat
if l_int = 0.
wa_column_index-fieldname = &lt;f_fieldcat_line&gt;-fieldname.
wa_column_index-tabname = &lt;f_fieldcat_line&gt;-tabname.
wa_column_index-col = l_save_index.
append wa_column_index to lt_column_index.
endif.
* append dependent fields (currency and quantity unit)
if &lt;f_fieldcat_line&gt;-cfieldname is not initial.
clear wa_fieldcat_depf.
wa_fieldcat_depf-fieldname = &lt;f_fieldcat_line&gt;-cfieldname.
wa_fieldcat_depf-tabname = &lt;f_fieldcat_line&gt;-ctabname.
collect wa_fieldcat_depf into lt_fieldcat_depf.
endif.
if &lt;f_fieldcat_line&gt;-qfieldname is not initial.
clear wa_fieldcat_depf.
wa_fieldcat_depf-fieldname = &lt;f_fieldcat_line&gt;-qfieldname.
wa_fieldcat_depf-tabname = &lt;f_fieldcat_line&gt;-qtabname.
collect wa_fieldcat_depf into lt_fieldcat_depf.
endif.
* rewrite field data type
if &lt;f_fieldcat_line&gt;-inttype = &apos;X&apos;
and &lt;f_fieldcat_line&gt;-datatype(3) = &apos;INT&apos;.
&lt;f_fieldcat_line&gt;-inttype = &apos;I&apos;.
endif.
endloop.
clear: l_save_index.
unassign: &lt;f_fieldcat_line&gt;.
enddo.
* build semantic tables
l_n_hrz_keys = 1.
* Get keyfigures
loop at LT_FIELDCAT_KKBLO assigning &lt;f_fieldcat_line&gt;
where tabname = l_tabname
and tech ne &apos;X&apos;
and no_out ne &apos;X&apos;.
clear wa_sema.
clear wa_hkey.
* Units belong to keyfigures -&gt; display as str
read table lt_fieldcat_depf into wa_fieldcat_depf with key
fieldname = &lt;f_fieldcat_line&gt;-fieldname
tabname = &lt;f_fieldcat_line&gt;-tabname.
if sy-subrc = 0.
wa_sema-col_typ = &apos;STR&apos;.
wa_sema-col_ops = &apos;DFT&apos;.
* Keyfigures
else.
case &lt;f_fieldcat_line&gt;-datatype.
when &apos;QUAN&apos;.
wa_sema-col_typ = &apos;N03&apos;.
if &lt;f_fieldcat_line&gt;-no_sum ne &apos;X&apos;.
wa_sema-col_ops = &apos;ADD&apos;.
else.
wa_sema-col_ops = &apos;NOP&apos;. &quot; no dependent field
endif.
when &apos;DATS&apos;.
wa_sema-col_typ = &apos;DAT&apos;.
wa_sema-col_ops = &apos;NOP&apos;.
when &apos;CHAR&apos; OR &apos;UNIT&apos; OR &apos;CUKY&apos;. &quot; Added fieldformats UNIT and CUKY - dd. 26-10-2012 Wouter Heuvelmans
wa_sema-col_typ = &apos;STR&apos;.
wa_sema-col_ops = &apos;DFT&apos;. &quot; dependent field
* incase numeric, ex &apos;00120&apos; -&gt; display as &apos;12&apos;
when &apos;NUMC&apos;.
wa_sema-col_typ = &apos;STR&apos;.
wa_sema-col_ops = &apos;DFT&apos;.
when others.
wa_sema-col_typ = &apos;NUM&apos;.
if &lt;f_fieldcat_line&gt;-no_sum ne &apos;X&apos;.
wa_sema-col_ops = &apos;ADD&apos;.
else.
wa_sema-col_ops = &apos;NOP&apos;.
endif.
endcase.
endif.
l_counter = l_counter + 1.
l_n_att_cols = l_n_att_cols + 1.
wa_sema-col_no = l_counter.
read table lt_column_index into wa_column_index with key
fieldname = &lt;f_fieldcat_line&gt;-fieldname
tabname = &lt;f_fieldcat_line&gt;-tabname.
if sy-subrc = 0.
wa_sema-col_src = wa_column_index-col.
else.
raise fatal_error.
endif.
* columns index of ref currency field in table
if not &lt;f_fieldcat_line&gt;-cfieldname is initial.
read table lt_column_index into wa_column_index with key
fieldname = &lt;f_fieldcat_line&gt;-cfieldname
tabname = &lt;f_fieldcat_line&gt;-ctabname.
if sy-subrc = 0.
wa_sema-col_cur = wa_column_index-col.
endif.
* quantities fields
* treat as currency when display on excel
elseif not &lt;f_fieldcat_line&gt;-qfieldname is initial.
read table lt_column_index into wa_column_index with key
fieldname = &lt;f_fieldcat_line&gt;-qfieldname
tabname = &lt;f_fieldcat_line&gt;-qtabname.
if sy-subrc = 0.
wa_sema-col_cur = wa_column_index-col.
endif.
endif.
* Treat of fixed currency in the fieldcatalog for column
data: l_num_help(2) type n.
if not &lt;f_fieldcat_line&gt;-currency is initial.
select * from tcurx into table lt_tcurx.
sort lt_tcurx.
read table lt_tcurx into wa_tcurx
with key currkey = &lt;f_fieldcat_line&gt;-currency.
if sy-subrc = 0.
l_num_help = wa_tcurx-currdec.
concatenate &apos;N&apos; l_num_help into wa_sema-col_typ.
wa_sema-col_cur = sy-tabix * ( -1 ).
endif.
endif.
wa_hkey-col_no = l_n_att_cols.
wa_hkey-row_no = l_n_hrz_keys.
wa_hkey-col_name = &lt;f_fieldcat_line&gt;-reptext.
append wa_hkey to lt_hkey.
append wa_sema to lt_sema.
endloop.
* free local data
clear:
lt_column_index,
wa_column_index,
lt_fieldcat_depf,
wa_fieldcat_depf,
lt_tcurx,
wa_tcurx,
l_num,
l_typ,
wa,
l_int,
l_counter.
unassign:
&lt;f_fieldcat_line&gt;,
&lt;f_excel_line&gt;,
&lt;f_excel_column&gt;,
&lt;f_fcat_column&gt;.
*--------------------------------------------------------------------*
* SESSION 4: WRITE TO EXCEL
*--------------------------------------------------------------------*
clear: wa_tcurx.
refresh: lt_tcurx.
* if spreadsheet dun have proxy yet
if li_has is initial.
l_retcode = c_oi_errors=&gt;ret_interface_not_supported.
call method c_oi_errors=&gt;create_error_for_retcode
EXPORTING
retcode = l_retcode
no_flush = no_flush
IMPORTING
error = lo_error_w.
exit.
endif.
create object l_error
EXPORTING
object_name = &apos;OLE_DOCUMENT_PROXY&apos;
method_name = &apos;get_ranges_names&apos;.
call method c_oi_errors=&gt;add_error
EXPORTING
error = l_error.
describe table lt_sema lines datareal.
describe table &lt;f_excel_tab&gt; lines datac.
describe table lt_vkey lines vkeycount.
if datac = 0.
raise inv_data_range.
endif.
if vkeycount ne l_n_vrt_keys.
raise dim_mismatch_vkey.
endif.
all = l_n_vrt_keys + l_n_att_cols.
if datareal ne all.
raise dim_mismatch_sema.
endif.
data: decimal type c.
* get decimal separator format (&apos;.&apos;, &apos;,&apos;, ...) in Office config
call method lo_proxy-&gt;get_application_property
EXPORTING
property_name = &apos;INTERNATIONAL&apos;
subproperty_name = &apos;DECIMAL_SEPARATOR&apos;
CHANGING
retvalue = decimal.
data: wa_usr type usr01.
select * from usr01 into wa_usr where bname = sy-uname.
endselect.
data: comma_elim(4) type c.
data: help6 type i.
field-symbols &lt;g&gt; type any.
data search_item(4) value &apos; #&apos;.
concatenate &apos;,&apos; decimal &apos;.&apos; decimal into comma_elim.
data help type i. &quot; table (with subtotal) line number
help = datac.
data: rowmax type i value 1. &quot; header row number
data: columnmax type i value 0. &quot; header columns number
loop at lt_hkey into hkeyitem.
if hkeyitem-col_no &gt; columnmax.
columnmax = hkeyitem-col_no.
endif.
if hkeyitem-row_no &gt; rowmax.
rowmax = hkeyitem-row_no.
endif.
endloop.
data: hkeycolumns type i. &quot; header columns no
hkeycolumns = columnmax.
if hkeycolumns &lt; l_n_att_cols.
hkeycolumns = l_n_att_cols.
endif.
columnmax = 0.
loop at lt_vkey into vkeyitem.
if vkeyitem-col_no &gt; columnmax.
columnmax = vkeyitem-col_no.
endif.
endloop.
data overflow type i value 1.
data testname(10) type c.
data temp2 type i. &quot; 1st item row position in excel
data realmit type i value 1.
data realoverflow type i value 1. &quot; row index in content
call method lo_spreadsheet-&gt;screen_update
EXPORTING
updating = &apos;&apos;.
call method lo_spreadsheet-&gt;load_lib.
data: str(40) type c. &quot; range names of columns range (w/o col header)
data: rows type i. &quot; row postion of 1st item line in ecxel
* calculate row position of data table
describe table iT_LISTHEADER lines li_commentary_rows.
* if grid had title, add 1 empy line between title and table
if li_commentary_rows ne 0.
add 1 to li_commentary_rows.
endif.
* add top position of block data
li_commentary_rows = li_commentary_rows + i_top - 1.
* write header (commentary rows)
data: li_commentary_row_index type i value 1.
data: li_content_index type i value 1.
data: ls_index(10) type c.
data ls_commentary_range(40) type c value &apos;TITLE&apos;.
data: li_font_bold type i.
data: li_font_italic type i.
data: li_font_size type i.
loop at iT_LISTHEADER into wa_listheader.
li_commentary_row_index = i_top + li_content_index - 1.
ls_index = li_content_index.
condense ls_index.
concatenate ls_commentary_range(5) ls_index
into ls_commentary_range.
condense ls_commentary_range.
* insert title range
call method lo_spreadsheet-&gt;insert_range_dim
EXPORTING
name = ls_commentary_range
top = li_commentary_row_index
left = i_left
rows = 1
columns = 1
no_flush = no_flush.
* format range
case wa_listheader-typ.
when &apos;H&apos;. &quot;title
li_font_size = 16.
li_font_bold = 1.
li_font_italic = -1.
when &apos;S&apos;. &quot;subtile
li_font_size = -1.
li_font_bold = 1.
li_font_italic = -1.
when others. &quot;&apos;A&apos; comment
li_font_size = -1.
li_font_bold = -1.
li_font_italic = 1.
endcase.
call method lo_spreadsheet-&gt;set_font
EXPORTING
rangename = ls_commentary_range
family = &apos;&apos;
size = li_font_size
bold = li_font_bold
italic = li_font_italic
align = 0
no_flush = no_flush.
* title: range content
rangeitem-name = ls_commentary_range.
rangeitem-columns = 1.
rangeitem-rows = 1.
append rangeitem to ranges.
contentsitem-row = li_content_index.
contentsitem-column = 1.
concatenate wa_listheader-key
wa_listheader-info
into contentsitem-value
separated by space.
condense contentsitem-value.
append contentsitem to contents.
add 1 to li_content_index.
clear:
rangeitem,
contentsitem,
ls_index.
endloop.
* set range data title
call method lo_spreadsheet-&gt;set_ranges_data
EXPORTING
ranges = ranges
contents = contents
no_flush = no_flush.
refresh:
ranges,
contents.
rows = rowmax + li_commentary_rows + 1.
all = wa_usr-datfm.
all = all + 3.
loop at lt_sema into semaitem.
if semaitem-col_typ = &apos;DAT&apos; or semaitem-col_typ = &apos;MON&apos; or
semaitem-col_typ = &apos;N00&apos; or semaitem-col_typ = &apos;N01&apos; or
semaitem-col_typ = &apos;N01&apos; or semaitem-col_typ = &apos;N02&apos; or
semaitem-col_typ = &apos;N03&apos; or semaitem-col_typ = &apos;PCT&apos; or
semaitem-col_typ = &apos;STR&apos; or semaitem-col_typ = &apos;NUM&apos;.
clear str.
str = semaitem-col_no.
condense str.
concatenate &apos;DATA&apos; str into str.
mit = semaitem-col_no.
li_col_pos = semaitem-col_no + i_left - 1.
* range from data1 to data(n), for each columns of table
call method lo_spreadsheet-&gt;insert_range_dim
EXPORTING
name = str
top = rows
left = li_col_pos
rows = help
columns = 1
no_flush = no_flush.
data dec type i value -1.
data typeinfo type sydes_typeinfo.
loop at &lt;f_excel_tab&gt; assigning &lt;line&gt;.
assign component semaitem-col_no of structure &lt;line&gt; to &lt;item&gt;.
describe field &lt;item&gt; into td.
read table td-types index 1 into typeinfo.
if typeinfo-type = &apos;P&apos;.
dec = typeinfo-decimals.
elseif typeinfo-type = &apos;I&apos;.
dec = 0.
endif.
describe field &lt;line&gt; type typ components count.
mit = 1.
do count times.
if mit = semaitem-col_src.
assign component sy-index of structure &lt;line&gt; to &lt;item&gt;.
describe field &lt;item&gt; into td.
read table td-types index 1 into typeinfo.
if typeinfo-type = &apos;P&apos;.
dec = typeinfo-decimals.
endif.
exit.
endif.
mit = mit + 1.
enddo.
exit.
endloop.
* format for each columns of table (w/o columns headers)
if semaitem-col_typ = &apos;DAT&apos;.
if semaitem-col_no &gt; vkeycount.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = all
no_flush = no_flush.
else.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 0
no_flush = no_flush.
endif.
elseif semaitem-col_typ = &apos;STR&apos;.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 0
no_flush = no_flush.
elseif semaitem-col_typ = &apos;MON&apos;.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 10
no_flush = no_flush.
elseif semaitem-col_typ = &apos;N00&apos;.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 1
decimals = 0
no_flush = no_flush.
elseif semaitem-col_typ = &apos;N01&apos;.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 1
decimals = 1
no_flush = no_flush.
elseif semaitem-col_typ = &apos;N02&apos;.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 1
decimals = 2
no_flush = no_flush.
elseif semaitem-col_typ = &apos;N03&apos;.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 1
decimals = 3
no_flush = no_flush.
elseif semaitem-col_typ = &apos;N04&apos;.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 1
decimals = 4
no_flush = no_flush.
elseif semaitem-col_typ = &apos;NUM&apos;.
if dec eq -1.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 1
decimals = 2
no_flush = no_flush.
else.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 1
decimals = dec
no_flush = no_flush.
endif.
elseif semaitem-col_typ = &apos;PCT&apos;.
call method lo_spreadsheet-&gt;set_format
EXPORTING
rangename = str
currency = &apos;&apos;
typ = 3
decimals = 0
no_flush = no_flush.
endif.
endif.
endloop.
* get item contents for set_range_data method
* get currency cell also
mit = 1.
data: currcells type soi_cell_table.
data: curritem type soi_cell_item.
curritem-rows = 1.
curritem-columns = 1.
curritem-front = -1.
curritem-back = -1.
curritem-font = &apos;&apos;.
curritem-size = -1.
curritem-bold = -1.
curritem-italic = -1.
curritem-align = -1.
curritem-frametyp = -1.
curritem-framecolor = -1.
curritem-currency = &apos;&apos;.
curritem-number = 1.
curritem-input = -1.
data: conv_exit(10) type c.
data: const type i.
* Change for Correction request
* Initial 10000 lines are missing in Excel Export
* if there are only 2 columns in exported List object.
if datareal gt 2.
const = 20000 / datareal.
else.
const = 20000 / ( datareal + 2 ).
endif.
data: lines type i.
data: innerlines type i.
data: counter type i.
data: curritem2 like curritem.
data: curritem3 like curritem.
data: length type i.
data: found.
* append content table (for method set_range_content)
loop at &lt;f_excel_tab&gt; assigning &lt;line&gt;.
* save line index to compare with lt_subtot_indexs,
* to discover line is a subtotal / totale line or not
* ex use to set &apos;dun display zero in subtotal / total line&apos;
l_save_index = sy-tabix.
do datareal times.
read table lt_sema into semaitem with key col_no = sy-index.
if semaitem-col_src ne 0.
assign component semaitem-col_src
of structure &lt;line&gt; to &lt;item&gt;.
else.
assign component sy-index
of structure &lt;line&gt; to &lt;item&gt;.
endif.
contentsitem-row = realoverflow.
if sy-subrc = 0.
move semaitem-col_ops to search_item(3).
search &apos;ADD#CNT#MIN#MAX#AVG#NOP#DFT#&apos;
for search_item.
if sy-subrc ne 0.
raise error_in_sema.
endif.
move semaitem-col_typ to search_item(3).
search &apos;NUM#N00#N01#N02#N03#N04#PCT#DAT#MON#STR#&apos;
for search_item.
if sy-subrc ne 0.
raise error_in_sema.
endif.
contentsitem-column = sy-index.
if semaitem-col_typ eq &apos;DAT&apos; or semaitem-col_typ eq &apos;MON&apos;.
if semaitem-col_no &gt; vkeycount.
&quot; Hinweis 512418
&quot; EXCEL bezieht Datumsangaben
&quot; auf den 31.12.1899, behandelt
&quot; aber 1900 als ein Schaltjahr
&quot; d.h. ab 1.3.1900 korrekt
&quot; 1.3.1900 als Zahl = 61
data: genesis type d value &apos;18991230&apos;.
data: number_of_days type p.
* change for date in char format &amp; sema_type = X
data: temp_date type d.
if not &lt;item&gt; is initial and not &lt;item&gt; co &apos; &apos; and not
&lt;item&gt; co &apos;0&apos;.
* change for date in char format &amp; sema_type = X starts
if sema_type = &apos;X&apos;.
describe field &lt;item&gt; type typ.
if typ = &apos;C&apos;.
temp_date = &lt;item&gt;.
number_of_days = temp_date - genesis.
else.
number_of_days = &lt;item&gt; - genesis.
endif.
else.
number_of_days = &lt;item&gt; - genesis.
endif.
* change for date in char format &amp; sema_type = X ends
if number_of_days &lt; 61.
number_of_days = number_of_days - 1.
endif.
set country &apos;DE&apos;.
write number_of_days to contentsitem-value
no-grouping
left-justified.
set country space.
translate contentsitem-value using comma_elim.
else.
clear contentsitem-value.
endif.
else.
move &lt;item&gt; to contentsitem-value.
endif.
elseif semaitem-col_typ eq &apos;NUM&apos; or
semaitem-col_typ eq &apos;N00&apos; or
semaitem-col_typ eq &apos;N01&apos; or
semaitem-col_typ eq &apos;N02&apos; or
semaitem-col_typ eq &apos;N03&apos; or
semaitem-col_typ eq &apos;N04&apos; or
semaitem-col_typ eq &apos;PCT&apos;.
set country &apos;DE&apos;.
describe field &lt;item&gt; type typ.
if semaitem-col_cur is initial.
if typ ne &apos;F&apos;.
write &lt;item&gt; to contentsitem-value no-grouping
no-sign decimals 14.
else.
write &lt;item&gt; to contentsitem-value no-grouping
no-sign.
endif.
else.
* Treat of fixed curreny for column &gt;&gt;Y9CK007319
if semaitem-col_cur &lt; 0.
semaitem-col_cur = semaitem-col_cur * ( -1 ).
select * from tcurx into table lt_tcurx.
sort lt_tcurx.
read table lt_tcurx into
wa_tcurx index semaitem-col_cur.
if sy-subrc = 0.
if typ ne &apos;F&apos;.
write &lt;item&gt; to contentsitem-value no-grouping
currency wa_tcurx-currkey no-sign decimals 14.
else.
write &lt;item&gt; to contentsitem-value no-grouping
currency wa_tcurx-currkey no-sign.
endif.
endif.
else.
assign component semaitem-col_cur
of structure &lt;line&gt; to &lt;g&gt;.
* mit = index of recent row
curritem-top = rowmax + mit + li_commentary_rows.
li_col_pos = sy-index + i_left - 1.
curritem-left = li_col_pos.
* if filed is quantity field (qfieldname ne space)
* or amount field (cfieldname ne space), then format decimal place
* corresponding with config
clear: l_def.
read table LT_FIELDCAT_KKBLO assigning &lt;f_fieldcat_line&gt;
with key tabname = l_tabname
tech = space
no_out = space
col_pos = semaitem-col_no.
IF sy-subrc = 0.
IF &lt;f_fieldcat_line&gt;-cfieldname is not initial.
l_def = &apos;C&apos;.
else.&quot;if &lt;f_fieldcat_line&gt;-qfieldname is not initial.
l_def = &apos;Q&apos;.
ENDIF.
ENDIF.
* if field is amount field
* exporting of amount field base on currency decimal table: TCURX
IF l_def = &apos;C&apos;. &quot;field is amount field
select single * from tcurx into wa_tcurx
where currkey = &lt;g&gt;.
* if amount ref to un-know currency -&gt; default decimal = 2
if sy-subrc eq 0.
curritem-decimals = wa_tcurx-currdec.
else.
curritem-decimals = 2.
endif.
append curritem to currcells.
if typ ne &apos;F&apos;.
write &lt;item&gt; to contentsitem-value
currency &lt;g&gt;
no-sign no-grouping.
else.
write &lt;item&gt; to contentsitem-value
decimals 14 currency &lt;g&gt;
no-sign no-grouping.
endif.
* if field is quantity field
* exporting of quantity field base on quantity decimal table: T006
else.&quot;if l_def = &apos;Q&apos;. &quot; field is quantity field
clear: wa_t006.
select single * from t006 into wa_t006
where MSEHI = &lt;g&gt;.
* if quantity ref to un-know unit-&gt; default decimal = 2
if sy-subrc eq 0.
curritem-decimals = wa_t006-decan.
else.
curritem-decimals = 2.
endif.
append curritem to currcells.
write &lt;item&gt; to contentsitem-value
unit &lt;g&gt;
no-sign no-grouping.
condense contentsitem-value.
ENDIF.
endif. &quot;Y9CK007319
endif.
condense contentsitem-value.
* add function fieldcat-no zero display
loop at LT_FIELDCAT_KKBLO assigning &lt;f_fieldcat_line&gt;
where tabname = l_tabname
and tech ne &apos;X&apos;
and no_out ne &apos;X&apos;.
if &lt;f_fieldcat_line&gt;-col_pos = semaitem-col_no.
if &lt;f_fieldcat_line&gt;-no_zero = &apos;X&apos;.
if &lt;item&gt; = &apos;0&apos;.
clear: contentsitem-value.
endif.
* dun display zero in total/subtotal line too
else.
clear: wa_subtot_indexs.
read table lt_subtot_indexs into wa_subtot_indexs
with key index = l_save_index.
IF sy-subrc = 0.
if &lt;item&gt; = &apos;0&apos;.
clear: contentsitem-value.
endif.
ENDIF.
endif.
endif.
endloop.
unassign: &lt;f_fieldcat_line&gt;.
if &lt;item&gt; lt 0.
search contentsitem-value for &apos;E&apos;.
if sy-fdpos eq 0.
* bring negative sign to front of amount
translate contentsitem-value using &apos;- &apos;.
condense contentsitem-value no-gaps.
concatenate &apos;-&apos; contentsitem-value
into contentsitem-value.
else.
concatenate &apos;-&apos; contentsitem-value
into contentsitem-value.
endif.
endif.
set country space.
* Hier wird nur die korrekte Kommaseparatierung gemacht, wenn die
* Zeichen einer
* Zahl enthalten sind. Das ist f#ƒÂ#r Timestamps, die auch &quot;:&quot; enthalten.
* F#ƒÂ#r die
* darf keine Kommaseparierung stattfinden.
* Changing for correction request - Y6BK041073
if contentsitem-value co &apos;0123456789.,-+E &apos;.
translate contentsitem-value using comma_elim.
endif.
else.
clear contentsitem-value.
* if type is not numeric -&gt; dun display with zero
write &lt;item&gt; to contentsitem-value no-zero.
shift contentsitem-value left deleting leading space.
endif.
append contentsitem to contents.
endif.
enddo.
realmit = realmit + 1.
realoverflow = realoverflow + 1.
mit = mit + 1.
* overflow = current row index in content table
overflow = overflow + 1.
endloop.
unassign: &lt;f_fieldcat_line&gt;.
* set item range for set_range_data method
testname = mit / const.
condense testname.
concatenate &apos;TEST&apos; testname into testname.
realoverflow = realoverflow - 1.
realmit = realmit - 1.
help = realoverflow.
rangeitem-name = testname.
rangeitem-columns = datareal.
rangeitem-rows = help.
append rangeitem to ranges.
* insert item range dim
temp2 = rowmax + 1 + li_commentary_rows + realmit - realoverflow.
* items data
call method lo_spreadsheet-&gt;insert_range_dim
EXPORTING
name = testname
top = temp2
left = i_left
rows = help
columns = datareal
no_flush = no_flush.
* get columns header contents for set_range_data method
* export columns header only if no columns header option = space
data: rowcount type i.
data: columncount type i.
if i_columns_header = &apos;X&apos;.
* append columns header to contents: hkey
rowcount = 1.
do rowmax times.
columncount = 1.
do hkeycolumns times.
loop at lt_hkey into hkeyitem where col_no = columncount
and row_no = rowcount.
endloop.
if sy-subrc = 0.
str = hkeyitem-col_name.
contentsitem-value = hkeyitem-col_name.
else.
contentsitem-value = str.
endif.
contentsitem-column = columncount.
contentsitem-row = rowcount.
append contentsitem to contents.
columncount = columncount + 1.
enddo.
rowcount = rowcount + 1.
enddo.
* incase columns header in multiline
data: rowmaxtemp type i.
if rowmax &gt; 1.
rowmaxtemp = rowmax - 1.
rowcount = 1.
do rowmaxtemp times.
columncount = 1.
do columnmax times.
contentsitem-column = columncount.
contentsitem-row = rowcount.
contentsitem-value = &apos;&apos;.
append contentsitem to contents.
columncount = columncount + 1.
enddo.
rowcount = rowcount + 1.
enddo.
endif.
* append columns header to contents: vkey
columncount = 1.
do columnmax times.
loop at lt_vkey into vkeyitem where col_no = columncount.
endloop.
contentsitem-value = vkeyitem-col_name.
contentsitem-row = rowmax.
contentsitem-column = columncount.
append contentsitem to contents.
columncount = columncount + 1.
enddo.
*--------------------------------------------------------------------*
* set header range for method set_range_data
* insert header keys range dim
li_head_top = li_commentary_rows + 1.
li_col_pos = i_left.
* insert range headers
if hkeycolumns ne 0.
rangeitem-name = &apos;TESTHKEY&apos;.
rangeitem-rows = rowmax.
rangeitem-columns = hkeycolumns.
append rangeitem to ranges.
clear: rangeitem.
call method lo_spreadsheet-&gt;insert_range_dim
EXPORTING
name = &apos;TESTHKEY&apos;
top = li_head_top
left = li_col_pos
rows = rowmax
columns = hkeycolumns
no_flush = no_flush.
endif.
endif.
* format for columns header + total + subtotal
* ------------------------------------------
help = rowmax + realmit. &quot; table + header lines
data: item type colxxl_t.
data: lt_format type soi_format_table.
data: wa_format like line of lt_format.
data: wa_format_temp like line of lt_format.
field-symbols: &lt;f_source&gt; type any.
field-symbols: &lt;f_des&gt; type any.
* columns header format
wa_format-front = -1.
wa_format-back = 15. &quot;grey
wa_format-font = space.
wa_format-size = -1.
wa_format-bold = 1.
wa_format-align = 0.
wa_format-frametyp = -1.
wa_format-framecolor = -1.
* get column header format from input record
* -&gt; map input format
if i_columns_header = &apos;X&apos;.
wa_format-name = &apos;TESTHKEY&apos;.
if i_format_col_header is not initial.
describe field i_format_col_header type l_typ components
li_col_num.
do li_col_num times.
if sy-index ne 1. &quot; dun map range name
assign component sy-index of structure i_format_col_header
to &lt;f_source&gt;.
if &lt;f_source&gt; is not initial.
assign component sy-index of structure wa_format to &lt;f_des&gt;.
&lt;f_des&gt; = &lt;f_source&gt;.
unassign: &lt;f_des&gt;.
endif.
unassign: &lt;f_source&gt;.
endif.
enddo.
clear: li_col_num.
endif.
append wa_format to lt_format.
endif.
* Zusammenfassen der Spalten mit gleicher Nachkommastellenzahl
* collect vertical cells (col) with the same number of decimal places
* to increase perfomance in currency cell format
describe table currcells lines lines.
lines = lines - 1.
do lines times.
describe table currcells lines innerlines.
innerlines = innerlines - 1.
sort currcells by left top.
clear found.
do innerlines times.
read table currcells index sy-index into curritem.
counter = sy-index + 1.
read table currcells index counter into curritem2.
if curritem-left eq curritem2-left.
length = curritem-top + curritem-rows.
if length eq curritem2-top.
if curritem-decimals eq curritem2-decimals.
move curritem to curritem3.
curritem3-rows = curritem3-rows + curritem2-rows.
curritem-left = -1.
modify currcells index sy-index from curritem.
curritem2-left = -1.
modify currcells index counter from curritem2.
append curritem3 to currcells.
found = &apos;X&apos;.
endif.
endif.
endif.
enddo.
if found is initial.
exit.
endif.
delete currcells where left = -1.
enddo.
* Zusammenfassen der Zeilen mit gleicher Nachkommastellenzahl
* collect horizontal cells (row) with the same number of decimal places
* to increase perfomance in currency cell format
describe table currcells lines lines.
lines = lines - 1.
do lines times.
describe table currcells lines innerlines.
innerlines = innerlines - 1.
sort currcells by top left.
clear found.
do innerlines times.
read table currcells index sy-index into curritem.
counter = sy-index + 1.
read table currcells index counter into curritem2.
if curritem-top eq curritem2-top and curritem-rows eq
curritem2-rows.
length = curritem-left + curritem-columns.
if length eq curritem2-left.
if curritem-decimals eq curritem2-decimals.
move curritem to curritem3.
curritem3-columns = curritem3-columns + curritem2-columns.
curritem-left = -1.
modify currcells index sy-index from curritem.
curritem2-left = -1.
modify currcells index counter from curritem2.
append curritem3 to currcells.
found = &apos;X&apos;.
endif.
endif.
endif.
enddo.
if found is initial.
exit.
endif.
delete currcells where left = -1.
enddo.
* Ende der Zusammenfassung
* item data: format for currency cell, corresponding with currency
call method lo_spreadsheet-&gt;cell_format
EXPORTING
cells = currcells
no_flush = no_flush.
* item data: write item table content
call method lo_spreadsheet-&gt;set_ranges_data
EXPORTING
ranges = ranges
contents = contents
no_flush = no_flush.
* whole table range to format all table
if i_columns_header = &apos;X&apos;.
li_head_top = li_commentary_rows + 1.
else.
li_head_top = li_commentary_rows + 2.
help = help - 1.
endif.
call method lo_spreadsheet-&gt;insert_range_dim
EXPORTING
name = &apos;WHOLE_TABLE&apos;
top = li_head_top
left = i_left
rows = help
columns = datareal
no_flush = no_flush.
* columns width auto fix
* this parameter = space in case use with exist template
IF i_columns_autofit = &apos;X&apos;.
call method lo_spreadsheet-&gt;fit_widest
EXPORTING
name = &apos;WHOLE_TABLE&apos;
no_flush = no_flush.
ENDIF.
* frame
* The parameter has 8 bits
*0 Left margin
*1 Top marginT
*2 Bottom margin
*3 Right margin
*4 Horizontal line
*5 Vertical line
*6 Thinness
*7 Thickness
* here 127 = 1111111 6-5-4-3-2-1 mean Thin-ver-hor-right-bot-top-left
* ( final DOI method call, set no_flush = space
* equal to call method CL_GUI_CFW=&gt;FLUSH )
call method lo_spreadsheet-&gt;set_frame
EXPORTING
rangename = &apos;WHOLE_TABLE&apos;
typ = 127
color = 1
no_flush = space
IMPORTING
error = lo_error
retcode = lc_retcode.
error_doi.
* reformat subtotal / total line after format wholw table
loop at subranges into subrangeitem.
l_sub_index = subrangeitem-rows + li_commentary_rows + rowmax.
call method lo_spreadsheet-&gt;insert_range_dim
EXPORTING
name = subrangeitem-name
left = i_left
top = l_sub_index
rows = 1
columns = datareal
no_flush = no_flush.
wa_format-name = subrangeitem-name.
* default format:
* - clolor: subtotal = light yellow, subtotal = yellow
* - frame: box
IF subrangeitem-name(3) = &apos;SUB&apos;.
wa_format-back = 36. &quot;subtotal line
wa_format_temp = i_format_subtotal.
else.
wa_format-back = 27. &quot;total line
wa_format_temp = i_format_total.
endif.
wa_format-FRAMETYP = 79.
wa_format-FRAMEcolor = 1.
wa_format-number = -1.
wa_format-align = -1.
* get subtoal + total format from intput parameter
* overwrite default format
if wa_format_temp is not initial.
describe field wa_format_temp type l_typ components li_col_num.
do li_col_num times.
if sy-index ne 1. &quot; dun map range name
assign component sy-index of structure wa_format_temp
to &lt;f_source&gt;.
if &lt;f_source&gt; is not initial.
assign component sy-index of structure wa_format to &lt;f_des&gt;.
&lt;f_des&gt; = &lt;f_source&gt;.
unassign: &lt;f_des&gt;.
endif.
unassign: &lt;f_source&gt;.
endif.
enddo.
clear: li_col_num.
endif.
append wa_format to lt_format.
clear: wa_format-name.
clear: l_sub_index.
clear: wa_format_temp.
endloop.
if lt_format[] is not initial.
call method lo_spreadsheet-&gt;set_ranges_format
EXPORTING
formattable = lt_format
no_flush = no_flush.
refresh: lt_format.
endif.
*--------------------------------------------------------------------*
call method lo_spreadsheet-&gt;screen_update
EXPORTING
updating = &apos;X&apos;.
call method c_oi_errors=&gt;flush_errors.
lo_error_w = l_error.
lc_retcode = lo_error_w-&gt;error_code.
** catch no_flush -&gt; led to dump ( optional )
* go_error = l_error.
* gc_retcode = go_error-&gt;error_code.
* error_doi.
clear:
lt_sema,
wa_sema,
lt_hkey,
wa_hkey,
lt_vkey,
wa_vkey,
l_n_hrz_keys,
l_n_att_cols,
l_n_vrt_keys,
count,
datac,
datareal,
vkeycount,
all,
mit,
li_col_pos,
li_col_num,
ranges,
rangeitem,
contents,
contentsitem,
semaitem,
hkeyitem,
vkeyitem,
li_commentary_rows,
l_retcode,
li_head_top,
&lt;f_excel_tab&gt;.
clear:
lo_error_w.
unassign:
&lt;line&gt;,
&lt;item&gt;,
&lt;f_excel_tab&gt;.
*--------------------------------------------------------------------*
* SESSION 5: SAVE AND CLOSE FILE
*--------------------------------------------------------------------*
* ex of save path: &apos;FILE://C:\temp\test.xlsx&apos;
concatenate &apos;FILE://&apos; I_save_path
into ls_path.
call method lo_proxy-&gt;save_document_to_url
EXPORTING
no_flush = &apos;X&apos;
url = ls_path
IMPORTING
error = lo_error
retcode = lc_retcode
CHANGING
document_size = li_document_size.
error_doi.
* if save successfully -&gt; raise successful message
* message i499(sy) with &apos;Document is Exported to &apos; p_path.
message i499(sy) with &apos;Data has been exported successfully&apos;.
clear:
ls_path,
li_document_size.
close_document.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_TABLE" VERSION="1" LANGU="E" DESCRIPT="Set cell value from a table" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_TABLE" SCONAME="IP_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_TABLE" SCONAME="IT_FIELD_CATALOG" VERSION="1" LANGU="E" DESCRIPT="Table binding field catalog" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_FIELDCATALOG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_TABLE" SCONAME="IS_TABLE_SETTINGS" VERSION="1" LANGU="E" DESCRIPT="Excel table binding settings" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_TABLE_SETTINGS" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_TABLE" SCONAME="ES_TABLE_SETTINGS" VERSION="1" LANGU="E" DESCRIPT="Excel table binding settings" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_TABLE_SETTINGS"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_TABLE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method BIND_TABLE.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (wi p) 2012-12-01
* - ...
* aligning code
* message made to support multilinguality
*--------------------------------------------------------------------*
* issue #237 - Check if overlapping areas exist
* - Alessandro Iannacci 2012-12-01
* changes: - Added raise if overlaps are detected
*--------------------------------------------------------------------*
CONSTANTS:
lc_top_left_column TYPE zexcel_cell_column_alpha VALUE &apos;B&apos;,
lc_top_left_row TYPE zexcel_cell_row VALUE 3.
DATA:
lv_row_int TYPE zexcel_cell_row,
lv_first_row TYPE zexcel_cell_row,
lv_last_row TYPE zexcel_cell_row,
lv_column_int TYPE zexcel_cell_column,
lv_column_alpha TYPE zexcel_cell_column_alpha,
lt_field_catalog TYPE zexcel_t_fieldcatalog,
lv_id TYPE i,
lv_rows TYPE i,
lv_formula TYPE string,
ls_settings TYPE zexcel_s_table_settings,
lo_table TYPE REF TO zcl_excel_table,
lt_column_name_buffer TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line,
lv_value TYPE string,
lv_syindex TYPE char3,
lv_errormessage TYPE string, &quot;ins issue #237
lv_columns TYPE i,
lt_columns TYPE zexcel_t_fieldcatalog,
lv_maxcol TYPE i,
lv_maxrow TYPE i,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_curtable TYPE REF TO zcl_excel_table.
FIELD-SYMBOLS:
&lt;ls_field_catalog&gt; TYPE zexcel_s_fieldcatalog,
&lt;ls_field_catalog_custom&gt; TYPE zexcel_s_fieldcatalog,
&lt;fs_table_line&gt; TYPE ANY,
&lt;fs_fldval&gt; TYPE ANY.
ls_settings = is_table_settings.
IF ls_settings-top_left_column IS INITIAL.
ls_settings-top_left_column = lc_top_left_column.
ENDIF.
IF ls_settings-table_style IS INITIAL.
ls_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium2.
ENDIF.
IF ls_settings-top_left_row IS INITIAL.
ls_settings-top_left_row = lc_top_left_row.
ENDIF.
IF it_field_catalog IS NOT SUPPLIED.
lt_field_catalog = zcl_excel_common=&gt;get_fieldcatalog( ip_table = ip_table ).
ELSE.
lt_field_catalog = it_field_catalog.
ENDIF.
SORT lt_field_catalog BY position.
*--------------------------------------------------------------------*
* issue #237 Check if overlapping areas exist Start
*--------------------------------------------------------------------*
&quot;Get the number of columns for the current table
lt_columns = lt_field_catalog.
DELETE lt_columns WHERE dynpfld NE abap_true.
DESCRIBE TABLE lt_columns LINES lv_columns.
&quot;Calculate the top left row of the current table
lv_column_int = zcl_excel_common=&gt;convert_column2int( ls_settings-top_left_column ).
lv_row_int = ls_settings-top_left_row.
&quot;Get number of row for the current table
DESCRIBE TABLE ip_table LINES lv_rows.
&quot;Calculate the bottom right row for the current table
lv_maxcol = lv_column_int + lv_columns - 1.
lv_maxrow = lv_row_int + lv_rows - 1.
ls_settings-bottom_right_column = zcl_excel_common=&gt;convert_column2alpha( lv_maxcol ).
ls_settings-bottom_right_row = lv_maxrow.
lv_column_int = zcl_excel_common=&gt;convert_column2int( ls_settings-top_left_column ).
lo_iterator = me-&gt;tables-&gt;if_object_collection~get_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_curtable ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
IF ( ( ls_settings-top_left_row GE lo_curtable-&gt;settings-top_left_row AND ls_settings-top_left_row LE lo_curtable-&gt;settings-bottom_right_row )
OR
( ls_settings-bottom_right_row GE lo_curtable-&gt;settings-top_left_row AND ls_settings-bottom_right_row LE lo_curtable-&gt;settings-bottom_right_row )
)
AND
( ( lv_column_int GE zcl_excel_common=&gt;convert_column2int( lo_curtable-&gt;settings-top_left_column ) AND lv_column_int LE zcl_excel_common=&gt;convert_column2int( lo_curtable-&gt;settings-bottom_right_column ) )
OR
( lv_maxcol GE zcl_excel_common=&gt;convert_column2int( lo_curtable-&gt;settings-top_left_column ) AND lv_maxcol LE zcl_excel_common=&gt;convert_column2int( lo_curtable-&gt;settings-bottom_right_column ) )
).
lv_errormessage = &apos;Table overlaps with previously bound table and will not be added to worksheet.&apos;(400).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
ENDWHILE.
*--------------------------------------------------------------------*
* issue #237 Check if overlapping areas exist End
*--------------------------------------------------------------------*
CREATE OBJECT lo_table.
lo_table-&gt;settings = ls_settings.
lo_table-&gt;set_data( ir_data = ip_table ).
lv_id = me-&gt;excel-&gt;get_next_table_id( ).
lo_table-&gt;set_id( iv_id = lv_id ).
* lo_table-&gt;fieldcat = lt_field_catalog[].
me-&gt;tables-&gt;add( lo_table ).
* It is better to loop column by column (only visible column)
LOOP AT lt_field_catalog ASSIGNING &lt;ls_field_catalog&gt; WHERE dynpfld EQ abap_true.
lv_column_alpha = zcl_excel_common=&gt;convert_column2alpha( lv_column_int ).
&quot; Due restrinction of new table object we cannot have two column with the same name
&quot; Check if a column with the same name exists, if exists add a counter
&quot; If no medium description is provided we try to use small or long
* lv_value = &lt;ls_field_catalog&gt;-scrtext_m.
IF &lt;ls_field_catalog&gt;-scrtext_m IS NOT INITIAL.
lv_value = &lt;ls_field_catalog&gt;-scrtext_m.
&lt;ls_field_catalog&gt;-scrtext_l = lv_value.
ELSEIF &lt;ls_field_catalog&gt;-scrtext_s IS NOT INITIAL.
lv_value = &lt;ls_field_catalog&gt;-scrtext_s.
&lt;ls_field_catalog&gt;-scrtext_l = lv_value.
ELSEIF &lt;ls_field_catalog&gt;-scrtext_l IS NOT INITIAL.
lv_value = &lt;ls_field_catalog&gt;-scrtext_l.
ELSE.
lv_value = &apos;Column&apos;. &quot; default value as Excel does
&lt;ls_field_catalog&gt;-scrtext_l = lv_value.
ENDIF.
WHILE 1 = 1.
READ TABLE lt_column_name_buffer TRANSPORTING NO FIELDS WITH KEY table_line = lv_value BINARY SEARCH.
IF sy-subrc &lt;&gt; 0.
&lt;ls_field_catalog&gt;-scrtext_l = lv_value.
INSERT lv_value INTO TABLE lt_column_name_buffer.
EXIT.
ELSE.
lv_syindex = sy-index.
CONCATENATE &lt;ls_field_catalog&gt;-scrtext_l lv_syindex INTO lv_value.
ENDIF.
ENDWHILE.
&quot; First of all write column header
IF &lt;ls_field_catalog&gt;-style_header IS NOT INITIAL.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_value = lv_value
ip_style = &lt;ls_field_catalog&gt;-style_header ).
ELSE.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_value = lv_value ).
ENDIF.
ADD 1 TO lv_row_int.
LOOP AT ip_table ASSIGNING &lt;fs_table_line&gt;.
ASSIGN COMPONENT &lt;ls_field_catalog&gt;-fieldname OF STRUCTURE &lt;fs_table_line&gt; TO &lt;fs_fldval&gt;.
&quot; issue #290 Add formula support in table
IF &lt;ls_field_catalog&gt;-formula EQ abap_true.
IF &lt;ls_field_catalog&gt;-style IS NOT INITIAL.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_formula = &lt;fs_fldval&gt;
ip_style = &lt;ls_field_catalog&gt;-style ).
ELSE.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_formula = &lt;fs_fldval&gt; ).
ENDIF.
ELSE.
IF &lt;ls_field_catalog&gt;-style IS NOT INITIAL.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_value = &lt;fs_fldval&gt;
ip_style = &lt;ls_field_catalog&gt;-style ).
ELSE.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_value = &lt;fs_fldval&gt; ).
ENDIF.
ENDIF.
ADD 1 TO lv_row_int.
ENDLOOP.
IF sy-subrc &lt;&gt; 0. &quot;create empty row if table has no data
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_value = space ).
ADD 1 TO lv_row_int.
ENDIF.
*--------------------------------------------------------------------*
&quot; totals
*--------------------------------------------------------------------*
IF &lt;ls_field_catalog&gt;-totals_function IS NOT INITIAL.
lv_formula = lo_table-&gt;get_totals_formula( ip_column = &lt;ls_field_catalog&gt;-scrtext_l ip_function = &lt;ls_field_catalog&gt;-totals_function ).
IF &lt;ls_field_catalog&gt;-style_total IS NOT INITIAL.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_formula = lv_formula
ip_style = &lt;ls_field_catalog&gt;-style_total ).
ELSE.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_formula = lv_formula ).
ENDIF.
ENDIF.
lv_row_int = ls_settings-top_left_row.
ADD 1 TO lv_column_int.
*--------------------------------------------------------------------*
&quot; conditional formatting
*--------------------------------------------------------------------*
IF &lt;ls_field_catalog&gt;-cond_style IS NOT INITIAL.
lv_first_row = ls_settings-top_left_row + 1. &quot; +1 to exclude header
lv_last_row = ls_settings-top_left_row + lv_rows.
&lt;ls_field_catalog&gt;-cond_style-&gt;set_range( ip_start_column = lv_column_alpha
ip_start_row = lv_first_row
ip_stop_column = lv_column_alpha
ip_stop_row = lv_last_row ).
ENDIF.
ENDLOOP.
*--------------------------------------------------------------------*
&quot; Set field catalog
*--------------------------------------------------------------------*
lo_table-&gt;fieldcat = lt_field_catalog[].
es_table_settings = ls_settings.
es_table_settings-bottom_right_column = lv_column_alpha.
&quot; &gt;&gt; Issue #291
IF ip_table IS INITIAL.
es_table_settings-bottom_right_row = ls_settings-top_left_row + 2. &quot;Last rows
ELSE.
es_table_settings-bottom_right_row = ls_settings-top_left_row + lv_rows + 1. &quot;Last rows
ENDIF.
&quot; &lt;&lt; Issue #291
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CALCULATE_CELL_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Calculate width of cell" EXPOSURE="0" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CALCULATE_CELL_WIDTH" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CALCULATE_CELL_WIDTH" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CALCULATE_CELL_WIDTH" SCONAME="EP_WIDTH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLOAT"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CALCULATE_CELL_WIDTH" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>*--------------------------------------------------------------------*
* issue #293 - Roberto Bianco
* - Christian Assig 2014-03-14
*
* changes: - Calculate widths using SAPscript font metrics
* (transaction SE73)
* - Calculate the width of dates
* - Add additional width for auto filter buttons
* - Add cell padding to simulate Excel behavior
*--------------------------------------------------------------------*
METHOD calculate_cell_width.
CONSTANTS:
lc_default_font_name TYPE zexcel_style_font_name VALUE &apos;Calibri&apos;, &quot;#EC NOTEXT
lc_default_font_height TYPE tdfontsize VALUE &apos;110&apos;,
lc_excel_cell_padding TYPE float VALUE &apos;0.75&apos;.
DATA: ld_cell_value TYPE zexcel_cell_value,
ld_current_character TYPE c LENGTH 1,
ld_style_guid TYPE zexcel_cell_style,
ls_stylemapping TYPE zexcel_s_stylemapping,
lo_table_object TYPE REF TO object,
lo_table TYPE REF TO zcl_excel_table,
ld_table_top_left_column TYPE zexcel_cell_column,
ld_table_bottom_right_column TYPE zexcel_cell_column,
ld_flag_contains_auto_filter TYPE abap_bool VALUE abap_false,
ld_flag_bold TYPE abap_bool VALUE abap_false,
ld_flag_italic TYPE abap_bool VALUE abap_false,
ld_date TYPE d,
ld_date_char TYPE c LENGTH 50,
ld_font_height TYPE tdfontsize VALUE lc_default_font_height,
lt_itcfc TYPE STANDARD TABLE OF itcfc,
ld_offset TYPE i,
ld_uccp TYPE i,
ls_font_metric TYPE mty_s_font_metric,
ld_width_from_font_metrics TYPE i,
ld_font_family TYPE itcfh-tdfamily,
ld_font_name TYPE zexcel_style_font_name VALUE lc_default_font_name,
lt_font_families LIKE STANDARD TABLE OF ld_font_family,
ls_font_cache TYPE mty_s_font_cache.
FIELD-SYMBOLS: &lt;ls_font_cache&gt; TYPE mty_s_font_cache,
&lt;ls_font_metric&gt; TYPE mty_s_font_metric,
&lt;ls_itcfc&gt; TYPE itcfc.
&quot; Determine cell content and cell style
me-&gt;get_cell( EXPORTING ip_column = ip_column
ip_row = ip_row
IMPORTING ep_value = ld_cell_value
ep_guid = ld_style_guid ).
&quot; ABAP2XLSX uses tables to define areas containing headers and
&quot; auto-filters. Find out if the current cell is in the header
&quot; of one of these tables.
LOOP AT me-&gt;tables-&gt;collection INTO lo_table_object.
&quot; Downcast: OBJECT -&gt; ZCL_EXCEL_TABLE
lo_table ?= lo_table_object.
&quot; Convert column letters to corresponding integer values
ld_table_top_left_column =
zcl_excel_common=&gt;convert_column2int(
lo_table-&gt;settings-top_left_column ).
ld_table_bottom_right_column =
zcl_excel_common=&gt;convert_column2int(
lo_table-&gt;settings-bottom_right_column ).
&quot; Is the current cell part of the table header?
IF ip_column BETWEEN ld_table_top_left_column AND
ld_table_bottom_right_column AND
ip_row EQ lo_table-&gt;settings-top_left_row.
&quot; Current cell is part of the table header
&quot; -&gt; Assume that an auto filter is present and that the font is
&quot; bold
ld_flag_contains_auto_filter = abap_true.
ld_flag_bold = abap_true.
ENDIF.
ENDLOOP.
&quot; If a style GUID is present, read style attributes
IF ld_style_guid IS NOT INITIAL.
TRY.
&quot; Read style attributes
ls_stylemapping = me-&gt;excel-&gt;get_style_to_guid( ld_style_guid ).
&quot; If the current cell contains the default date format,
&quot; convert the cell value to a date and calculate its length
IF ls_stylemapping-complete_style-number_format-format_code =
zcl_excel_style_number_format=&gt;c_format_date_std.
&quot; Convert excel date to ABAP date
ld_date =
zcl_excel_common=&gt;excel_string_to_date( ld_cell_value ).
&quot; Format ABAP date using user&apos;s formatting settings
WRITE ld_date TO ld_date_char.
&quot; Remember the formatted date to calculate the cell size
ld_cell_value = ld_date_char.
ENDIF.
&quot; Read the font size and convert it to the font height
&quot; used by SAPscript (multiplication by 10)
IF ls_stylemapping-complete_stylex-font-size = abap_true.
ld_font_height = ls_stylemapping-complete_style-font-size * 10.
ENDIF.
&quot; If set, remember the font name
IF ls_stylemapping-complete_stylex-font-name = abap_true.
ld_font_name = ls_stylemapping-complete_style-font-name.
ENDIF.
&quot; If set, remember whether font is bold and italic.
IF ls_stylemapping-complete_stylex-font-bold = abap_true.
ld_flag_bold = ls_stylemapping-complete_style-font-bold.
ENDIF.
IF ls_stylemapping-complete_stylex-font-italic = abap_true.
ld_flag_italic = ls_stylemapping-complete_style-font-italic.
ENDIF.
CATCH zcx_excel ##NO_HANDLER.
&quot; Style GUID is present, but style was not found
&quot; Continue with default values
ENDTRY.
ENDIF.
&quot; Check if the same font (font name and font attributes) was already
&quot; used before
READ TABLE mth_font_cache
WITH TABLE KEY
font_name = ld_font_name
font_height = ld_font_height
flag_bold = ld_flag_bold
flag_italic = ld_flag_italic
ASSIGNING &lt;ls_font_cache&gt;.
IF sy-subrc &lt;&gt; 0.
&quot; Font is used for the first time
&quot; Add the font to our local font cache
ls_font_cache-font_name = ld_font_name.
ls_font_cache-font_height = ld_font_height.
ls_font_cache-flag_bold = ld_flag_bold.
ls_font_cache-flag_italic = ld_flag_italic.
INSERT ls_font_cache INTO TABLE mth_font_cache
ASSIGNING &lt;ls_font_cache&gt;.
&quot; Determine the SAPscript font family name from the Excel
&quot; font name
SELECT tdfamily
FROM tfo01
INTO TABLE lt_font_families
UP TO 1 ROWS
WHERE tdtext = ld_font_name.
&quot; Check if a matching font family was found
&quot; Fonts can be uploaded from TTF files using transaction SE73
IF lines( lt_font_families ) &gt; 0.
READ TABLE lt_font_families INDEX 1 INTO ld_font_family.
&quot; Load font metrics (returns a table with the size of each letter
&quot; in the font)
CALL FUNCTION &apos;LOAD_FONT&apos;
EXPORTING
family = ld_font_family
height = ld_font_height
printer = &apos;SWIN&apos;
bold = ld_flag_bold
italic = ld_flag_italic
TABLES
metric = lt_itcfc
EXCEPTIONS
font_family = 1
codepage = 2
device_type = 3
OTHERS = 4.
IF sy-subrc &lt;&gt; 0.
CLEAR lt_itcfc.
ENDIF.
&quot; For faster access, convert each character number to the actual
&quot; character, and store the characters and their sizes in a hash
&quot; table
LOOP AT lt_itcfc ASSIGNING &lt;ls_itcfc&gt;.
ld_uccp = &lt;ls_itcfc&gt;-cpcharno.
ls_font_metric-char =
cl_abap_conv_in_ce=&gt;uccpi( ld_uccp ).
ls_font_metric-char_width = &lt;ls_itcfc&gt;-tdcwidths.
INSERT ls_font_metric
INTO TABLE &lt;ls_font_cache&gt;-th_font_metrics.
ENDLOOP.
ENDIF.
ENDIF.
&quot; Calculate the cell width
&quot; If available, use font metrics
IF lines( &lt;ls_font_cache&gt;-th_font_metrics ) = 0.
&quot; Font metrics are not available
&quot; -&gt; Calculate the cell width using only the font size
ep_width =
strlen( ld_cell_value ) * ld_font_height / lc_default_font_height
+ lc_excel_cell_padding.
ELSE.
&quot; Font metrics are available
&quot; Calculate the size of the text by adding the sizes of each
&quot; letter
DO strlen( ld_cell_value ) TIMES.
&quot; Subtract 1, because the first character is at offset 0
ld_offset = sy-index - 1.
&quot; Read the current character from the cell value
ld_current_character = ld_cell_value+ld_offset(1).
&quot; Look up the size of the current letter
READ TABLE &lt;ls_font_cache&gt;-th_font_metrics
WITH TABLE KEY char = ld_current_character
ASSIGNING &lt;ls_font_metric&gt;.
IF sy-subrc = 0.
&quot; The size of the letter is known
&quot; -&gt; Add the actual size of the letter
ADD &lt;ls_font_metric&gt;-char_width TO ld_width_from_font_metrics.
ELSE.
&quot; The size of the letter is unknown
&quot; -&gt; Add the font height as the default letter size
ADD ld_font_height TO ld_width_from_font_metrics.
ENDIF.
ENDDO.
&quot; Add cell padding (Excel makes columns a bit wider than the space
&quot; that is needed for the text itself) and convert unit
&quot; (division by 100)
ep_width = ld_width_from_font_metrics / 100 + lc_excel_cell_padding.
ENDIF.
&quot; If the current cell contains an auto filter, make it a bit wider.
&quot; The size used by the auto filter button does not depend on the font
&quot; size.
IF ld_flag_contains_auto_filter = abap_true.
ADD 2 TO ep_width.
ENDIF.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CALCULATE_COLUMN_WIDTHS" VERSION="1" LANGU="E" DESCRIPT="Calculate widths for auto-size columns" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CALCULATE_COLUMN_WIDTHS" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method CALCULATE_COLUMN_WIDTHS.
TYPES:
BEGIN OF t_auto_size,
col_index TYPE int4,
width TYPE float,
END OF t_auto_size.
TYPES: tt_auto_size TYPE TABLE OF t_auto_size.
DATA: column_dimensions TYPE zexcel_t_worksheet_columndime.
DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: auto_size TYPE flag.
DATA: auto_sizes TYPE tt_auto_size.
* DATA: col_alpha TYPE zexcel_cell_column_alpha.&quot; issue #155 - less restrictive typing for ip_column
DATA: cell_value TYPE zexcel_cell_value.
DATA: cell_style TYPE REF TO zcl_excel_style.
DATA: count TYPE int4.
DATA: highest_row TYPE int4.
DATA: width TYPE float.
FIELD-SYMBOLS: &lt;column_dimension&gt; LIKE LINE OF column_dimensions.
FIELD-SYMBOLS: &lt;auto_size&gt; LIKE LINE OF auto_sizes.
column_dimensions[] = me-&gt;get_column_dimensions( ).
LOOP AT column_dimensions ASSIGNING &lt;column_dimension&gt;.
auto_size = &lt;column_dimension&gt;-column_dimension-&gt;get_auto_size( ).
IF auto_size = abap_true.
APPEND INITIAL LINE TO auto_sizes ASSIGNING &lt;auto_size&gt;.
&lt;auto_size&gt;-col_index = &lt;column_dimension&gt;-column_dimension-&gt;get_column_index( ).
&lt;auto_size&gt;-width = -1.
ENDIF.
ENDLOOP.
&quot; There is only something to do if there are some auto-size columns
IF NOT auto_sizes IS INITIAL.
highest_row = me-&gt;get_highest_row( ).
LOOP AT auto_sizes ASSIGNING &lt;auto_size&gt;.
* col_alpha = zcl_excel_common=&gt;convert_column2alpha( &lt;auto_size&gt;-col_index ).&quot; issue #155 - less restrictive typing for ip_column
count = 1.
WHILE count &lt;= highest_row.
* Start of change # issue 139 - Dateretention of cellstyles
* IF cell_style IS BOUND.
* CREATE OBJECT cell_style.
* ENDIF.
* me-&gt;get_cell(
* EXPORTING
* ip_column = col_alpha &quot; Cell Column
* ip_row = count &quot; Cell Row
* IMPORTING
* ep_value = cell_value &quot; Cell Value
* ep_style = cell_style &quot; Request Cell Style as well
* ).
* &quot; For an easy start we just take the number of characters as the width
* width = strlen( cell_value ).
* &quot; Addition to solve issue #120, contribution by Stefan Schm#ƒÂ#cker
* &quot; Calculate width using Font Size and Font Type
* IF cell_style IS BOUND
* AND cell_style-&gt;font IS BOUND.
* width = cell_style-&gt;font-&gt;calculate_text_width( cell_value ).
* ENDIF.
* width = calculate_cell_width( ip_column = col_alpha &quot; issue #155 - less restrictive typing for ip_column
width = calculate_cell_width( ip_column = &lt;auto_size&gt;-col_index &quot; issue #155 - less restrictive typing for ip_column
ip_row = count ).
* End of change # issue 139 - Dateretention of cellstyles
IF width &gt; &lt;auto_size&gt;-width.
&lt;auto_size&gt;-width = width.
ENDIF.
count = count + 1.
ENDWHILE.
* column_dimension = me-&gt;get_column_dimension( col_alpha ). &quot; issue #155 - less restrictive typing for ip_column
column_dimension = me-&gt;get_column_dimension( &lt;auto_size&gt;-col_index ). &quot; issue #155 - less restrictive typing for ip_column
column_dimension-&gt;set_width( &lt;auto_size&gt;-width ).
ENDLOOP.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" VERSION="1" LANGU="E" DESCRIPT="Change cell style" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_COMPLETE" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles ( 1 structure holds all )" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_COMPLETE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XCOMPLETE" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cellstyles ( 1 structure holds all )" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_COMPLETE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles - Font" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_FONT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XFONT" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cellstyles - Font" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_FONT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles - Fill" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_FILL" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XFILL" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cellstyles - Fill" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_FILL" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles - Borders" CMPTYPE="1" MTDTYPE="0" EDITORDER="9 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_BORDERS" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XBORDERS" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cellstyles - Borders" CMPTYPE="1" MTDTYPE="0" EDITORDER="10 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_BORDERS" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles - Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="11 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cellstyles - Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="12 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_NUMBER_FORMAT_FORMAT_CODE" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles - Number Format" CMPTYPE="1" MTDTYPE="0" EDITORDER="13 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_PROTECTION" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles - Protection" CMPTYPE="1" MTDTYPE="0" EDITORDER="14 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_PROTECTION" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XPROTECTION" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cellstyles - Protection" CMPTYPE="1" MTDTYPE="0" EDITORDER="15 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_PROTECTION" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_BOLD" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="16 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="17 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_COLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="18 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_COLOR_INDEXED" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="19 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_COLOR_THEME" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="20 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_COLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="21 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_FAMILY" VERSION="1" LANGU="E" DESCRIPT="Font family" CMPTYPE="1" MTDTYPE="0" EDITORDER="22 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_FAMILY" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_ITALIC" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="23 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_NAME" VERSION="1" LANGU="E" DESCRIPT="Font name" CMPTYPE="1" MTDTYPE="0" EDITORDER="24 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_NAME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_SCHEME" VERSION="1" LANGU="E" DESCRIPT="Font scheme" CMPTYPE="1" MTDTYPE="0" EDITORDER="25 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_SCHEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_SIZE" VERSION="1" LANGU="E" DESCRIPT="Font size" CMPTYPE="1" MTDTYPE="0" EDITORDER="26 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_SIZE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_STRIKETHROUGH" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="27 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_UNDERLINE" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="28 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FONT_UNDERLINE_MODE" VERSION="1" LANGU="E" DESCRIPT="Font underline" CMPTYPE="1" MTDTYPE="0" EDITORDER="29 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_FONT_UNDERLINE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_FILLTYPE" VERSION="1" LANGU="E" DESCRIPT="Fill Type" CMPTYPE="1" MTDTYPE="0" EDITORDER="30 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_FILL_TYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_ROTATION" VERSION="1" LANGU="E" DESCRIPT="Rotation" CMPTYPE="1" MTDTYPE="0" EDITORDER="31 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ROTATION" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_FGCOLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="32 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_FGCOLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="33 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_FGCOLOR_INDEXED" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="34 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_FGCOLOR_THEME" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="35 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_FGCOLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="36 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_BGCOLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="37 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_BGCOLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="38 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_BGCOLOR_INDEXED" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="39 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_BGCOLOR_THEME" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="40 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_FILL_BGCOLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="41 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_ALLBORDERS" VERSION="1" LANGU="E" DESCRIPT="Values for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="42 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XBORDERS_ALLBORDERS" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="43 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DIAGONAL" VERSION="1" LANGU="E" DESCRIPT="Values for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="44 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XBORDERS_DIAGONAL" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="45 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DIAGONAL_MODE" VERSION="1" LANGU="E" DESCRIPT="Diagonal" CMPTYPE="1" MTDTYPE="0" EDITORDER="46 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DIAGONAL" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DOWN" VERSION="1" LANGU="E" DESCRIPT="Values for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="47 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XBORDERS_DOWN" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="48 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_LEFT" VERSION="1" LANGU="E" DESCRIPT="Values for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="49 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XBORDERS_LEFT" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="50 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_RIGHT" VERSION="1" LANGU="E" DESCRIPT="Values for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="51 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XBORDERS_RIGHT" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="52 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_TOP" VERSION="1" LANGU="E" DESCRIPT="Values for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="53 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_XBORDERS_TOP" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cells - border" CMPTYPE="1" MTDTYPE="0" EDITORDER="54 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_ALIGNMENT_HORIZONTAL" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="55 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_ALIGNMENT_VERTICAL" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="56 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_ALIGNMENT_TEXTROTATION" VERSION="1" LANGU="E" DESCRIPT="Text Rotation" CMPTYPE="1" MTDTYPE="0" EDITORDER="57 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TEXT_ROTATION" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_ALIGNMENT_WRAPTEXT" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="58 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_ALIGNMENT_SHRINKTOFIT" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="59 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_ALIGNMENT_INDENT" VERSION="1" LANGU="E" DESCRIPT="Indent" CMPTYPE="1" MTDTYPE="0" EDITORDER="60 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_INDENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_PROTECTION_HIDDEN" VERSION="1" LANGU="E" DESCRIPT="Cell protection indicator" CMPTYPE="1" MTDTYPE="0" EDITORDER="61 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_PROTECTION" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_PROTECTION_LOCKED" VERSION="1" LANGU="E" DESCRIPT="Cell protection indicator" CMPTYPE="1" MTDTYPE="0" EDITORDER="62 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_PROTECTION" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_ALLBORDERS_STYLE" VERSION="1" LANGU="E" DESCRIPT="Border style" CMPTYPE="1" MTDTYPE="0" EDITORDER="63 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_ALLBORDERS_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="64 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_ALLBO_COLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="65 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_ALLBO_COLOR_INDEXED" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="66 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_ALLBO_COLOR_THEME" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="67 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_ALLBO_COLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="68 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DIAGONAL_STYLE" VERSION="1" LANGU="E" DESCRIPT="Border style" CMPTYPE="1" MTDTYPE="0" EDITORDER="69 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DIAGONAL_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="70 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DIAGONAL_COLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="71 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DIAGONAL_COLOR_INDE" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="72 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DIAGONAL_COLOR_THEM" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="73 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DIAGONAL_COLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="74 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DOWN_STYLE" VERSION="1" LANGU="E" DESCRIPT="Border style" CMPTYPE="1" MTDTYPE="0" EDITORDER="75 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DOWN_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="76 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DOWN_COLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="77 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DOWN_COLOR_INDEXED" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="78 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DOWN_COLOR_THEME" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="79 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_DOWN_COLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="80 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_LEFT_STYLE" VERSION="1" LANGU="E" DESCRIPT="Border style" CMPTYPE="1" MTDTYPE="0" EDITORDER="81 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_LEFT_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="82 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_LEFT_COLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="83 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_LEFT_COLOR_INDEXED" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="84 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_LEFT_COLOR_THEME" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="85 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_LEFT_COLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="86 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_RIGHT_STYLE" VERSION="1" LANGU="E" DESCRIPT="Border style" CMPTYPE="1" MTDTYPE="0" EDITORDER="87 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_RIGHT_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="88 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_RIGHT_COLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="89 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_RIGHT_COLOR_INDEXED" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="90 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_RIGHT_COLOR_THEME" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="91 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_RIGHT_COLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="92 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_TOP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Border style" CMPTYPE="1" MTDTYPE="0" EDITORDER="93 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_BORDER" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_TOP_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="94 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_TOP_COLOR_RGB" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="95 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_TOP_COLOR_INDEXED" VERSION="1" LANGU="E" DESCRIPT="Indexed color value" CMPTYPE="1" MTDTYPE="0" EDITORDER="96 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_INDEXED" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_TOP_COLOR_THEME" VERSION="1" LANGU="E" DESCRIPT="Theme Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="97 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_THEME" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="IP_BORDERS_TOP_COLOR_TINT" VERSION="1" LANGU="E" DESCRIPT="Tint" CMPTYPE="1" MTDTYPE="0" EDITORDER="98 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_TINT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="99 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CHANGE_CELL_STYLE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>METHOD change_cell_style.
&quot; issue # 139
DATA: stylemapping TYPE zexcel_s_stylemapping,
complete_style TYPE zexcel_s_cstyle_complete,
complete_stylex TYPE zexcel_s_cstylex_complete,
borderx TYPE zexcel_s_cstylex_border,
l_guid TYPE zexcel_cell_style. &quot;issue # 177
* We have a lot of parameters. Use some macros to make the coding more structured
DEFINE clear_initial_colorxfields.
if &amp;1-rgb is initial.
clear &amp;2-rgb.
endif.
if &amp;1-indexed is initial.
clear &amp;2-indexed.
endif.
if &amp;1-theme is initial.
clear &amp;2-theme.
endif.
if &amp;1-tint is initial.
clear &amp;2-tint.
endif.
END-OF-DEFINITION.
DEFINE move_supplied_borders.
if ip_&amp;1 is supplied. &quot; only act if parameter was supplied
if ip_x&amp;1 is supplied. &quot;
borderx = ip_x&amp;1. &quot; use supplied x-parameter
else.
clear borderx with &apos;X&apos;.
* clear in a way that would be expected to work easily
if ip_&amp;1-border_style is initial.
clear borderx-border_style.
endif.
clear_initial_colorxfields ip_&amp;1-border_color borderx-border_color.
endif.
move-corresponding ip_&amp;1 to complete_style-&amp;2.
move-corresponding borderx to complete_stylex-&amp;2.
endif.
END-OF-DEFINITION.
* First get current stylsettings
TRY.
me-&gt;get_cell( EXPORTING ip_column = ip_column &quot; Cell Column
ip_row = ip_row &quot; Cell Row
IMPORTING ep_guid = l_guid ).&quot; Cell Value ). &quot;issue # 177
stylemapping = me-&gt;excel-&gt;get_style_to_guid( l_guid ). &quot;issue # 177
complete_style = stylemapping-complete_style.
complete_stylex = stylemapping-complete_stylex.
CATCH zcx_excel.
* Error --&gt; use submitted style
ENDTRY.
* move_supplied_multistyles: complete.
IF ip_complete IS SUPPLIED.
IF ip_xcomplete IS NOT SUPPLIED.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Complete styleinfo has to be supplied with corresponding X-field&apos;.
ENDIF.
MOVE-CORRESPONDING ip_complete TO complete_style.
MOVE-CORRESPONDING ip_xcomplete TO complete_stylex.
ENDIF.
IF ip_font IS SUPPLIED.
DATA: fontx LIKE ip_xfont.
IF ip_xfont IS SUPPLIED.
fontx = ip_xfont.
ELSE.
* Only supplied values should be used - exception: Flags bold and italic strikethrough underline
MOVE &apos;X&apos; TO: fontx-bold,
fontx-italic,
fontx-strikethrough,
fontx-underline_mode.
CLEAR fontx-color WITH &apos;X&apos;.
clear_initial_colorxfields ip_font-color fontx-color.
IF ip_font-family IS NOT INITIAL.
fontx-family = &apos;X&apos;.
ENDIF.
IF ip_font-name IS NOT INITIAL.
fontx-name = &apos;X&apos;.
ENDIF.
IF ip_font-scheme IS NOT INITIAL.
fontx-scheme = &apos;X&apos;.
ENDIF.
IF ip_font-size IS NOT INITIAL.
fontx-size = &apos;X&apos;.
ENDIF.
IF ip_font-underline_mode IS NOT INITIAL.
fontx-underline_mode = &apos;X&apos;.
ENDIF.
ENDIF.
MOVE-CORRESPONDING ip_font TO complete_style-font.
MOVE-CORRESPONDING fontx TO complete_stylex-font.
* Correction for undeline mode
ENDIF.
IF ip_fill IS SUPPLIED.
DATA: fillx LIKE ip_xfill.
IF ip_xfill IS SUPPLIED.
fillx = ip_xfill.
ELSE.
CLEAR fillx WITH &apos;X&apos;.
IF ip_fill-filltype IS INITIAL.
CLEAR fillx-filltype.
ENDIF.
clear_initial_colorxfields ip_fill-fgcolor fillx-fgcolor.
clear_initial_colorxfields ip_fill-bgcolor fillx-bgcolor.
ENDIF.
MOVE-CORRESPONDING ip_fill TO complete_style-fill.
MOVE-CORRESPONDING fillx TO complete_stylex-fill.
ENDIF.
IF ip_borders IS SUPPLIED.
DATA: bordersx LIKE ip_xborders.
IF ip_xborders IS SUPPLIED.
bordersx = ip_xborders.
ELSE.
CLEAR bordersx WITH &apos;X&apos;.
IF ip_borders-allborders-border_style IS INITIAL.
CLEAR bordersx-allborders-border_style.
ENDIF.
IF ip_borders-diagonal-border_style IS INITIAL.
CLEAR bordersx-diagonal-border_style.
ENDIF.
IF ip_borders-down-border_style IS INITIAL.
CLEAR bordersx-down-border_style.
ENDIF.
IF ip_borders-left-border_style IS INITIAL.
CLEAR bordersx-left-border_style.
ENDIF.
IF ip_borders-right-border_style IS INITIAL.
CLEAR bordersx-right-border_style.
ENDIF.
IF ip_borders-top-border_style IS INITIAL.
CLEAR bordersx-top-border_style.
ENDIF.
clear_initial_colorxfields ip_borders-allborders-border_color bordersx-allborders-border_color.
clear_initial_colorxfields ip_borders-diagonal-border_color bordersx-diagonal-border_color.
clear_initial_colorxfields ip_borders-down-border_color bordersx-down-border_color.
clear_initial_colorxfields ip_borders-left-border_color bordersx-left-border_color.
clear_initial_colorxfields ip_borders-right-border_color bordersx-right-border_color.
clear_initial_colorxfields ip_borders-top-border_color bordersx-top-border_color.
ENDIF.
MOVE-CORRESPONDING ip_borders TO complete_style-borders.
MOVE-CORRESPONDING bordersx TO complete_stylex-borders.
ENDIF.
IF ip_alignment IS SUPPLIED.
DATA: alignmentx LIKE ip_xalignment.
IF ip_xalignment IS SUPPLIED.
alignmentx = ip_xalignment.
ELSE.
CLEAR alignmentx WITH &apos;X&apos;.
IF ip_alignment-horizontal IS INITIAL.
CLEAR alignmentx-horizontal.
ENDIF.
IF ip_alignment-vertical IS INITIAL.
CLEAR alignmentx-vertical.
ENDIF.
ENDIF.
MOVE-CORRESPONDING ip_alignment TO complete_style-alignment.
MOVE-CORRESPONDING alignmentx TO complete_stylex-alignment.
ENDIF.
IF ip_protection IS SUPPLIED.
MOVE-CORRESPONDING ip_protection TO complete_style-protection.
IF ip_xprotection IS SUPPLIED.
MOVE-CORRESPONDING ip_xprotection TO complete_stylex-protection.
ELSE.
IF ip_protection-hidden IS NOT INITIAL.
complete_stylex-protection-hidden = &apos;X&apos;.
ENDIF.
IF ip_protection-locked IS NOT INITIAL.
complete_stylex-protection-locked = &apos;X&apos;.
ENDIF.
ENDIF.
ENDIF.
move_supplied_borders : borders_allborders borders-allborders,
borders_diagonal borders-diagonal ,
borders_down borders-down ,
borders_left borders-left ,
borders_right borders-right ,
borders_top borders-top .
DEFINE move_supplied_singlestyles.
if ip_&amp;1 is supplied.
complete_style-&amp;2 = ip_&amp;1.
complete_stylex-&amp;2 = &apos;X&apos;.
endif.
END-OF-DEFINITION.
move_supplied_singlestyles: number_format_format_code number_format-format_code,
font_bold font-bold,
font_color font-color,
font_color_rgb font-color-rgb,
font_color_indexed font-color-indexed,
font_color_theme font-color-theme,
font_color_tint font-color-tint,
font_family font-family,
font_italic font-italic,
font_name font-name,
font_scheme font-scheme,
font_size font-size,
font_strikethrough font-strikethrough,
font_underline font-underline,
font_underline_mode font-underline_mode,
fill_filltype fill-filltype,
fill_rotation fill-rotation,
fill_fgcolor fill-fgcolor,
fill_fgcolor_rgb fill-fgcolor-rgb,
fill_fgcolor_indexed fill-fgcolor-indexed,
fill_fgcolor_theme fill-fgcolor-theme,
fill_fgcolor_tint fill-fgcolor-tint,
fill_bgcolor fill-bgcolor,
fill_bgcolor_rgb fill-bgcolor-rgb,
fill_bgcolor_indexed fill-bgcolor-indexed,
fill_bgcolor_theme fill-bgcolor-theme,
fill_bgcolor_tint fill-bgcolor-tint,
borders_diagonal_mode borders-diagonal_mode,
alignment_horizontal alignment-horizontal,
alignment_vertical alignment-vertical,
alignment_textrotation alignment-textrotation,
alignment_wraptext alignment-wraptext,
alignment_shrinktofit alignment-shrinktofit,
alignment_indent alignment-indent,
protection_hidden protection-hidden,
protection_locked protection-locked,
borders_allborders_style borders-allborders-border_style,
borders_allborders_color borders-allborders-border_color,
borders_allbo_color_rgb borders-allborders-border_color-rgb,
borders_allbo_color_indexed borders-allborders-border_color-indexed,
borders_allbo_color_theme borders-allborders-border_color-theme,
borders_allbo_color_tint borders-allborders-border_color-tint,
borders_diagonal_style borders-diagonal-border_style,
borders_diagonal_color borders-diagonal-border_color,
borders_diagonal_color_rgb borders-diagonal-border_color-rgb,
borders_diagonal_color_inde borders-diagonal-border_color-indexed,
borders_diagonal_color_them borders-diagonal-border_color-theme,
borders_diagonal_color_tint borders-diagonal-border_color-tint,
borders_down_style borders-down-border_style,
borders_down_color borders-down-border_color,
borders_down_color_rgb borders-down-border_color-rgb,
borders_down_color_indexed borders-down-border_color-indexed,
borders_down_color_theme borders-down-border_color-theme,
borders_down_color_tint borders-down-border_color-tint,
borders_left_style borders-left-border_style,
borders_left_color borders-left-border_color,
borders_left_color_rgb borders-left-border_color-rgb,
borders_left_color_indexed borders-left-border_color-indexed,
borders_left_color_theme borders-left-border_color-theme,
borders_left_color_tint borders-left-border_color-tint,
borders_right_style borders-right-border_style,
borders_right_color borders-right-border_color,
borders_right_color_rgb borders-right-border_color-rgb,
borders_right_color_indexed borders-right-border_color-indexed,
borders_right_color_theme borders-right-border_color-theme,
borders_right_color_tint borders-right-border_color-tint,
borders_top_style borders-top-border_style,
borders_top_color borders-top-border_color,
borders_top_color_rgb borders-top-border_color-rgb,
borders_top_color_indexed borders-top-border_color-indexed,
borders_top_color_theme borders-top-border_color-theme,
borders_top_color_tint borders-top-border_color-tint.
* Now we have a completly filled styles.
* This can be used to get the guid
* Return guid if requested. Might be used if copy&amp;paste of styles is requested
ep_guid = me-&gt;excel-&gt;get_static_cellstyle_guid( ip_cstyle_complete = complete_style
ip_cstylex_complete = complete_stylex ).
me-&gt;set_cell_style( ip_column = ip_column
ip_row = ip_row
ip_style = ep_guid ).
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CONSTRUCTOR" SCONAME="IP_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Ref to parent document" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CONSTRUCTOR" SCONAME="IP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="2" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CONSTRUCTOR" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="2" EDITORDER="1 "/>
<source>method CONSTRUCTOR.
DATA: lv_title TYPE zexcel_sheet_title.
me-&gt;excel = ip_excel.
CALL FUNCTION &apos;GUID_CREATE&apos;
IMPORTING
ev_guid_16 = me-&gt;guid.
IF ip_title IS NOT INITIAL.
lv_title = ip_title.
ELSE.
* lv_title = me-&gt;guid. &quot; del issue #154 - Names of worksheets
lv_title = me-&gt;generate_title( ). &quot; ins issue #154 - Names of worksheets
ENDIF.
me-&gt;set_title( ip_title = lv_title ).
CREATE OBJECT sheet_setup.
CREATE OBJECT conditional_styles.
CREATE OBJECT data_validations.
CREATE OBJECT tables.
CREATE OBJECT ranges. &quot; issue #163
CREATE OBJECT drawings
EXPORTING
ip_type = zcl_excel_drawing=&gt;type_image.
CREATE OBJECT charts
EXPORTING
ip_type = zcl_excel_drawing=&gt;type_chart.
me-&gt;zif_excel_sheet_protection~initialize( ).
me-&gt;zif_excel_sheet_properties~initialize( ).
CREATE OBJECT hyperlinks.
* initialize active cell coordinates
active_cell-cell_row = 1.
active_cell-cell_column = 1.
* inizialize dimension range
lower_cell-cell_row = 1.
lower_cell-cell_column = 1.
upper_cell-cell_row = 1.
upper_cell-cell_column = 1.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="DELETE_MERGE" VERSION="1" LANGU="E" DESCRIPT="Delete the used merges" EXPOSURE="2" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method DELETE_MERGE.
DELETE sheet_content_merge INDEX 1.
DELETE sheet_content_merge INDEX 1.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANES" VERSION="1" LANGU="E" DESCRIPT="Freeze panes for supplied number of rows and/or columns" EXPOSURE="2" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANES" SCONAME="IP_NUM_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="Number of columns to freeze (starting from left-most)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANES" SCONAME="IP_NUM_ROWS" VERSION="1" LANGU="E" DESCRIPT="Number of rows to freeze (starting from top-most)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="FREEZE_PANES" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method FREEZE_PANES.
data: lv_xsplit type i,
lv_ysplit type i.
IF ip_num_columns IS NOT SUPPLIED AND ip_num_rows IS NOT SUPPLIED.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Pleas provide number of rows and/or columns to freeze&apos;.
ENDIF.
IF ip_num_columns IS SUPPLIED AND ip_num_columns &lt;= 0.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Number of columns to freeze should be positive&apos;.
ENDIF.
IF ip_num_rows IS SUPPLIED AND ip_num_rows &lt;= 0.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Number of rows to freeze should be positive&apos;.
ENDIF.
freeze_pane_cell_column = ip_num_columns + 1.
freeze_pane_cell_row = ip_num_rows + 1.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GENERATE_TITLE" VERSION="1" LANGU="E" DESCRIPT="Generate title for worksheet (called if none is supplied )" EXPOSURE="0" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GENERATE_TITLE" SCONAME="EP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE"/>
<source>method GENERATE_TITLE.
DATA: lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
errormessage TYPE string.
DATA: t_titles TYPE HASHED TABLE OF zexcel_sheet_title WITH UNIQUE KEY table_line,
title TYPE zexcel_sheet_title,
sheetnumber TYPE i.
* Get list of currently used titles
lo_worksheets_iterator = me-&gt;excel-&gt;get_worksheets_iterator( ).
WHILE lo_worksheets_iterator-&gt;has_next( ) = abap_true.
lo_worksheet ?= lo_worksheets_iterator-&gt;get_next( ).
title = lo_worksheet-&gt;get_title( ).
INSERT title INTO TABLE t_titles.
ADD 1 TO sheetnumber.
ENDWHILE.
* Now build sheetnumber. Increase counter until we hit a number that is not used so far
ADD 1 TO sheetnumber. &quot; Start counting with next number
DO.
title = sheetnumber.
SHIFT title LEFT DELETING LEADING space.
CONCATENATE &apos;Sheet&apos;(001) title INTO ep_title.
INSERT ep_title INTO TABLE t_titles.
IF sy-subrc = 0. &quot; Title not used so far --&gt; take it
EXIT.
ENDIF.
ADD 1 TO sheetnumber.
ENDDO.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_ACTIVE_CELL" VERSION="1" LANGU="E" DESCRIPT="Get used range dimension" EXPOSURE="2" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_ACTIVE_CELL" SCONAME="EP_ACTIVE_CELL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_ACTIVE_CELL" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_ACTIVE_CELL.
DATA: lv_active_column TYPE zexcel_cell_column_alpha,
lv_active_row TYPE string.
lv_active_column = zcl_excel_common=&gt;convert_column2alpha( active_cell-cell_column ).
lv_active_row = active_cell-cell_row.
SHIFT lv_active_row RIGHT DELETING TRAILING space.
SHIFT lv_active_row LEFT DELETING LEADING space.
CONCATENATE lv_active_column lv_active_row INTO ep_active_cell.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_CELL" VERSION="1" LANGU="E" DESCRIPT="Get cell value" EXPOSURE="2" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_CELL" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_CELL" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_CELL" SCONAME="EP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_CELL" SCONAME="EP_RC" VERSION="1" LANGU="E" DESCRIPT="Return Value of ABAP Statements" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="SYSUBRC"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_CELL" SCONAME="EP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_CELL" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_CELL" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_CELL.
DATA: lv_column TYPE zexcel_cell_column,
ls_sheet_content TYPE zexcel_s_cell_data.
FIELD-SYMBOLS: &lt;fs_sheet_content&gt; TYPE zexcel_s_cell_data.
lv_column = zcl_excel_common=&gt;convert_column2int( ip_column ).
READ TABLE sheet_content INTO ls_sheet_content WITH TABLE KEY cell_row = ip_row
cell_column = lv_column.
ep_rc = sy-subrc.
ep_value = ls_sheet_content-cell_value.
ep_guid = ls_sheet_content-cell_style. &quot; issue 139 - added this to be used for columnwidth calculation
&quot; Addition to solve issue #120, contribution by Stefan Schm#ƒÂ#cker
DATA: style_iterator TYPE REF TO cl_object_collection_iterator,
style TYPE REF TO zcl_excel_style.
IF ep_style IS REQUESTED.
style_iterator = me-&gt;excel-&gt;get_styles_iterator( ).
WHILE style_iterator-&gt;has_next( ) = &apos;X&apos;.
style ?= style_iterator-&gt;get_next( ).
IF style-&gt;get_guid( ) = ls_sheet_content-cell_style.
ep_style = style.
EXIT.
ENDIF.
ENDWHILE.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_COLUMN_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Get column dimension at a specific column" EXPOSURE="2" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_COLUMN_DIMENSION" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_COLUMN_DIMENSION" SCONAME="R_COLUMN_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_COLUMN_DIMENSION" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_COLUMN_DIMENSION.
FIELD-SYMBOLS: &lt;fs_column_dimension&gt; LIKE LINE OF column_dimensions.
DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. &quot; issue #155 - less restrictive typing for ip_column
lv_column_alpha = zcl_excel_common=&gt;convert_column2alpha( ip_column ).&quot; issue #155 - less restrictive typing for ip_column
READ TABLE me-&gt;column_dimensions ASSIGNING &lt;fs_column_dimension&gt;
WITH KEY column = lv_column_alpha. &quot; issue #155 - less restrictive typing for ip_column
IF NOT &lt;fs_column_dimension&gt; IS ASSIGNED.
CREATE OBJECT r_column_dimension
EXPORTING
ip_index = lv_column_alpha &quot; issue #155 - less restrictive typing for ip_column
ip_excel = me-&gt;excel &quot; issue #157 - Allow style for columns
ip_worksheet = me. &quot; issue #157 - Allow style for columns
APPEND INITIAL LINE TO me-&gt;column_dimensions ASSIGNING &lt;fs_column_dimension&gt;.
&lt;fs_column_dimension&gt;-column = lv_column_alpha. &quot; issue #155 - less restrictive typing for ip_column
&lt;fs_column_dimension&gt;-column_dimension = r_column_dimension.
ELSE.
r_column_dimension = &lt;fs_column_dimension&gt;-column_dimension.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_COLUMN_DIMENSIONS" VERSION="1" LANGU="E" DESCRIPT="Get column dimensions" EXPOSURE="2" STATE="1" EDITORDER="18 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_COLUMN_DIMENSIONS" SCONAME="R_COLUMN_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Collection of column dimensions" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_T_WORKSHEET_COLUMNDIME"/>
<source>method GET_COLUMN_DIMENSIONS.
r_column_dimension[] = me-&gt;column_dimensions[].
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_COND_STYLES_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get conditional styles iterator" EXPOSURE="2" STATE="1" EDITORDER="19 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_COND_STYLES_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_COND_STYLES_ITERATOR.
eo_iterator = me-&gt;conditional_styles-&gt;get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DATA_VALIDATIONS_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get conditional styles iterator" EXPOSURE="2" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DATA_VALIDATIONS_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_DATA_VALIDATIONS_ITERATOR.
eo_iterator = me-&gt;data_validations-&gt;get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DATA_VALIDATIONS_SIZE" VERSION="1" LANGU="E" DESCRIPT="Get the number of data validation objects" EXPOSURE="2" STATE="1" EDITORDER="21 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DATA_VALIDATIONS_SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method GET_DATA_VALIDATIONS_SIZE.
ep_size = me-&gt;data_validations-&gt;size( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DEFAULT_COLUMN_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Get column dimension at a specific column" EXPOSURE="2" STATE="1" EDITORDER="22 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DEFAULT_COLUMN_DIMENSION" SCONAME="R_COLUMN_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME"/>
<source>method GET_DEFAULT_COLUMN_DIMENSION.
IF me-&gt;default_column_dimension IS NOT BOUND.
CREATE OBJECT me-&gt;default_column_dimension
EXPORTING
ip_index = &apos;A&apos; &quot; ????
ip_worksheet = me
ip_excel = me-&gt;excel.
ENDIF.
r_column_dimension = me-&gt;default_column_dimension.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DEFAULT_EXCEL_DATE_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Gets default date format" EXPOSURE="2" STATE="1" EDITORDER="23 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DEFAULT_EXCEL_DATE_FORMAT" SCONAME="EP_DEFAULT_EXCEL_DATE_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Default date format" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT"/>
<source>method GET_DEFAULT_EXCEL_DATE_FORMAT.
CONSTANTS: c_lang_e TYPE lang VALUE &apos;E&apos;.
IF default_excel_date_format IS NOT INITIAL.
ep_default_excel_date_format = default_excel_date_format.
RETURN.
ENDIF.
&quot;try to get defaults
TRY.
cl_abap_datfm=&gt;get_date_format_des( EXPORTING im_langu = c_lang_e
IMPORTING ex_dateformat = default_excel_date_format ).
CATCH cx_abap_datfm_format_unknown.
ENDTRY.
&quot; and fallback to fixed format
IF default_excel_date_format IS INITIAL.
default_excel_date_format = zcl_excel_style_number_format=&gt;c_format_date_ddmmyyyydot.
ENDIF.
ep_default_excel_date_format = default_excel_date_format.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DEFAULT_EXCEL_TIME_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Gets default time format" EXPOSURE="2" STATE="1" EDITORDER="24 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DEFAULT_EXCEL_TIME_FORMAT" SCONAME="EP_DEFAULT_EXCEL_TIME_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Default date format" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT"/>
<source>method GET_DEFAULT_EXCEL_TIME_FORMAT.
DATA: l_timefm TYPE xutimefm.
IF default_excel_time_format IS NOT INITIAL.
ep_default_excel_time_format = default_excel_time_format.
RETURN.
ENDIF.
* Let&apos;s get default
l_timefm = cl_abap_timefm=&gt;get_environment_timefm( ).
CASE l_timefm.
WHEN 0.
*0 24 Hour Format (Example: 12:05:10)
default_excel_time_format = zcl_excel_style_number_format=&gt;c_format_date_time6.
WHEN 1.
*1 12 Hour Format (Example: 12:05:10 PM)
default_excel_time_format = zcl_excel_style_number_format=&gt;c_format_date_time2.
WHEN 2.
*2 12 Hour Format (Example: 12:05:10 pm) for now all the same. no chnage upper lower
default_excel_time_format = zcl_excel_style_number_format=&gt;c_format_date_time2.
WHEN 3.
*3 Hours from 0 to 11 (Example: 00:05:10 PM) for now all the same. no chnage upper lower
default_excel_time_format = zcl_excel_style_number_format=&gt;c_format_date_time2.
WHEN 4.
*4 Hours from 0 to 11 (Example: 00:05:10 pm) for now all the same. no chnage upper lower
default_excel_time_format = zcl_excel_style_number_format=&gt;c_format_date_time2.
WHEN OTHERS.
&quot; and fallback to fixed format
default_excel_time_format = zcl_excel_style_number_format=&gt;c_format_date_time6.
ENDCASE.
ep_default_excel_time_format = default_excel_time_format.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DEFAULT_ROW_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Get column dimension at a specific column" EXPOSURE="2" STATE="1" EDITORDER="25 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DEFAULT_ROW_DIMENSION" SCONAME="R_ROW_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_ROWDIMENSI"/>
<source>method GET_DEFAULT_ROW_DIMENSION.
IF me-&gt;default_row_dimension IS NOT BOUND.
CREATE OBJECT me-&gt;default_row_dimension.
ENDIF.
r_row_dimension = me-&gt;default_row_dimension.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DIMENSION_RANGE" VERSION="1" LANGU="E" DESCRIPT="Get used range dimension" EXPOSURE="2" STATE="1" EDITORDER="26 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DIMENSION_RANGE" SCONAME="EP_DIMENSION_RANGE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DIMENSION_RANGE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_DIMENSION_RANGE.
me-&gt;update_dimension_range( ).
IF upper_cell EQ lower_cell. &quot;only one cell
&quot; Worksheet not filled
* IF upper_cell-cell_coords = &apos;0&apos;.
IF upper_cell-cell_coords IS INITIAL.
ep_dimension_range = &apos;A1&apos;.
ELSE.
ep_dimension_range = upper_cell-cell_coords.
ENDIF.
ELSE.
CONCATENATE upper_cell-cell_coords &apos;:&apos; lower_cell-cell_coords INTO ep_dimension_range.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DRAWINGS" VERSION="1" LANGU="E" DESCRIPT="Gets drawing attached to the sheet" EXPOSURE="2" STATE="1" EDITORDER="27 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DRAWINGS" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DRAWINGS" SCONAME="R_DRAWINGS" VERSION="1" LANGU="E" DESCRIPT="Drawings collection" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWINGS"/>
<source>method GET_DRAWINGS.
DATA: lo_drawing TYPE REF TO zcl_excel_drawing,
lo_iterator TYPE REF TO cl_object_collection_iterator.
CASE ip_type.
WHEN zcl_excel_drawing=&gt;type_image.
r_drawings = drawings.
WHEN zcl_excel_drawing=&gt;type_chart.
r_drawings = charts.
WHEN space.
CREATE OBJECT r_drawings
EXPORTING
ip_type = &apos;&apos;.
lo_iterator = drawings-&gt;get_iterator( ).
WHILE lo_iterator-&gt;has_next( ) = abap_true.
lo_drawing ?= lo_iterator-&gt;get_next( ).
r_drawings-&gt;include( lo_drawing ).
ENDWHILE.
lo_iterator = charts-&gt;get_iterator( ).
WHILE lo_iterator-&gt;has_next( ) = abap_true.
lo_drawing ?= lo_iterator-&gt;get_next( ).
r_drawings-&gt;include( lo_drawing ).
ENDWHILE.
WHEN OTHERS.
ENDCASE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DRAWINGS_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get iterator for drawings collection" EXPOSURE="2" STATE="1" EDITORDER="28 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DRAWINGS_ITERATOR" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_DRAWINGS_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_DRAWINGS_ITERATOR.
CASE ip_type.
WHEN zcl_excel_drawing=&gt;type_image.
eo_iterator = drawings-&gt;get_iterator( ).
WHEN zcl_excel_drawing=&gt;type_chart.
eo_iterator = charts-&gt;get_iterator( ).
ENDCASE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_FREEZE_CELL" VERSION="1" LANGU="E" DESCRIPT="Gets the coordinates of cell determining freeze panes" EXPOSURE="2" STATE="1" EDITORDER="29 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_FREEZE_CELL" SCONAME="EP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_FREEZE_CELL" SCONAME="EP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<source>method GET_FREEZE_CELL.
ep_row = me-&gt;freeze_pane_cell_row.
ep_column = me-&gt;freeze_pane_cell_column.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_GUID" VERSION="1" LANGU="E" DESCRIPT="Get sheet guid" EXPOSURE="2" STATE="1" EDITORDER="30 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="GUID in &apos;RAW&apos; format" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="UUID"/>
<source>method GET_GUID.
ep_guid = me-&gt;guid.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HIGHEST_COLUMN" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="31 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HIGHEST_COLUMN" SCONAME="R_HIGHEST_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HIGHEST_COLUMN" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_HIGHEST_COLUMN.
me-&gt;update_dimension_range( ).
r_highest_column = me-&gt;lower_cell-cell_column.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HIGHEST_ROW" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="32 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HIGHEST_ROW" SCONAME="R_HIGHEST_ROW" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT4"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HIGHEST_ROW" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_HIGHEST_ROW.
me-&gt;update_dimension_range( ).
r_highest_row = me-&gt;lower_cell-cell_row.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HYPERLINKS_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get iterator for links collection" EXPOSURE="2" STATE="1" EDITORDER="33 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HYPERLINKS_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_HYPERLINKS_ITERATOR.
eo_iterator = hyperlinks-&gt;get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HYPERLINKS_SIZE" VERSION="1" LANGU="E" DESCRIPT="Gets the size of links collection" EXPOSURE="2" STATE="1" EDITORDER="34 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_HYPERLINKS_SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method GET_HYPERLINKS_SIZE.
ep_size = hyperlinks-&gt;size( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_MERGE" VERSION="1" LANGU="E" DESCRIPT="Get the merge range" EXPOSURE="2" STATE="1" EDITORDER="35 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_MERGE" SCONAME="MERGE_RANGE" VERSION="1" LANGU="E" DESCRIPT="Table of Strings" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING_TABLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_MERGE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_MERGE.
DATA: lv_column_start TYPE string,
lv_column_end TYPE string,
lv_row TYPE string,
lv_index TYPE sy-tabix,
ls_sheet_content TYPE zexcel_s_cell_data,
range_from TYPE string,
range_to TYPE string,
lv_merge_range TYPE string,
lv_count TYPE string.
FIELD-SYMBOLS: &lt;fs_sheet_content&gt; TYPE zexcel_s_cell_data.
DESCRIBE TABLE sheet_content_merge LINES lv_count.
WHILE lv_count GT lv_index.
* LOOP AT sheet_content_merge ASSIGNING &lt;fs_sheet_content&gt;.
lv_index = lv_index + 1.
READ TABLE sheet_content_merge ASSIGNING &lt;fs_sheet_content&gt; INDEX lv_index.
lv_column_start = zcl_excel_common=&gt;convert_column2alpha( &lt;fs_sheet_content&gt;-cell_column ).
lv_row = &lt;fs_sheet_content&gt;-cell_row.
SHIFT lv_column_start RIGHT DELETING TRAILING space.
SHIFT lv_column_start LEFT DELETING LEADING space.
SHIFT lv_row RIGHT DELETING TRAILING space.
SHIFT lv_row LEFT DELETING LEADING space.
CONCATENATE lv_column_start lv_row
INTO range_from.
lv_index = lv_index + 1.
READ TABLE sheet_content_merge ASSIGNING &lt;fs_sheet_content&gt; INDEX lv_index.
lv_column_end = zcl_excel_common=&gt;convert_column2alpha( &lt;fs_sheet_content&gt;-cell_column ).
lv_row = &lt;fs_sheet_content&gt;-cell_row.
SHIFT lv_column_end RIGHT DELETING TRAILING space.
SHIFT lv_column_end LEFT DELETING LEADING space.
SHIFT lv_row RIGHT DELETING TRAILING space.
SHIFT lv_row LEFT DELETING LEADING space.
CONCATENATE lv_column_end lv_row
INTO range_to.
CONCATENATE range_from range_to INTO lv_merge_range
SEPARATED BY &apos;:&apos;.
APPEND lv_merge_range TO merge_range.
ENDWHILE.
* ENDLOOP.
* READ TABLE sheet_content_merge ASSIGNING &lt;fs_sheet_content&gt; INDEX 1.
* IF sy-subrc EQ 0 AND &lt;fs_sheet_content&gt; IS ASSIGNED.
* lv_column_start = zcl_excel_common=&gt;convert_column2alpha( &lt;fs_sheet_content&gt;-cell_column ).
* lv_row = &lt;fs_sheet_content&gt;-cell_row.
* SHIFT lv_column_start RIGHT DELETING TRAILING space.
* SHIFT lv_column_start LEFT DELETING LEADING space.
* SHIFT lv_row RIGHT DELETING TRAILING space.
* SHIFT lv_row LEFT DELETING LEADING space.
* CONCATENATE lv_column_start lv_row
* INTO range_from.
* ENDIF.
* READ TABLE sheet_content_merge ASSIGNING &lt;fs_sheet_content&gt; INDEX 2.
* IF sy-subrc EQ 0 AND &lt;fs_sheet_content&gt; IS ASSIGNED.
* lv_column_end = zcl_excel_common=&gt;convert_column2alpha( &lt;fs_sheet_content&gt;-cell_column ).
* SHIFT lv_column_end RIGHT DELETING TRAILING space.
* SHIFT lv_column_end LEFT DELETING LEADING space.
* CONCATENATE lv_column_end lv_row
* INTO range_to.
* ENDIF.
* IF range_from NE space AND range_to NE space.
* CONCATENATE range_from range_to INTO ep_merge_range
* SEPARATED BY &apos;:&apos;.
* ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_RANGES_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get ranges iterator" EXPOSURE="2" STATE="1" EDITORDER="36 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_RANGES_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_RANGES_ITERATOR.
eo_iterator = me-&gt;ranges-&gt;get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_ROW_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Get column dimension at a specific column" EXPOSURE="2" STATE="1" EDITORDER="37 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_ROW_DIMENSION" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_ROW_DIMENSION" SCONAME="R_ROW_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_ROWDIMENSI"/>
<source>method GET_ROW_DIMENSION.
FIELD-SYMBOLS: &lt;fs_row_dimension&gt; LIKE LINE OF row_dimensions.
READ TABLE me-&gt;row_dimensions ASSIGNING &lt;fs_row_dimension&gt;
WITH KEY row = ip_row.
IF NOT &lt;fs_row_dimension&gt; IS ASSIGNED.
CREATE OBJECT r_row_dimension
EXPORTING
ip_index = ip_row.
APPEND INITIAL LINE TO me-&gt;row_dimensions ASSIGNING &lt;fs_row_dimension&gt;.
&lt;fs_row_dimension&gt;-row = ip_row.
&lt;fs_row_dimension&gt;-row_dimension = r_row_dimension.
ELSE.
r_row_dimension = &lt;fs_row_dimension&gt;-row_dimension.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_ROW_DIMENSIONS" VERSION="1" LANGU="E" DESCRIPT="Get column dimensions" EXPOSURE="2" STATE="1" EDITORDER="38 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_ROW_DIMENSIONS" SCONAME="R_ROW_DIMENSION" VERSION="1" LANGU="E" DESCRIPT="Collection of column dimensions" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_T_WORKSHEET_ROWDIMENSIO"/>
<source>method GET_ROW_DIMENSIONS.
r_row_dimension[] = me-&gt;row_dimensions[].
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TABCOLOR" VERSION="1" LANGU="E" DESCRIPT="get tabcolor" EXPOSURE="2" STATE="1" EDITORDER="39 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TABCOLOR" SCONAME="EV_TABCOLOR" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_TABCOLOR"/>
<source>method GET_TABCOLOR.
ev_tabcolor = me-&gt;tabcolor.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TABLES_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get iterator for tables collection" EXPOSURE="2" STATE="1" EDITORDER="40 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TABLES_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_TABLES_ITERATOR.
eo_iterator = tables-&gt;if_object_collection~get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TABLES_SIZE" VERSION="1" LANGU="E" DESCRIPT="Gets the size of tables collection" EXPOSURE="2" STATE="1" EDITORDER="41 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TABLES_SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" DESCRIPT="Size" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method GET_TABLES_SIZE.
ep_size = tables-&gt;if_object_collection~size( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TITLE" VERSION="1" LANGU="E" DESCRIPT="Get WorkSheet Title" EXPOSURE="2" STATE="1" EDITORDER="42 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TITLE" SCONAME="IP_ESCAPED" VERSION="1" LANGU="E" DESCRIPT="Return escaped?" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PARVALUE="&apos;&apos;" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_TITLE" SCONAME="EP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE"/>
<source>method GET_TITLE.
DATA lv_value TYPE string.
IF ip_escaped EQ abap_true.
lv_value = me-&gt;title.
ep_title = zcl_excel_common=&gt;escape_string( lv_value ).
ELSE.
ep_title = me-&gt;title.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_VALUE_TYPE" VERSION="1" LANGU="E" DESCRIPT="Get abap type kind and apply conversion routine" EXPOSURE="0" STATE="1" EDITORDER="43 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_VALUE_TYPE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_VALUE_TYPE" SCONAME="EP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="GET_VALUE_TYPE" SCONAME="EP_VALUE_TYPE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_TYPEKIND"/>
<source>method GET_VALUE_TYPE.
DATA: lo_addit TYPE REF TO cl_abap_elemdescr,
ls_dfies TYPE dfies,
l_function TYPE funcname,
l_value(50) TYPE c.
ep_value = ip_value.
ep_value_type = cl_abap_typedescr=&gt;typekind_string. &quot; Thats our default if something goes wrong.
TRY.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_data( ip_value ).
CATCH cx_sy_move_cast_error.
CLEAR lo_addit.
ENDTRY.
IF lo_addit IS BOUND.
lo_addit-&gt;get_ddic_field( RECEIVING p_flddescr = ls_dfies
EXCEPTIONS not_found = 1
no_ddic_type = 2
OTHERS = 3 ) .
IF sy-subrc = 0.
ep_value_type = ls_dfies-inttype.
IF ls_dfies-convexit IS NOT INITIAL.
* We need to convert with output conversion function
CONCATENATE &apos;CONVERSION_EXIT_&apos; ls_dfies-convexit &apos;_OUTPUT&apos; INTO l_function.
SELECT SINGLE funcname INTO l_function
FROM tfdir
WHERE funcname = l_function.
IF sy-subrc = 0.
CALL FUNCTION l_function
EXPORTING
input = ip_value
IMPORTING
* LONG_TEXT =
output = l_value
* SHORT_TEXT =
EXCEPTIONS
OTHERS = 1.
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
ep_value = l_value.
ENDIF.
ENDIF.
ENDIF.
ELSE.
ep_value_type = lo_addit-&gt;get_data_type_kind( ip_value ).
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="PRINT_TITLE_SET_RANGE" VERSION="1" LANGU="E" DESCRIPT="Update range for print title" EXPOSURE="0" STATE="1" EDITORDER="58 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method PRINT_TITLE_SET_RANGE.
*--------------------------------------------------------------------*
* issue#235 - repeat rows/columns
* - Stefan Schmöcker, 2012-12-02
*--------------------------------------------------------------------*
DATA: lo_range_iterator TYPE REF TO cl_object_collection_iterator,
lo_range TYPE REF TO zcl_excel_range,
lv_repeat_range_sheetname TYPE string,
lv_repeat_range_col TYPE string,
lv_row_char_from TYPE char10,
lv_row_char_to TYPE char10,
lv_repeat_range_row TYPE string,
lv_repeat_range TYPE string.
*--------------------------------------------------------------------*
* Get range that represents printarea
* if non-existant, create it
*--------------------------------------------------------------------*
lo_range_iterator = me-&gt;get_ranges_iterator( ).
WHILE lo_range_iterator-&gt;has_next( ) = abap_true.
lo_range ?= lo_range_iterator-&gt;get_next( ).
IF lo_range-&gt;name = zif_excel_sheet_printsettings=&gt;gcv_print_title_name.
EXIT. &quot; Found it
ENDIF.
CLEAR lo_range.
ENDWHILE.
IF me-&gt;print_title_col_from IS INITIAL AND
me-&gt;print_title_row_from IS INITIAL.
*--------------------------------------------------------------------*
* No print titles are present,
*--------------------------------------------------------------------*
IF lo_range IS BOUND.
me-&gt;ranges-&gt;remove( lo_range ).
ENDIF.
ELSE.
*--------------------------------------------------------------------*
* Print titles are present,
*--------------------------------------------------------------------*
IF lo_range IS NOT BOUND.
lo_range = me-&gt;add_new_range( ).
lo_range-&gt;name = zif_excel_sheet_printsettings=&gt;gcv_print_title_name.
ENDIF.
lv_repeat_range_sheetname = me-&gt;get_title( ).
lv_repeat_range_sheetname = zcl_excel_common=&gt;escape_string( lv_repeat_range_sheetname ).
*--------------------------------------------------------------------*
* Repeat-columns
*--------------------------------------------------------------------*
IF me-&gt;print_title_col_from IS NOT INITIAL.
CONCATENATE lv_repeat_range_sheetname
&apos;!$&apos; me-&gt;print_title_col_from
&apos;:$&apos; me-&gt;print_title_col_to
INTO lv_repeat_range_col.
ENDIF.
*--------------------------------------------------------------------*
* Repeat-rows
*--------------------------------------------------------------------*
IF me-&gt;print_title_row_from IS NOT INITIAL.
lv_row_char_from = me-&gt;print_title_row_from.
lv_row_char_to = me-&gt;print_title_row_to.
CONCATENATE &apos;!$&apos; lv_row_char_from
&apos;:$&apos; lv_row_char_to
INTO lv_repeat_range_row.
CONDENSE lv_repeat_range_row NO-GAPS.
CONCATENATE lv_repeat_range_sheetname
lv_repeat_range_row
INTO lv_repeat_range_row.
ENDIF.
*--------------------------------------------------------------------*
* Concatenate repeat-rows and columns
*--------------------------------------------------------------------*
IF lv_repeat_range_col IS INITIAL.
lv_repeat_range = lv_repeat_range_row.
ELSEIF lv_repeat_range_row IS INITIAL.
lv_repeat_range = lv_repeat_range_col.
ELSE.
CONCATENATE lv_repeat_range_col lv_repeat_range_row
INTO lv_repeat_range SEPARATED BY &apos;,&apos;.
ENDIF.
lo_range-&gt;set_range_value( lv_repeat_range ).
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" VERSION="1" LANGU="E" DESCRIPT="Set cell value" EXPOSURE="2" STATE="1" EDITORDER="44 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="IP_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Cell Formula" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_FORMULA" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="IP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="IP_HYPERLINK" VERSION="1" LANGU="E" DESCRIPT="Hyperlink" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_HYPERLINK" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="IP_DATA_TYPE" VERSION="1" LANGU="E" DESCRIPT="Cell data type" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_DATA_TYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="IP_ABAP_TYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_TYPEKIND" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_CELL.
DATA: lv_column TYPE zexcel_cell_column,
ls_sheet_content TYPE zexcel_s_cell_data,
lv_row_alpha TYPE string,
lv_col_alpha TYPE zexcel_cell_column_alpha,
lv_value TYPE zexcel_cell_value,
lv_data_type TYPE zexcel_cell_data_type,
lv_value_type TYPE abap_typekind,
lo_style TYPE REF TO zcl_excel_style,
lv_style_guid TYPE zexcel_cell_style,
lo_addit TYPE REF TO cl_abap_elemdescr,
lo_value TYPE REF TO data,
lo_value_new TYPE REF TO data.
FIELD-SYMBOLS: &lt;fs_sheet_content&gt; TYPE zexcel_s_cell_data,
&lt;fs_numeric&gt; TYPE numeric,
&lt;fs_date&gt; TYPE d,
&lt;fs_time&gt; TYPE t,
&lt;fs_value&gt; TYPE simple.
IF ip_value IS NOT SUPPLIED AND ip_formula IS NOT SUPPLIED.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Please provide the value or formula&apos;.
ENDIF.
* Begin of change issue #152 - don&apos;t touch exisiting style if only value is passed
* lv_style_guid = ip_style.
lv_column = zcl_excel_common=&gt;convert_column2int( ip_column ).
READ TABLE sheet_content ASSIGNING &lt;fs_sheet_content&gt; WITH TABLE KEY cell_row = ip_row &quot; Changed to access via table key , Stefan Schmöcker, 2013-08-03
cell_column = lv_column.
IF sy-subrc = 0.
IF ip_style IS INITIAL.
&quot; If no style is provided as method-parameter and cell is found use cell&apos;s current style
lv_style_guid = &lt;fs_sheet_content&gt;-cell_style.
ELSE.
&quot; Style provided as method-parameter --&gt; use this
lv_style_guid = ip_style.
ENDIF.
ELSE.
&quot; No cell found --&gt; use supplied style even if empty
lv_style_guid = ip_style.
ENDIF.
* End of change issue #152 - don&apos;t touch exisiting style if only value is passed
IF ip_value IS SUPPLIED.
&quot;if data type is passed just write the value. Otherwise map abap type to excel and perform conversion
&quot;IP_DATA_TYPE is passed by excel reader so source types are preserved
*First we get reference into local var.
CREATE DATA lo_value LIKE ip_value.
ASSIGN lo_value-&gt;* TO &lt;fs_value&gt;.
&lt;fs_value&gt; = ip_value.
IF ip_data_type IS SUPPLIED.
IF ip_abap_type IS NOT SUPPLIED.
get_value_type( EXPORTING ip_value = ip_value
IMPORTING ep_value = &lt;fs_value&gt; ) .
ENDIF.
lv_value = &lt;fs_value&gt;.
lv_data_type = ip_data_type.
ELSE.
IF ip_abap_type IS SUPPLIED.
lv_value_type = ip_abap_type.
ELSE.
get_value_type( EXPORTING ip_value = ip_value
IMPORTING ep_value = &lt;fs_value&gt;
ep_value_type = lv_value_type ).
ENDIF.
CASE lv_value_type.
WHEN cl_abap_typedescr=&gt;typekind_int OR cl_abap_typedescr=&gt;typekind_int1 OR cl_abap_typedescr=&gt;typekind_int2.
lo_addit = cl_abap_elemdescr=&gt;get_i( ).
CREATE DATA lo_value_new TYPE HANDLE lo_addit.
ASSIGN lo_value_new-&gt;* TO &lt;fs_numeric&gt;.
IF sy-subrc = 0.
&lt;fs_numeric&gt; = &lt;fs_value&gt;.
lv_value = zcl_excel_common=&gt;number_to_excel_string( ip_value = &lt;fs_numeric&gt; ).
ENDIF.
WHEN cl_abap_typedescr=&gt;typekind_float OR cl_abap_typedescr=&gt;typekind_packed.
lo_addit = cl_abap_elemdescr=&gt;get_f( ).
CREATE DATA lo_value_new TYPE HANDLE lo_addit.
ASSIGN lo_value_new-&gt;* TO &lt;fs_numeric&gt;.
IF sy-subrc = 0.
&lt;fs_numeric&gt; = &lt;fs_value&gt;.
lv_value = zcl_excel_common=&gt;number_to_excel_string( ip_value = &lt;fs_numeric&gt; ).
ENDIF.
WHEN cl_abap_typedescr=&gt;typekind_char OR cl_abap_typedescr=&gt;typekind_string OR cl_abap_typedescr=&gt;typekind_num OR
cl_abap_typedescr=&gt;typekind_hex.
lv_value = &lt;fs_value&gt;.
lv_data_type = &apos;s&apos;.
WHEN cl_abap_typedescr=&gt;typekind_date.
lo_addit = cl_abap_elemdescr=&gt;get_d( ).
CREATE DATA lo_value_new TYPE HANDLE lo_addit.
ASSIGN lo_value_new-&gt;* TO &lt;fs_date&gt;.
IF sy-subrc = 0.
&lt;fs_date&gt; = &lt;fs_value&gt;.
lv_value = zcl_excel_common=&gt;date_to_excel_string( ip_value = &lt;fs_date&gt; ) .
ENDIF.
* Begin of change issue #152 - don&apos;t touch exisiting style if only value is passed
* Moved to end of routine - apply date-format even if other styleinformation is passed
* IF ip_style IS NOT SUPPLIED. &quot;get default date format in case parameter is initial
* lo_style = excel-&gt;add_new_style( ).
* lo_style-&gt;number_format-&gt;format_code = get_default_excel_date_format( ).
* lv_style_guid = lo_style-&gt;get_guid( ).
* ENDIF.
* End of change issue #152 - don&apos;t touch exisiting style if only value is passed
WHEN cl_abap_typedescr=&gt;typekind_time.
lo_addit = cl_abap_elemdescr=&gt;get_t( ).
CREATE DATA lo_value_new TYPE HANDLE lo_addit.
ASSIGN lo_value_new-&gt;* TO &lt;fs_time&gt;.
IF sy-subrc = 0.
&lt;fs_time&gt; = &lt;fs_value&gt;.
lv_value = zcl_excel_common=&gt;time_to_excel_string( ip_value = &lt;fs_time&gt; ).
ENDIF.
* Begin of change issue #152 - don&apos;t touch exisiting style if only value is passed
* Moved to end of routine - apply time-format even if other styleinformation is passed
* IF ip_style IS NOT SUPPLIED. &quot;get default time format for user in case parameter is initial
* lo_style = excel-&gt;add_new_style( ).
* lo_style-&gt;number_format-&gt;format_code = zcl_excel_style_number_format=&gt;c_format_date_time6.
* lv_style_guid = lo_style-&gt;get_guid( ).
* ENDIF.
* End of change issue #152 - don&apos;t touch exisiting style if only value is passed
WHEN OTHERS.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Invalid data type of input value&apos;.
ENDCASE.
ENDIF.
ENDIF.
IF ip_hyperlink IS BOUND.
ip_hyperlink-&gt;set_cell_reference( ip_column = ip_column
ip_row = ip_row ).
me-&gt;hyperlinks-&gt;add( ip_hyperlink ).
ENDIF.
* Begin of change issue #152 - don&apos;t touch exisiting style if only value is passed
* Read table moved up, so that current style may be evaluated
* lv_column = zcl_excel_common=&gt;convert_column2int( ip_column ).
* READ TABLE sheet_content ASSIGNING &lt;fs_sheet_content&gt; WITH KEY cell_row = ip_row
* cell_column = lv_column.
*
* IF sy-subrc EQ 0.
IF &lt;fs_sheet_content&gt; IS ASSIGNED.
* End of change issue #152 - don&apos;t touch exisiting style if only value is passed
&lt;fs_sheet_content&gt;-cell_value = lv_value.
&lt;fs_sheet_content&gt;-cell_formula = ip_formula.
&lt;fs_sheet_content&gt;-cell_style = lv_style_guid.
&lt;fs_sheet_content&gt;-data_type = lv_data_type.
ELSE.
ls_sheet_content-cell_row = ip_row.
ls_sheet_content-cell_column = lv_column.
ls_sheet_content-cell_value = lv_value.
ls_sheet_content-cell_formula = ip_formula.
ls_sheet_content-cell_style = lv_style_guid.
ls_sheet_content-data_type = lv_data_type.
lv_row_alpha = ip_row.
* SHIFT lv_row_alpha RIGHT DELETING TRAILING space.&quot;del #152 - replaced with condense - should be faster
* SHIFT lv_row_alpha LEFT DELETING LEADING space. &quot;del #152 - replaced with condense - should be faster
CONDENSE lv_row_alpha NO-GAPS. &quot;ins #152 - replaced 2 shifts - should be faster
lv_col_alpha = zcl_excel_common=&gt;convert_column2alpha( ip_column ). &quot; issue #155 - less restrictive typing for ip_column
CONCATENATE lv_col_alpha lv_row_alpha INTO ls_sheet_content-cell_coords. &quot; issue #155 - less restrictive typing for ip_column
INSERT ls_sheet_content INTO TABLE sheet_content ASSIGNING &lt;fs_sheet_content&gt;. &quot;ins #152 - Now &lt;fs_sheet_content&gt; always holds the data
* APPEND ls_sheet_content TO sheet_content.
* SORT sheet_content BY cell_row cell_column.
&quot; me-&gt;update_dimension_range( ).
ENDIF.
* Begin of change issue #152 - don&apos;t touch exisiting style if only value is passed
* For Date- or Timefields change the formatcode if nothing is set yet
* Enhancement option: Check if existing formatcode is a date/ or timeformat
* If not, use default
DATA: lo_format_code_datetime TYPE zexcel_number_format.
DATA: stylemapping TYPE zexcel_s_stylemapping.
CASE lv_value_type.
WHEN cl_abap_typedescr=&gt;typekind_date.
TRY.
stylemapping = me-&gt;excel-&gt;get_style_to_guid( &lt;fs_sheet_content&gt;-cell_style ).
CATCH zcx_excel .
ENDTRY.
IF stylemapping-complete_stylex-number_format-format_code IS INITIAL OR
stylemapping-complete_style-number_format-format_code IS INITIAL.
lo_format_code_datetime = zcl_excel_style_number_format=&gt;c_format_date_std.
ELSE.
lo_format_code_datetime = stylemapping-complete_style-number_format-format_code.
ENDIF.
me-&gt;change_cell_style( ip_column = ip_column
ip_row = ip_row
ip_number_format_format_code = lo_format_code_datetime ).
WHEN cl_abap_typedescr=&gt;typekind_time.
TRY.
stylemapping = me-&gt;excel-&gt;get_style_to_guid( &lt;fs_sheet_content&gt;-cell_style ).
CATCH zcx_excel .
ENDTRY.
IF stylemapping-complete_stylex-number_format-format_code IS INITIAL OR
stylemapping-complete_style-number_format-format_code IS INITIAL.
lo_format_code_datetime = zcl_excel_style_number_format=&gt;c_format_date_time6.
ELSE.
lo_format_code_datetime = stylemapping-complete_style-number_format-format_code.
ENDIF.
me-&gt;change_cell_style( ip_column = ip_column
ip_row = ip_row
ip_number_format_format_code = lo_format_code_datetime ).
ENDCASE.
* End of change issue #152 - don&apos;t touch exisiting style if only value is passed
* Fix issue #162
lv_value = ip_value.
IF lv_value CS cl_abap_char_utilities=&gt;cr_lf.
me-&gt;change_cell_style( ip_column = ip_column
ip_row = ip_row
ip_alignment_wraptext = abap_true ).
ENDIF.
* End of Fix issue #162
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Set cell formula" EXPOSURE="2" STATE="1" EDITORDER="45 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_FORMULA" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_FORMULA" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_FORMULA" SCONAME="IP_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Cell Formula" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_FORMULA"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_FORMULA" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_CELL_FORMULA.
DATA:
lv_column TYPE zexcel_cell_column,
ls_sheet_content LIKE LINE OF me-&gt;sheet_content.
FIELD-SYMBOLS:
&lt;sheet_content&gt; LIKE LINE OF me-&gt;sheet_content.
*--------------------------------------------------------------------*
* Get cell to set formula into
*--------------------------------------------------------------------*
lv_column = zcl_excel_common=&gt;convert_column2int( ip_column ).
READ TABLE me-&gt;sheet_content ASSIGNING &lt;sheet_content&gt; WITH TABLE KEY cell_row = ip_row
cell_column = lv_column.
IF sy-subrc &lt;&gt; 0. &quot; Create new entry in sheet_content if necessary
CHECK ip_formula IS INITIAL. &quot; no need to create new entry in sheet_content when no formula is passed
ls_sheet_content-cell_row = ip_row.
ls_sheet_content-cell_column = lv_column.
INSERT ls_sheet_content INTO TABLE me-&gt;sheet_content ASSIGNING &lt;sheet_content&gt;.
ENDIF.
*--------------------------------------------------------------------*
* Fieldsymbol now holds the relevant cell
*--------------------------------------------------------------------*
&lt;sheet_content&gt;-cell_formula = ip_formula.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_STYLE" VERSION="1" LANGU="E" DESCRIPT="Set cell style" EXPOSURE="2" STATE="1" EDITORDER="46 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_STYLE" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_STYLE" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_STYLE" SCONAME="IP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_CELL_STYLE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_CELL_STYLE.
DATA: lv_column TYPE zexcel_cell_column,
ls_sheet_content TYPE zexcel_s_cell_data,
lv_row_alpha TYPE string,
lo_style TYPE REF TO zcl_excel_style,
lv_style_guid TYPE zexcel_cell_style.
FIELD-SYMBOLS: &lt;fs_sheet_content&gt; TYPE zexcel_s_cell_data.
lv_style_guid = ip_style.
lv_column = zcl_excel_common=&gt;convert_column2int( ip_column ).
READ TABLE sheet_content ASSIGNING &lt;fs_sheet_content&gt; WITH KEY cell_row = ip_row
cell_column = lv_column.
IF sy-subrc EQ 0.
&lt;fs_sheet_content&gt;-cell_style = lv_style_guid.
ELSE.
set_cell( ip_column = ip_column ip_row = ip_row ip_value = &apos;&apos; ip_style = ip_style ).
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_COLUMN_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Set column width" EXPOSURE="2" STATE="1" EDITORDER="47 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_COLUMN_WIDTH" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_COLUMN_WIDTH" SCONAME="IP_WIDTH_FIX" VERSION="1" LANGU="E" DESCRIPT="A positive value will set column width" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE" PARVALUE="0"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_COLUMN_WIDTH" SCONAME="IP_WIDTH_AUTOSIZE" VERSION="1" LANGU="E" DESCRIPT="Autosize column" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PARVALUE="&apos;X&apos;"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_COLUMN_WIDTH" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_COLUMN_WIDTH.
DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: width TYPE float.
column_dimension = me-&gt;get_column_dimension( ip_column ).
* if a fix size is supplied use this
IF ip_width_fix IS SUPPLIED.
TRY.
width = ip_width_fix.
IF width &lt;= 0.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Please supply a positive number as column-width&apos;.
ENDIF.
column_dimension-&gt;set_width( width ).
EXIT.
CATCH cx_sy_conversion_no_number.
* Strange stuff passed --&gt; raise error
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Unable to interpret supplied input as number&apos;.
ENDTRY.
ENDIF.
* If we get down to here, we have to use whatever is found in autosize.
column_dimension-&gt;set_auto_size( ip_width_autosize ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_DEFAULT_EXCEL_DATE_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Sets default date format" EXPOSURE="2" STATE="1" EDITORDER="48 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_DEFAULT_EXCEL_DATE_FORMAT" SCONAME="IP_DEFAULT_EXCEL_DATE_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Default date format" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_DEFAULT_EXCEL_DATE_FORMAT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_DEFAULT_EXCEL_DATE_FORMAT.
IF ip_default_excel_date_format IS INITIAL.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Default date format cannot be blank&apos;.
ENDIF.
default_excel_date_format = ip_default_excel_date_format.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_MERGE" VERSION="1" LANGU="E" DESCRIPT="Set the merge range" EXPOSURE="2" STATE="1" EDITORDER="49 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_MERGE" SCONAME="IP_COLUMN_START" VERSION="1" LANGU="E" DESCRIPT="Cell Column Start" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_MERGE" SCONAME="IP_COLUMN_END" VERSION="1" LANGU="E" DESCRIPT="Cell Column End" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_MERGE" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_MERGE" SCONAME="IP_ROW_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_MERGE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_MERGE.
DATA: lv_column_start TYPE zexcel_cell_column,
lv_column_end TYPE zexcel_cell_column,
ls_sheet_content TYPE zexcel_s_cell_data,
lv_row_alpha TYPE string.
FIELD-SYMBOLS: &lt;fs_sheet_content&gt; TYPE zexcel_s_cell_data.
lv_column_start = zcl_excel_common=&gt;convert_column2int( ip_column_start ).
lv_column_end = zcl_excel_common=&gt;convert_column2int( ip_column_end ).
ls_sheet_content-cell_row = ip_row.
ls_sheet_content-cell_column = lv_column_start.
lv_row_alpha = ip_row.
SHIFT lv_row_alpha RIGHT DELETING TRAILING space.
SHIFT lv_row_alpha LEFT DELETING LEADING space.
CONCATENATE ip_column_start lv_row_alpha INTO ls_sheet_content-cell_coords.
INSERT ls_sheet_content INTO TABLE sheet_content_merge.
ls_sheet_content-cell_column = lv_column_end.
IF ip_row_to IS SUPPLIED.
ls_sheet_content-cell_row = ip_row_to.
lv_row_alpha = ip_row_to.
ELSE.
lv_row_alpha = ip_row.
ls_sheet_content-cell_row = ip_row.
ENDIF.
SHIFT lv_row_alpha RIGHT DELETING TRAILING space.
SHIFT lv_row_alpha LEFT DELETING LEADING space.
CONCATENATE ip_column_end lv_row_alpha INTO ls_sheet_content-cell_coords.
INSERT ls_sheet_content INTO TABLE sheet_content_merge.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_PRINT_GRIDLINES" VERSION="1" LANGU="E" DESCRIPT="Set print gridlines" EXPOSURE="2" STATE="1" EDITORDER="50 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_PRINT_GRIDLINES" SCONAME="I_PRINT_GRIDLINES" VERSION="1" LANGU="E" DESCRIPT="Print Gridlines" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_PRINT_GRIDLINES"/>
<source>method SET_PRINT_GRIDLINES.
me-&gt;print_gridlines = i_print_gridlines.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_ROW_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Set row height" EXPOSURE="2" STATE="1" EDITORDER="51 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_ROW_HEIGHT" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_ROW_HEIGHT" SCONAME="IP_HEIGHT_FIX" VERSION="1" LANGU="E" DESCRIPT="A positive value will set row height" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_ROW_HEIGHT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_ROW_HEIGHT.
DATA: row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: height TYPE float.
row_dimension = me-&gt;get_row_dimension( ip_row ).
* if a fix size is supplied use this
TRY.
height = ip_height_fix.
IF height &lt;= 0.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Please supply a positive number as row-height&apos;.
ENDIF.
row_dimension-&gt;set_row_height( height ).
EXIT.
CATCH cx_sy_conversion_no_number.
* Strange stuff passed --&gt; raise error
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Unable to interpret supplied input as number&apos;.
ENDTRY.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_SHOW_GRIDLINES" VERSION="1" LANGU="E" DESCRIPT="Set show gridlines" EXPOSURE="2" STATE="1" EDITORDER="52 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_SHOW_GRIDLINES" SCONAME="I_SHOW_GRIDLINES" VERSION="1" LANGU="E" DESCRIPT="Show Gridlines" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHOW_GRIDLINES"/>
<source>method SET_SHOW_GRIDLINES.
me-&gt;show_gridlines = i_show_gridlines.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_SHOW_ROWCOLHEADERS" VERSION="1" LANGU="E" DESCRIPT="Set show colum row headers" EXPOSURE="2" STATE="1" EDITORDER="53 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_SHOW_ROWCOLHEADERS" SCONAME="I_SHOW_ROWCOLHEADERS" VERSION="1" LANGU="E" DESCRIPT="Show Gridlines" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHOW_ROWCOLHEADER"/>
<source>method SET_SHOW_ROWCOLHEADERS.
me-&gt;show_rowcolheaders = i_show_rowcolheaders.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABCOLOR" VERSION="1" LANGU="E" DESCRIPT="Set tabcolor" EXPOSURE="2" STATE="1" EDITORDER="54 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABCOLOR" SCONAME="IV_TABCOLOR" VERSION="1" LANGU="E" DESCRIPT="Tabcolor" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_TABCOLOR"/>
<source>method SET_TABCOLOR.
me-&gt;tabcolor = iv_tabcolor.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" VERSION="1" LANGU="E" DESCRIPT="Set cell value from a table" EXPOSURE="2" STATE="1" EDITORDER="55 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="IP_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="IP_HDR_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="IP_BODY_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="IP_TABLE_TITLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="IP_TOP_LEFT_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" PARVALUE="&apos;B&apos;" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="IP_TOP_LEFT_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" PARVALUE="3" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="IP_TRANSPOSE" VERSION="1" LANGU="E" DESCRIPT="Transpose table" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="XFELD" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="IP_NO_HEADER" VERSION="1" LANGU="E" DESCRIPT="Do not write header" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="XFELD" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TABLE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_TABLE.
DATA: lo_tabdescr TYPE REF TO cl_abap_structdescr,
lr_data TYPE REF TO data,
ls_newline TYPE REF TO data,
ls_header TYPE x030l,
lt_dfies TYPE ddfields,
lv_row_header TYPE zexcel_cell_row VALUE 2,
lv_col_header TYPE zexcel_cell_column_alpha VALUE &apos;B&apos;,
lv_row_int TYPE zexcel_cell_row,
lv_column_int TYPE zexcel_cell_column,
lv_column_alpha TYPE zexcel_cell_column_alpha,
lv_cell_value TYPE zexcel_cell_value.
FIELD-SYMBOLS: &lt;fs_table_line&gt; TYPE ANY,
&lt;fs_fldval&gt; TYPE ANY,
&lt;fs_dfies&gt; TYPE dfies,
&lt;fs_cell_value&gt; TYPE zexcel_cell_value.
lv_column_int = zcl_excel_common=&gt;convert_column2int( ip_top_left_column ).
lv_row_int = ip_top_left_row.
CREATE DATA lr_data LIKE LINE OF ip_table.
lo_tabdescr ?= cl_abap_structdescr=&gt;describe_by_data_ref( lr_data ).
ls_header = lo_tabdescr-&gt;get_ddic_header( ).
lt_dfies = lo_tabdescr-&gt;get_ddic_field_list( ).
* It is better to loop column by column
LOOP AT lt_dfies ASSIGNING &lt;fs_dfies&gt;.
lv_column_alpha = zcl_excel_common=&gt;convert_column2alpha( lv_column_int ).
IF ip_no_header = abap_false.
&quot; First of all write column header
lv_cell_value = &lt;fs_dfies&gt;-scrtext_m.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_value = lv_cell_value
ip_style = ip_hdr_style ).
IF ip_transpose = abap_true.
ADD 1 TO lv_column_int.
ELSE.
ADD 1 TO lv_row_int.
ENDIF.
ENDIF.
LOOP AT ip_table ASSIGNING &lt;fs_table_line&gt;.
lv_column_alpha = zcl_excel_common=&gt;convert_column2alpha( lv_column_int ).
ASSIGN COMPONENT &lt;fs_dfies&gt;-fieldname OF STRUCTURE &lt;fs_table_line&gt; TO &lt;fs_fldval&gt;.
MOVE &lt;fs_fldval&gt; TO lv_cell_value.
me-&gt;set_cell( ip_column = lv_column_alpha
ip_row = lv_row_int
ip_value = &lt;fs_fldval&gt; &quot;lv_cell_value
ip_style = ip_body_style ).
IF ip_transpose = abap_true.
ADD 1 TO lv_column_int.
ELSE.
ADD 1 TO lv_row_int.
ENDIF.
ENDLOOP.
IF ip_transpose = abap_true.
lv_column_int = zcl_excel_common=&gt;convert_column2int( ip_top_left_column ).
ADD 1 TO lv_row_int.
ELSE.
lv_row_int = ip_top_left_row.
ADD 1 TO lv_column_int.
ENDIF.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TITLE" VERSION="1" LANGU="E" DESCRIPT="Set WorkSheet Title" EXPOSURE="2" STATE="1" EDITORDER="56 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TITLE" SCONAME="IP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="SET_TITLE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_TITLE.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 The current coding for replacing a named ranges name
* after renaming a sheet should be checked if it is
* really working if sheetname should be escaped
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (wip ) 2012-12-08
* - ...
* changes: aligning code
* message made to support multilinguality
*--------------------------------------------------------------------*
* issue#243 - &apos; is not allowed as first character in sheet title
* - Stefan Schmöcker, 2012-12-02
* changes: added additional check for &apos; as first character
*--------------------------------------------------------------------*
DATA: lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
errormessage TYPE string,
lv_rangesheetname_old TYPE string,
lv_rangesheetname_new TYPE string,
lo_ranges_iterator TYPE REF TO cl_object_collection_iterator,
lo_range TYPE REF TO zcl_excel_range,
lv_range_value TYPE zexcel_range_value,
lv_errormessage TYPE string. &quot; Can&apos;t pass &apos;...&apos;(abc) to exception-class
*--------------------------------------------------------------------*
* Check whether title consists only of allowed characters
* Illegal characters are: / \ [ ] * ? : --&gt; http://msdn.microsoft.com/en-us/library/ff837411.aspx
* Illegal characters not in documentation: &apos; as first character
*--------------------------------------------------------------------*
IF ip_title CA &apos;/\[]*?:&apos;.
lv_errormessage = &apos;Found illegal character in sheetname. List of forbidden characters: /\[]*?:&apos;(402).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
IF ip_title IS NOT INITIAL AND ip_title(1) = `&apos;`.
lv_errormessage = &apos;Sheetname may not start with &amp;&apos;(403). &quot; &amp; used instead of &apos; to allow fallbacklanguage
REPLACE &apos;&amp;&apos; IN lv_errormessage WITH `&apos;`.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
*--------------------------------------------------------------------*
* Check whether title is unique in workbook
*--------------------------------------------------------------------*
lo_worksheets_iterator = me-&gt;excel-&gt;get_worksheets_iterator( ).
WHILE lo_worksheets_iterator-&gt;has_next( ) = &apos;X&apos;.
lo_worksheet ?= lo_worksheets_iterator-&gt;get_next( ).
CHECK me-&gt;guid &lt;&gt; lo_worksheet-&gt;get_guid( ). &quot; Don&apos;t check against itself
IF ip_title = lo_worksheet-&gt;get_title( ). &quot; Not unique --&gt; raise exception
errormessage = &apos;Duplicate sheetname &amp;&apos;.
REPLACE &apos;&amp;&apos; IN errormessage WITH ip_title.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = errormessage.
ENDIF.
ENDWHILE.
*--------------------------------------------------------------------*
* Remember old sheetname and rename sheet to desired name
*--------------------------------------------------------------------*
CONCATENATE me-&gt;title &apos;!&apos; INTO lv_rangesheetname_old.
me-&gt;title = ip_title.
*--------------------------------------------------------------------*
* After changing this worksheet&apos;s title we have to adjust
* all ranges that are referring to this worksheet.
*--------------------------------------------------------------------*
* 2do§1 - Check if the following quickfix is solid
* I fear it isn&apos;t - but this implementation is better then
* nothing at all since it handles a supposed majority of cases
*--------------------------------------------------------------------*
CONCATENATE me-&gt;title &apos;!&apos; INTO lv_rangesheetname_new.
lo_ranges_iterator = me-&gt;excel-&gt;get_ranges_iterator( ).
WHILE lo_ranges_iterator-&gt;has_next( ) = &apos;X&apos;.
lo_range ?= lo_ranges_iterator-&gt;get_next( ).
lv_range_value = lo_range-&gt;get_value( ).
REPLACE ALL OCCURRENCES OF lv_rangesheetname_old IN lv_range_value WITH lv_rangesheetname_new.
IF sy-subrc = 0.
lo_range-&gt;set_range_value( lv_range_value ).
ENDIF.
ENDWHILE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="UPDATE_DIMENSION_RANGE" VERSION="1" LANGU="E" DESCRIPT="Update dimension range" EXPOSURE="0" STATE="1" EDITORDER="57 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<exception CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="UPDATE_DIMENSION_RANGE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method UPDATE_DIMENSION_RANGE.
DATA: ls_sheet_content TYPE zexcel_s_cell_data,
lt_sheet_content TYPE zexcel_t_cell_data_unsorted,
lv_row_alpha TYPE string,
lv_column_alpha TYPE zexcel_cell_column_alpha.
CHECK sheet_content IS NOT INITIAL.
* update dimension range
lt_sheet_content = sheet_content.
&quot;upper left corner
SORT lt_sheet_content BY cell_row.
READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content.
upper_cell-cell_row = ls_sheet_content-cell_row.
SORT lt_sheet_content BY cell_column.
READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content.
upper_cell-cell_column = ls_sheet_content-cell_column.
lv_row_alpha = upper_cell-cell_row.
lv_column_alpha = zcl_excel_common=&gt;convert_column2alpha( upper_cell-cell_column ).
SHIFT lv_row_alpha RIGHT DELETING TRAILING space.
SHIFT lv_row_alpha LEFT DELETING LEADING space.
CONCATENATE lv_column_alpha lv_row_alpha INTO upper_cell-cell_coords.
&quot;bottom right corner
SORT lt_sheet_content BY cell_row DESCENDING.
READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content.
lower_cell-cell_row = ls_sheet_content-cell_row.
SORT lt_sheet_content BY cell_column DESCENDING.
READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content.
lower_cell-cell_column = ls_sheet_content-cell_column.
lv_row_alpha = lower_cell-cell_row.
lv_column_alpha = zcl_excel_common=&gt;convert_column2alpha( lower_cell-cell_column ).
SHIFT lv_row_alpha RIGHT DELETING TRAILING space.
SHIFT lv_row_alpha LEFT DELETING LEADING space.
CONCATENATE lv_column_alpha lv_row_alpha INTO lower_cell-cell_coords.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_WORKSHEETS" VERSION="1" LANGU="E" DESCRIPT="Worksheets collection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTVALUE="&apos;Worksheets&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="WORKSHEETS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="ADD" SCONAME="IP_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"/>
<source>method ADD.
worksheets-&gt;add( ip_worksheet ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="CLEAR" VERSION="1" LANGU="E" DESCRIPT="Initializes the Collection" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAR.
worksheets-&gt;clear( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
CREATE OBJECT worksheets.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="GET" VERSION="1" LANGU="E" DESCRIPT="Gets Element" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="GET" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="GET" SCONAME="EO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<source>method GET.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_worksheet ?= worksheets-&gt;if_object_collection~get( lv_index ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="GET_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Returns an iterator" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="GET_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_ITERATOR.
eo_iterator ?= worksheets-&gt;if_object_collection~get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="Checks whether elements are contained" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="IS_EMPTY" SCONAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>method IS_EMPTY.
is_empty = worksheets-&gt;if_object_collection~is_empty( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="REMOVE" VERSION="1" LANGU="E" DESCRIPT="Deletes an Element from the Collection" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="REMOVE" SCONAME="IP_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"/>
<source>method REMOVE.
worksheets-&gt;remove( ip_worksheet ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Specifies number of contained elements" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEETS" CMPNAME="SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method SIZE.
ep_size = worksheets-&gt;if_object_collection~size( ).
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_WORKSHEET_COLUMNDIME" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X" IMPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="AUTO_SIZE" VERSION="1" LANGU="E" DESCRIPT="Auto size?" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ABAP_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="COLLAPSED" VERSION="1" LANGU="E" DESCRIPT="Collapsed?" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ABAP_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="COLUMN_INDEX" VERSION="1" LANGU="E" DESCRIPT="Column index" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" EXPOSURE="0" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="OUTLINE_LEVEL" VERSION="1" LANGU="E" DESCRIPT="Outline level" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="STYLE_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" EXPOSURE="0" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="VISIBLE" VERSION="1" LANGU="E" DESCRIPT="Visible?" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ABAP_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="WIDTH" VERSION="1" LANGU="E" DESCRIPT="Column width" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLOAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" EXPOSURE="0" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="XF_INDEX" VERSION="1" LANGU="E" DESCRIPT="Index to cellXf" EXPOSURE="0" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="CONSTRUCTOR" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="CONSTRUCTOR" SCONAME="IP_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="2" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="CONSTRUCTOR" SCONAME="IP_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="2" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL"/>
<source>method CONSTRUCTOR.
me-&gt;column_index = zcl_excel_common=&gt;convert_column2int( ip_index ).
me-&gt;width = -1.
me-&gt;auto_size = abap_false.
me-&gt;visible = abap_true.
me-&gt;outline_level = 0.
me-&gt;collapsed = abap_false.
me-&gt;excel = ip_excel. &quot;ins issue #157 - Allow Style for columns
me-&gt;worksheet = ip_worksheet. &quot;ins issue #157 - Allow Style for columns
&quot; set default index to cellXf
me-&gt;xf_index = 0.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_AUTO_SIZE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_AUTO_SIZE" SCONAME="R_AUTO_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<source>method GET_AUTO_SIZE.
r_auto_size = me-&gt;auto_size.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_COLLAPSED" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_COLLAPSED" SCONAME="R_COLLAPSED" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<source>method GET_COLLAPSED.
r_Collapsed = me-&gt;Collapsed.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_COLUMN_INDEX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_COLUMN_INDEX" SCONAME="R_COLUMN_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT4"/>
<source>method GET_COLUMN_INDEX.
r_column_index = me-&gt;column_index.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_COLUMN_STYLE_GUID" VERSION="1" LANGU="E" DESCRIPT="Get guid of column style" EXPOSURE="2" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_COLUMN_STYLE_GUID" SCONAME="EP_STYLE_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_COLUMN_STYLE_GUID" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_COLUMN_STYLE_GUID.
IF me-&gt;style_guid IS NOT INITIAL.
ep_style_guid = me-&gt;style_guid.
ELSE.
ep_style_guid = me-&gt;worksheet-&gt;zif_excel_sheet_properties~get_style( ).
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_OUTLINE_LEVEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_OUTLINE_LEVEL" SCONAME="R_OUTLINE_LEVEL" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT4"/>
<source>method GET_OUTLINE_LEVEL.
r_outline_level = me-&gt;outline_level.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_VISIBLE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_VISIBLE" SCONAME="R_VISIBLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<source>method GET_VISIBLE.
r_Visible = me-&gt;Visible.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_WIDTH" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_WIDTH" SCONAME="R_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLOAT"/>
<source>method GET_WIDTH.
r_WIDTH = me-&gt;WIDTH.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_XF_INDEX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="GET_XF_INDEX" SCONAME="R_XF_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT4"/>
<source>method GET_XF_INDEX.
r_xf_index = me-&gt;xf_index.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_AUTO_SIZE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_AUTO_SIZE" SCONAME="IP_AUTO_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_AUTO_SIZE" SCONAME="R_WORKSHEET_COLUMNDIME" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME"/>
<source>method SET_AUTO_SIZE.
me-&gt;auto_size = ip_auto_size.
r_worksheet_columndime = me.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLLAPSED" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLLAPSED" SCONAME="IP_COLLAPSED" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLLAPSED" SCONAME="R_WORKSHEET_COLUMNDIME" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME"/>
<source>method SET_COLLAPSED.
me-&gt;Collapsed = ip_Collapsed.
r_worksheet_columndime = me.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLUMN_INDEX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLUMN_INDEX" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLUMN_INDEX" SCONAME="R_WORKSHEET_COLUMNDIME" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME"/>
<source>method SET_COLUMN_INDEX.
me-&gt;column_index = zcl_excel_common=&gt;convert_column2int( ip_index ).
r_worksheet_columndime = me.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLUMN_STYLE_BY_GUID" VERSION="1" LANGU="E" DESCRIPT="Set column style by style guid" EXPOSURE="2" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLUMN_STYLE_BY_GUID" SCONAME="IP_STYLE_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_COLUMN_STYLE_BY_GUID" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_COLUMN_STYLE_BY_GUID.
DATA: stylemapping TYPE zexcel_s_stylemapping.
IF me-&gt;excel IS NOT BOUND.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Internal error - reference to ZCL_EXCEL not bound&apos;.
ENDIF.
TRY.
stylemapping = me-&gt;excel-&gt;get_style_to_guid( ip_style_guid ).
me-&gt;style_guid = stylemapping-guid.
CATCH zcx_excel .
EXIT. &quot; leave as is in case of error
ENDTRY.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_OUTLINE_LEVEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_OUTLINE_LEVEL" SCONAME="IP_OUTLINE_LEVEL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<source>method SET_OUTLINE_LEVEL.
me-&gt;outline_level = ip_outline_level.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_VISIBLE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_VISIBLE" SCONAME="IP_VISIBLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_VISIBLE" SCONAME="R_WORKSHEET_COLUMNDIME" VERSION="1" LANGU="E" DESCRIPT="Worksheet ColumnDimension" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME"/>
<source>method SET_VISIBLE.
me-&gt;Visible = ip_Visible.
r_worksheet_columndime = me.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_WIDTH" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_WIDTH" SCONAME="IP_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Column width" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_WIDTH" SCONAME="R_WORKSHEET_COLUMNDIME" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_WIDTH" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_WIDTH.
TRY.
me-&gt;width = ip_width.
r_worksheet_columndime = me.
CATCH cx_sy_conversion_no_number.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Unable to interpret width as number&apos;.
ENDTRY.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_XF_INDEX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_XF_INDEX" SCONAME="IP_XF_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" CMPNAME="SET_XF_INDEX" SCONAME="R_WORKSHEET_COLUMNDIME" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET_COLUMNDIME"/>
<source>method SET_XF_INDEX.
me-&gt;XF_INDEX = ip_XF_INDEX.
r_worksheet_columndime = me.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" VERSION="1" LANGU="E" DESCRIPT="Worksheet RowDimension" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_WORKSHEET_ROWDIMENSI" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="COLLAPSED" VERSION="1" LANGU="E" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="BOOLEAN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="OUTLINE_LEVEL" VERSION="1" LANGU="E" DESCRIPT="Natural number" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="ROW_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Field of type FLTP" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLOAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="ROW_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="VISIBLE" VERSION="1" LANGU="E" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="BOOLEAN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="XF_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="CONSTRUCTOR" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PARVALUE="0"/>
<source>method CONSTRUCTOR.
&quot; Initialise values
me-&gt;row_index = ip_index.
me-&gt;row_height = -1.
me-&gt;visible = abap_true.
me-&gt;outline_level = 0.
me-&gt;collapsed = abap_false.
&quot; set row dimension as unformatted by default
me-&gt;xf_index = 0.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_COLLAPSED" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_COLLAPSED" SCONAME="R_COLLAPSED" VERSION="1" LANGU="E" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="BOOLEAN"/>
<source>method GET_COLLAPSED.
r_collapsed = me-&gt;collapsed.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_OUTLINE_LEVEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_OUTLINE_LEVEL" SCONAME="R_OUTLINE_LEVEL" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT4"/>
<source>method GET_OUTLINE_LEVEL.
r_outline_level = me-&gt;outline_level.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_ROW_HEIGHT" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_ROW_HEIGHT" SCONAME="R_ROW_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Field of type FLTP" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLOAT"/>
<source>method GET_ROW_HEIGHT.
r_row_height = me-&gt;row_height.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_ROW_INDEX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_ROW_INDEX" SCONAME="R_ROW_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT4"/>
<source>method GET_ROW_INDEX.
r_row_index = me-&gt;row_index.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_VISIBLE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_VISIBLE" SCONAME="R_VISIBLE" VERSION="1" LANGU="E" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="BOOLEAN"/>
<source>method GET_VISIBLE.
r_visible = me-&gt;visible.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_XF_INDEX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="GET_XF_INDEX" SCONAME="R_XF_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT4"/>
<source>method GET_XF_INDEX.
r_xf_index = me-&gt;xf_index.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_COLLAPSED" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_COLLAPSED" SCONAME="IP_COLLAPSED" VERSION="1" LANGU="E" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="BOOLEAN"/>
<source>method SET_COLLAPSED.
me-&gt;collapsed = ip_collapsed.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_OUTLINE_LEVEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_OUTLINE_LEVEL" SCONAME="IP_OUTLINE_LEVEL" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_OUTLINE_LEVEL" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_OUTLINE_LEVEL.
IF ip_outline_level &lt; 0
OR ip_outline_level &gt; 7.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Outline level must range between 0 and 7.&apos;.
ENDIF.
me-&gt;outline_level = ip_outline_level.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_ROW_HEIGHT" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_ROW_HEIGHT" SCONAME="IP_ROW_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Accept nearly everything" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<exception CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_ROW_HEIGHT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_ROW_HEIGHT.
TRY.
me-&gt;row_height = ip_row_height.
CATCH cx_sy_conversion_no_number.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Unable to interpret ip_row_height as number&apos;.
ENDTRY.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_ROW_INDEX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_ROW_INDEX" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<source>method SET_ROW_INDEX.
me-&gt;row_index = ip_index.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_VISIBLE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_VISIBLE" SCONAME="IP_VISIBLE" VERSION="1" LANGU="E" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="BOOLEAN"/>
<source>method SET_VISIBLE.
me-&gt;visible = ip_visible.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_XF_INDEX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" CMPNAME="SET_XF_INDEX" SCONAME="IP_XF_INDEX" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<source>method SET_XF_INDEX.
me-&gt;XF_INDEX = ip_XF_INDEX.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_WRITER_2007" VERSION="1" LANGU="E" DESCRIPT="Excel writer 2007" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_WRITER_2007" REFCLSNAME="ZIF_EXCEL_WRITER" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<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>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_CONTENT_TYPES" VERSION="1" LANGU="E" DESCRIPT="Content Type XML File Name" EXPOSURE="1" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;[Content_Types].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_DOCPROPS_APP" VERSION="1" LANGU="E" DESCRIPT="App XML File Name" EXPOSURE="1" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;docProps/app.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_DOCPROPS_CORE" VERSION="1" LANGU="E" DESCRIPT="Core XML File Name" EXPOSURE="1" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;docProps/core.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_OFF" VERSION="1" LANGU="E" DESCRIPT="Byte Value" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;0&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_ON" VERSION="1" LANGU="E" DESCRIPT="Byte Value" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;1&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_RELATIONSHIPS" VERSION="1" LANGU="E" DESCRIPT="Rels XML File Name" EXPOSURE="1" STATE="1" EDITORDER="6 " ATTDECLTYP="2" ATTVALUE="&apos;_rels/.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_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_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 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="C_XL_SHEET_RELS" VERSION="1" LANGU="E" DESCRIPT="xlSheetRels XML File Name Template" EXPOSURE="1" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;xl/worksheets/_rels/sheet#.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_STYLES" VERSION="1" LANGU="E" DESCRIPT="xlStyles XML File Name" EXPOSURE="1" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;xl/styles.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_THEME" VERSION="1" LANGU="E" DESCRIPT="xlTheme XML File Name" EXPOSURE="1" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;xl/theme/theme1.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_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 "/>
<interfaceMethod CLSNAME="ZCL_EXCEL_WRITER_2007" CPDNAME="ZIF_EXCEL_WRITER~WRITE_FILE">
<source>method ZIF_EXCEL_WRITER~WRITE_FILE.
me-&gt;excel = io_excel.
ep_file = me-&gt;create( ).
endmethod.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE" VERSION="1" LANGU="E" DESCRIPT="Create Excel" EXPOSURE="1" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE" SCONAME="EP_EXCEL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE.
* Office 2007 file format is a cab of several xml files with extension .xlsx
DATA: lo_zip TYPE REF TO cl_abap_zip,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_active_worksheet TYPE REF TO zcl_excel_worksheet,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_nested_iterator TYPE REF TO cl_object_collection_iterator,
lo_table TYPE REF TO zcl_excel_table,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_drawings TYPE REF TO zcl_excel_drawings.
DATA: lv_content TYPE xstring,
lv_active TYPE flag,
lv_xl_sheet TYPE string,
lv_xl_sheet_rels TYPE string,
lv_xl_drawing TYPE string,
lv_xl_drawing_rels TYPE string,
lv_syindex TYPE string,
lv_value TYPE string,
lv_drawing_index TYPE i.
**********************************************************************
* Start of insertion # issue 139 - Dateretention of cellstyles
me-&gt;excel-&gt;add_static_styles( ).
* End of insertion # issue 139 - Dateretention of cellstyles
**********************************************************************
* STEP 1: Create archive object file (ZIP)
CREATE OBJECT lo_zip.
**********************************************************************
* STEP 2: Add [Content_Types].xml to zip
lv_content = me-&gt;create_content_types( ).
lo_zip-&gt;add( name = me-&gt;c_content_types
content = lv_content ).
**********************************************************************
* STEP 3: Add _rels/.rels to zip
lv_content = me-&gt;create_relationships( ).
lo_zip-&gt;add( name = me-&gt;c_relationships
content = lv_content ).
**********************************************************************
* STEP 4: Add docProps/app.xml to zip
lv_content = me-&gt;create_docprops_app( ).
lo_zip-&gt;add( name = me-&gt;c_docprops_app
content = lv_content ).
**********************************************************************
* STEP 5: Add docProps/core.xml to zip
lv_content = me-&gt;create_docprops_core( ).
lo_zip-&gt;add( name = me-&gt;c_docprops_core
content = lv_content ).
**********************************************************************
* STEP 6: Add xl/_rels/workbook.xml.rels to zip
lv_content = me-&gt;create_xl_relationships( ).
lo_zip-&gt;add( name = me-&gt;c_xl_relationships
content = lv_content ).
**********************************************************************
* STEP 6: Add xl/_rels/workbook.xml.rels to zip
lv_content = me-&gt;create_xl_theme( ).
lo_zip-&gt;add( name = me-&gt;c_xl_theme
content = lv_content ).
**********************************************************************
* STEP 7: Add xl/workbook.xml to zip
lv_content = me-&gt;create_xl_workbook( ).
lo_zip-&gt;add( name = me-&gt;c_xl_workbook
content = lv_content ).
**********************************************************************
* STEP 8: Add xl/workbook.xml to zip
* lv_content = me-&gt;create_xl_styles_static( ).
lv_content = me-&gt;create_xl_styles( ).
lo_zip-&gt;add( name = me-&gt;c_xl_styles
content = lv_content ).
**********************************************************************
* STEP 9: Add sharedStrings.xml to zip
lv_content = me-&gt;create_xl_sharedstrings( ).
lo_zip-&gt;add( name = me-&gt;c_xl_sharedstrings
content = lv_content ).
**********************************************************************
* STEP 10: Add sheet#.xml and drawing#.xml to zip
lo_iterator = me-&gt;excel-&gt;get_worksheets_iterator( ).
lo_active_worksheet = me-&gt;excel-&gt;get_active_worksheet( ).
lv_drawing_index = 1.
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
IF lo_active_worksheet-&gt;get_guid( ) EQ lo_worksheet-&gt;get_guid( ).
lv_active = abap_true.
ELSE.
lv_active = abap_false.
ENDIF.
lv_content = me-&gt;create_xl_sheet( io_worksheet = lo_worksheet
iv_active = lv_active ).
lv_xl_sheet = me-&gt;c_xl_sheet.
MOVE sy-index TO lv_syindex.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xl_sheet WITH lv_syindex.
lo_zip-&gt;add( name = lv_xl_sheet
content = lv_content ).
lv_xl_sheet_rels = me-&gt;c_xl_sheet_rels.
lv_content = me-&gt;create_xl_sheet_rels( io_worksheet = lo_worksheet
iv_drawing_index = lv_drawing_index ).
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xl_sheet_rels WITH lv_syindex.
lo_zip-&gt;add( name = lv_xl_sheet_rels
content = lv_content ).
lo_nested_iterator = lo_worksheet-&gt;get_tables_iterator( ).
WHILE lo_nested_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_table ?= lo_nested_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_content = me-&gt;create_xl_table( lo_table ).
lv_value = lo_table-&gt;get_name( ).
CONCATENATE &apos;xl/tables/&apos; lv_value &apos;.xml&apos; INTO lv_value.
lo_zip-&gt;add( name = lv_value
content = lv_content ).
ENDWHILE.
* Add drawings **********************************
lo_drawings = lo_worksheet-&gt;get_drawings( ).
IF lo_drawings-&gt;is_empty( ) = abap_false.
MOVE lv_drawing_index TO lv_syindex.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
lv_content = me-&gt;create_xl_drawings( lo_worksheet ).
lv_xl_drawing = me-&gt;c_xl_drawings.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xl_drawing WITH lv_syindex.
lo_zip-&gt;add( name = lv_xl_drawing
content = lv_content ).
lv_content = me-&gt;create_xl_drawings_rels( lo_worksheet ).
lv_xl_drawing_rels = me-&gt;c_xl_drawings_rels.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xl_drawing_rels WITH lv_syindex.
lo_zip-&gt;add( name = lv_xl_drawing_rels
content = lv_content ).
ADD 1 TO lv_drawing_index.
ENDIF.
ENDWHILE.
**********************************************************************
* STEP 11: Add media
lo_iterator = me-&gt;excel-&gt;get_drawings_iterator( zcl_excel_drawing=&gt;type_image ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_drawing ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_content = lo_drawing-&gt;get_media( ).
lv_value = lo_drawing-&gt;get_media_name( ).
CONCATENATE &apos;xl/media/&apos; lv_value INTO lv_value.
lo_zip-&gt;add( name = lv_value
content = lv_content ).
ENDWHILE.
**********************************************************************
* STEP 12: Add charts
lo_iterator = me-&gt;excel-&gt;get_drawings_iterator( zcl_excel_drawing=&gt;type_chart ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_drawing ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_content = lo_drawing-&gt;get_media( ).
&quot;-------------Added by Alessandro Iannacci - Only if template exist
IF lv_content IS NOT INITIAL AND me-&gt;excel-&gt;use_template EQ abap_true.
lv_value = lo_drawing-&gt;get_media_name( ).
CONCATENATE &apos;xl/charts/&apos; lv_value INTO lv_value.
lo_zip-&gt;add( name = lv_value
content = lv_content ).
ELSE. &quot;ADD CUSTOM CHART!!!!
lv_content = me-&gt;create_xl_charts( lo_drawing ).
lv_value = lo_drawing-&gt;get_media_name( ).
CONCATENATE &apos;xl/charts/&apos; lv_value INTO lv_value.
lo_zip-&gt;add( name = lv_value
content = lv_content ).
ENDIF.
&quot;-------------------------------------------------
ENDWHILE.
**********************************************************************
* STEP 12: Create the final zip
ep_excel = lo_zip-&gt;save( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_CONTENT_TYPES" VERSION="1" LANGU="E" DESCRIPT="Create &apos;[Content_Types].xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_CONTENT_TYPES" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_CONTENT_TYPES.
** Constant node name
DATA: lc_xml_node_types TYPE string VALUE &apos;Types&apos;,
lc_xml_node_override TYPE string VALUE &apos;Override&apos;,
lc_xml_node_default TYPE string VALUE &apos;Default&apos;,
&quot; Node attributes
lc_xml_attr_partname TYPE string VALUE &apos;PartName&apos;,
lc_xml_attr_extension TYPE string VALUE &apos;Extension&apos;,
lc_xml_attr_contenttype TYPE string VALUE &apos;ContentType&apos;,
&quot; Node namespace
lc_xml_node_types_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/package/2006/content-types&apos;,
&quot; Node extension
lc_xml_node_rels_ext TYPE string VALUE &apos;rels&apos;,
lc_xml_node_xml_ext TYPE string VALUE &apos;xml&apos;,
&quot; Node partnumber
lc_xml_node_theme_pn TYPE string VALUE &apos;/xl/theme/theme1.xml&apos;,
lc_xml_node_styles_pn TYPE string VALUE &apos;/xl/styles.xml&apos;,
lc_xml_node_workb_pn TYPE string VALUE &apos;/xl/workbook.xml&apos;,
lc_xml_node_props_pn TYPE string VALUE &apos;/docProps/app.xml&apos;,
lc_xml_node_worksheet_pn TYPE string VALUE &apos;/xl/worksheets/sheet#.xml&apos;,
lc_xml_node_strings_pn TYPE string VALUE &apos;/xl/sharedStrings.xml&apos;,
lc_xml_node_core_pn TYPE string VALUE &apos;/docProps/core.xml&apos;,
lc_xml_node_chart_pn TYPE string VALUE &apos;/xl/charts/chart#.xml&apos;,
&quot; Node contentType
lc_xml_node_theme_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.theme+xml&apos;,
lc_xml_node_styles_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml&apos;,
lc_xml_node_workb_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml&apos;,
lc_xml_node_rels_ct TYPE string VALUE &apos;application/vnd.openxmlformats-package.relationships+xml&apos;,
lc_xml_node_xml_ct TYPE string VALUE &apos;application/xml&apos;,
lc_xml_node_props_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.extended-properties+xml&apos;,
lc_xml_node_worksheet_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml&apos;,
lc_xml_node_strings_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml&apos;,
lc_xml_node_core_ct TYPE string VALUE &apos;application/vnd.openxmlformats-package.core-properties+xml&apos;,
lc_xml_node_table_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml&apos;,
lc_xml_node_drawings_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.drawing+xml&apos;,
lc_xml_node_chart_ct TYPE string VALUE &apos;application/vnd.openxmlformats-officedocument.drawingml.chart+xml&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_nested_iterator TYPE REF TO cl_object_collection_iterator,
lo_table TYPE REF TO zcl_excel_table.
DATA: lv_worksheets_num TYPE i,
lv_worksheets_numc TYPE numc3,
lv_xml_node_worksheet_pn TYPE string,
lv_xml_size TYPE i,
lv_value TYPE string,
lv_drawing_index TYPE i VALUE 1,
lv_index_str TYPE string.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;UTF-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node types
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_types
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_types_ns ).
**********************************************************************
* STEP 4: Create subnodes
&quot; rels node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_default
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_extension
value = lc_xml_node_rels_ext ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_rels_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; extension node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_default
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_extension
value = lc_xml_node_xml_ext ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_xml_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Theme node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lc_xml_node_theme_pn ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_theme_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Styles node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lc_xml_node_styles_pn ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_styles_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Workbook node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lc_xml_node_workb_pn ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_workb_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Properties node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lc_xml_node_props_pn ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_props_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Worksheet node
lv_worksheets_num = excel-&gt;get_worksheets_size( ).
DO lv_worksheets_num TIMES.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
MOVE sy-index TO lv_worksheets_numc.
SHIFT lv_worksheets_numc LEFT DELETING LEADING &apos;0&apos;.
lv_xml_node_worksheet_pn = lc_xml_node_worksheet_pn.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xml_node_worksheet_pn WITH lv_worksheets_numc.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lv_xml_node_worksheet_pn ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_worksheet_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDDO.
lo_iterator = me-&gt;excel-&gt;get_worksheets_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lo_nested_iterator = lo_worksheet-&gt;get_tables_iterator( ).
WHILE lo_nested_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_table ?= lo_nested_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_value = lo_table-&gt;get_name( ).
CONCATENATE &apos;/xl/tables/&apos; lv_value &apos;.xml&apos; INTO lv_value.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lv_value ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_table_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDWHILE.
&quot; Drawings
DATA: lo_drawings TYPE REF TO zcl_excel_drawings.
lo_drawings = lo_worksheet-&gt;get_drawings( ).
IF lo_drawings-&gt;is_empty( ) = abap_false.
lv_index_str = lv_drawing_index.
CONDENSE lv_index_str NO-GAPS.
CONCATENATE &apos;/&apos; me-&gt;c_xl_drawings INTO lv_value.
REPLACE &apos;#&apos; WITH lv_index_str INTO lv_value.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lv_value ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_drawings_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ADD 1 TO lv_drawing_index.
ENDIF.
ENDWHILE.
&quot; media mimes
DATA: lo_drawing TYPE REF TO zcl_excel_drawing,
lt_media_type TYPE TABLE OF mimetypes-extension,
lv_media_type TYPE mimetypes-extension,
lv_mime_type TYPE mimetypes-type.
lo_iterator = me-&gt;excel-&gt;get_drawings_iterator( zcl_excel_drawing=&gt;type_image ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) = abap_true.
lo_drawing ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_media_type = lo_drawing-&gt;get_media_type( ).
COLLECT lv_media_type INTO lt_media_type.
ENDWHILE.
LOOP AT lt_media_type INTO lv_media_type.
CALL FUNCTION &apos;SDOK_MIMETYPE_GET&apos;
EXPORTING
extension = lv_media_type
IMPORTING
mimetype = lv_mime_type.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_default
parent = lo_document ).
lv_value = lv_media_type.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_extension
value = lv_value ).
lv_value = lv_mime_type.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDLOOP.
&quot; Charts
lo_iterator = me-&gt;excel-&gt;get_drawings_iterator( zcl_excel_drawing=&gt;type_chart ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) = abap_true.
lo_drawing ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lv_index_str = lo_drawing-&gt;get_index( ).
CONDENSE lv_index_str.
lv_value = lc_xml_node_chart_pn.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_value WITH lv_index_str.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lv_value ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_chart_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDWHILE.
&quot; Strings node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lc_xml_node_strings_pn ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_strings_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Strings node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_override
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_partname
value = lc_xml_node_core_pn ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_core_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_DOCPROPS_APP" VERSION="1" LANGU="E" DESCRIPT="Create &apos;docProps/app.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_DOCPROPS_APP" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_DOCPROPS_APP.
** Constant node name
DATA: lc_xml_node_properties TYPE string VALUE &apos;Properties&apos;,
lc_xml_node_application TYPE string VALUE &apos;Application&apos;,
lc_xml_node_docsecurity TYPE string VALUE &apos;DocSecurity&apos;,
lc_xml_node_scalecrop TYPE string VALUE &apos;ScaleCrop&apos;,
lc_xml_node_headingpairs TYPE string VALUE &apos;HeadingPairs&apos;,
lc_xml_node_vector TYPE string VALUE &apos;vector&apos;,
lc_xml_node_variant TYPE string VALUE &apos;variant&apos;,
lc_xml_node_lpstr TYPE string VALUE &apos;lpstr&apos;,
lc_xml_node_i4 TYPE string VALUE &apos;i4&apos;,
lc_xml_node_titlesofparts TYPE string VALUE &apos;TitlesOfParts&apos;,
lc_xml_node_company TYPE string VALUE &apos;Company&apos;,
lc_xml_node_linksuptodate TYPE string VALUE &apos;LinksUpToDate&apos;,
lc_xml_node_shareddoc TYPE string VALUE &apos;SharedDoc&apos;,
lc_xml_node_hyperlinkschanged TYPE string VALUE &apos;HyperlinksChanged&apos;,
lc_xml_node_appversion TYPE string VALUE &apos;AppVersion&apos;,
&quot; Namespace prefix
lc_vt_ns TYPE string VALUE &apos;vt&apos;,
lc_xml_node_props_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/extended-properties&apos;,
lc_xml_node_props_vt_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes&apos;,
&quot; Node attributes
lc_xml_attr_size TYPE string VALUE &apos;size&apos;,
lc_xml_attr_basetype TYPE string VALUE &apos;baseType&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_sub_element_vector TYPE REF TO if_ixml_element,
lo_sub_element_variant TYPE REF TO if_ixml_element,
lo_sub_element_lpstr TYPE REF TO if_ixml_element,
lo_sub_element_i4 TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_value TYPE string.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node properties
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_properties
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_props_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:vt&apos;
value = lc_xml_node_props_vt_ns ).
**********************************************************************
* STEP 4: Create subnodes
&quot; Application
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_application
parent = lo_document ).
lv_value = excel-&gt;zif_excel_book_properties~application.
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; DocSecurity
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_docsecurity
parent = lo_document ).
lv_value = excel-&gt;zif_excel_book_properties~docsecurity.
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; ScaleCrop
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_scalecrop
parent = lo_document ).
lv_value = me-&gt;flag2bool( excel-&gt;zif_excel_book_properties~scalecrop ).
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; HeadingPairs
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_headingpairs
parent = lo_document ).
&quot; * vector node
lo_sub_element_vector = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_vector
prefix = lc_vt_ns
parent = lo_document ).
lo_sub_element_vector-&gt;set_attribute_ns( name = lc_xml_attr_size
value = &apos;2&apos; ).
lo_sub_element_vector-&gt;set_attribute_ns( name = lc_xml_attr_basetype
value = lc_xml_node_variant ).
&quot; ** variant node
lo_sub_element_variant = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_variant
prefix = lc_vt_ns
parent = lo_document ).
&quot; *** lpstr node
lo_sub_element_lpstr = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_lpstr
prefix = lc_vt_ns
parent = lo_document ).
lv_value = excel-&gt;get_worksheets_name( ).
lo_sub_element_lpstr-&gt;set_value( value = lv_value ).
lo_sub_element_variant-&gt;append_child( new_child = lo_sub_element_lpstr ). &quot; lpstr node
lo_sub_element_vector-&gt;append_child( new_child = lo_sub_element_variant ). &quot; variant node
&quot; ** variant node
lo_sub_element_variant = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_variant
prefix = lc_vt_ns
parent = lo_document ).
&quot; *** i4 node
lo_sub_element_i4 = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_i4
prefix = lc_vt_ns
parent = lo_document ).
lv_value = excel-&gt;get_worksheets_size( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_sub_element_i4-&gt;set_value( value = lv_value ).
lo_sub_element_variant-&gt;append_child( new_child = lo_sub_element_i4 ). &quot; lpstr node
lo_sub_element_vector-&gt;append_child( new_child = lo_sub_element_variant ). &quot; variant node
lo_element-&gt;append_child( new_child = lo_sub_element_vector ). &quot; vector node
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; HeadingPairs
&quot; TitlesOfParts
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_titlesofparts
parent = lo_document ).
&quot; * vector node
lo_sub_element_vector = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_vector
prefix = lc_vt_ns
parent = lo_document ).
lv_value = excel-&gt;get_worksheets_size( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_sub_element_vector-&gt;set_attribute_ns( name = lc_xml_attr_size
value = lv_value ).
lo_sub_element_vector-&gt;set_attribute_ns( name = lc_xml_attr_basetype
value = lc_xml_node_lpstr ).
lo_iterator = excel-&gt;get_worksheets_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
&quot; ** lpstr node
lo_sub_element_lpstr = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_lpstr
prefix = lc_vt_ns
parent = lo_document ).
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_value = lo_worksheet-&gt;get_title( ).
lo_sub_element_lpstr-&gt;set_value( value = lv_value ).
lo_sub_element_vector-&gt;append_child( new_child = lo_sub_element_lpstr ). &quot; lpstr node
ENDWHILE.
lo_element-&gt;append_child( new_child = lo_sub_element_vector ). &quot; vector node
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; TitlesOfParts
&quot; Company
IF excel-&gt;zif_excel_book_properties~company IS NOT INITIAL.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_company
parent = lo_document ).
lv_value = excel-&gt;zif_excel_book_properties~company.
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
&quot; LinksUpToDate
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_linksuptodate
parent = lo_document ).
lv_value = me-&gt;flag2bool( excel-&gt;zif_excel_book_properties~linksuptodate ).
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; SharedDoc
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_shareddoc
parent = lo_document ).
lv_value = me-&gt;flag2bool( excel-&gt;zif_excel_book_properties~shareddoc ).
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; HyperlinksChanged
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_hyperlinkschanged
parent = lo_document ).
lv_value = me-&gt;flag2bool( excel-&gt;zif_excel_book_properties~hyperlinkschanged ).
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; AppVersion
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_appversion
parent = lo_document ).
lv_value = excel-&gt;zif_excel_book_properties~appversion.
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_DOCPROPS_CORE" VERSION="1" LANGU="E" DESCRIPT="Create &apos;docProps/core.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_DOCPROPS_CORE" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_DOCPROPS_CORE.
** Constant node name
DATA: lc_xml_node_coreproperties TYPE string VALUE &apos;coreProperties&apos;,
lc_xml_node_creator TYPE string VALUE &apos;creator&apos;,
lc_xml_node_lastmodifiedby TYPE string VALUE &apos;lastModifiedBy&apos;,
lc_xml_node_created TYPE string VALUE &apos;created&apos;,
lc_xml_node_modified TYPE string VALUE &apos;modified&apos;,
&quot; Node attributes
lc_xml_attr_type TYPE string VALUE &apos;type&apos;,
lc_xml_attr_target TYPE string VALUE &apos;dcterms:W3CDTF&apos;,
&quot; Node namespace
lc_cp_ns TYPE string VALUE &apos;cp&apos;,
lc_dc_ns TYPE string VALUE &apos;dc&apos;,
lc_dcterms_ns TYPE string VALUE &apos;dcterms&apos;,
* lc_dcmitype_ns TYPE string VALUE &apos;dcmitype&apos;,
lc_xsi_ns TYPE string VALUE &apos;xsi&apos;,
lc_xml_node_cp_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/package/2006/metadata/core-properties&apos;,
lc_xml_node_dc_ns TYPE string VALUE &apos;http://purl.org/dc/elements/1.1/&apos;,
lc_xml_node_dcterms_ns TYPE string VALUE &apos;http://purl.org/dc/terms/&apos;,
lc_xml_node_dcmitype_ns TYPE string VALUE &apos;http://purl.org/dc/dcmitype/&apos;,
lc_xml_node_xsi_ns TYPE string VALUE &apos;http://www.w3.org/2001/XMLSchema-instance&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer.
DATA: lv_value TYPE string,
lv_date TYPE sydatum,
lv_time TYPE syuzeit.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node coreProperties
lo_element_root = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_coreproperties
prefix = lc_cp_ns
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:cp&apos;
value = lc_xml_node_cp_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:dc&apos;
value = lc_xml_node_dc_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:dcterms&apos;
value = lc_xml_node_dcterms_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:dcmitype&apos;
value = lc_xml_node_dcmitype_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:xsi&apos;
value = lc_xml_node_xsi_ns ).
**********************************************************************
* STEP 4: Create subnodes
&quot; Creator node
lo_element = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_creator
prefix = lc_dc_ns
parent = lo_document ).
lv_value = excel-&gt;zif_excel_book_properties~creator.
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; lastModifiedBy node
lo_element = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_lastmodifiedby
prefix = lc_cp_ns
parent = lo_document ).
lv_value = excel-&gt;zif_excel_book_properties~lastmodifiedby.
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Created node
lo_element = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_created
prefix = lc_dcterms_ns
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
prefix = lc_xsi_ns
value = lc_xml_attr_target ).
CONVERT TIME STAMP excel-&gt;zif_excel_book_properties~created TIME ZONE sy-zonlo INTO DATE lv_date TIME lv_time.
CONCATENATE lv_date lv_time INTO lv_value RESPECTING BLANKS.
REPLACE ALL OCCURRENCES OF REGEX &apos;([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})&apos; IN lv_value WITH &apos;$1-$2-$3T$4:$5:$6Z&apos;.
* lv_value = excel-&gt;zif_excel_book_properties~created.
* lv_value = &apos;2010-07-04T14:58:53Z&apos;.
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Modified node
lo_element = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_modified
prefix = lc_dcterms_ns
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
prefix = lc_xsi_ns
value = lc_xml_attr_target ).
CONVERT TIME STAMP excel-&gt;zif_excel_book_properties~modified TIME ZONE sy-zonlo INTO DATE lv_date TIME lv_time.
CONCATENATE lv_date lv_time INTO lv_value RESPECTING BLANKS.
REPLACE ALL OCCURRENCES OF REGEX &apos;([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})&apos; IN lv_value WITH &apos;$1-$2-$3T$4:$5:$6Z&apos;.
* lv_value = excel-&gt;zif_excel_book_properties~modified.
* lv_value = &apos;2010-07-04T14:58:53Z&apos;.
lo_element-&gt;set_value( value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_RELATIONSHIPS" VERSION="1" LANGU="E" DESCRIPT="Create &apos;_rels/.rels&apos;" EXPOSURE="1" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_RELATIONSHIPS" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_RELATIONSHIPS.
** Constant node name
DATA: lc_xml_node_relationships TYPE string VALUE &apos;Relationships&apos;,
lc_xml_node_relationship TYPE string VALUE &apos;Relationship&apos;,
&quot; Node attributes
lc_xml_attr_id TYPE string VALUE &apos;Id&apos;,
lc_xml_attr_type TYPE string VALUE &apos;Type&apos;,
lc_xml_attr_target TYPE string VALUE &apos;Target&apos;,
&quot; Node namespace
lc_xml_node_rels_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/package/2006/relationships&apos;,
&quot; Node id
lc_xml_node_rId1_id TYPE string VALUE &apos;rId1&apos;,
lc_xml_node_rId2_id TYPE string VALUE &apos;rId2&apos;,
lc_xml_node_rId3_id TYPE string VALUE &apos;rId3&apos;,
&quot; Node type
lc_xml_node_rId1_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument&apos;,
lc_xml_node_rId2_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties&apos;,
lc_xml_node_rId3_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties&apos;,
&quot; Node target
lc_xml_node_rId1_tg TYPE string VALUE &apos;xl/workbook.xml&apos;,
lc_xml_node_rId2_tg TYPE string VALUE &apos;docProps/core.xml&apos;,
lc_xml_node_rId3_tg TYPE string VALUE &apos;docProps/app.xml&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node relationships
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_relationships
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_rels_ns ).
**********************************************************************
* STEP 4: Create subnodes
&quot; Theme node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lc_xml_node_rId3_id ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rId3_tp ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lc_xml_node_rId3_tg ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Styles node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lc_xml_node_rId2_id ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rId2_tp ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lc_xml_node_rId2_tg ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; rels node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lc_xml_node_rId1_id ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rId1_tp ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lc_xml_node_rId1_tg ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_CHARTS" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/charts/chart1.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_CHARTS" SCONAME="IO_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_CHARTS" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_CHARTS.
** Constant node name
CONSTANTS: lc_xml_node_chartspace TYPE string VALUE &apos;c:chartSpace&apos;,
lc_xml_node_ns_c TYPE string VALUE &apos;http://schemas.openxmlformats.org/drawingml/2006/chart&apos;,
lc_xml_node_ns_a TYPE string VALUE &apos;http://schemas.openxmlformats.org/drawingml/2006/main&apos;,
lc_xml_node_ns_r TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships&apos;,
lc_xml_node_date1904 TYPE string VALUE &apos;c:date1904&apos;,
lc_xml_node_lang TYPE string VALUE &apos;c:lang&apos;,
lc_xml_node_roundedcorners TYPE string VALUE &apos;c:roundedCorners&apos;,
lc_xml_node_altcont TYPE string VALUE &apos;mc:AlternateContent&apos;,
lc_xml_node_altcont_ns_mc TYPE string VALUE &apos;http://schemas.openxmlformats.org/markup-compatibility/2006&apos;,
lc_xml_node_choice TYPE string VALUE &apos;mc:Choice&apos;,
lc_xml_node_choice_ns_requires TYPE string VALUE &apos;c14&apos;,
lc_xml_node_choice_ns_c14 TYPE string VALUE &apos;http://schemas.microsoft.com/office/drawing/2007/8/2/chart&apos;,
lc_xml_node_style TYPE string VALUE &apos;c14:style&apos;,
lc_xml_node_fallback TYPE string VALUE &apos;mc:Fallback&apos;,
lc_xml_node_style2 TYPE string VALUE &apos;c:style&apos;,
&quot;---------------------------CHART
lc_xml_node_chart TYPE string VALUE &apos;c:chart&apos;,
lc_xml_node_autotitledeleted TYPE string VALUE &apos;c:autoTitleDeleted&apos;,
&quot;plotArea
lc_xml_node_plotarea TYPE string VALUE &apos;c:plotArea&apos;,
lc_xml_node_layout TYPE string VALUE &apos;c:layout&apos;,
lc_xml_node_varycolors TYPE string VALUE &apos;c:varyColors&apos;,
lc_xml_node_ser TYPE string VALUE &apos;c:ser&apos;,
lc_xml_node_idx TYPE string VALUE &apos;c:idx&apos;,
lc_xml_node_order TYPE string VALUE &apos;c:order&apos;,
lc_xml_node_tx TYPE string VALUE &apos;c:tx&apos;,
lc_xml_node_v TYPE string VALUE &apos;c:v&apos;,
lc_xml_node_val TYPE string VALUE &apos;c:val&apos;,
lc_xml_node_cat TYPE string VALUE &apos;c:cat&apos;,
lc_xml_node_numref TYPE string VALUE &apos;c:numRef&apos;,
lc_xml_node_strref TYPE string VALUE &apos;c:strRef&apos;,
lc_xml_node_f TYPE string VALUE &apos;c:f&apos;, &quot;this is the range
&quot;note: numcache avoided
lc_xml_node_dlbls TYPE string VALUE &apos;c:dLbls&apos;,
lc_xml_node_showlegendkey TYPE string VALUE &apos;c:showLegendKey&apos;,
lc_xml_node_showval TYPE string VALUE &apos;c:showVal&apos;,
lc_xml_node_showcatname TYPE string VALUE &apos;c:showCatName&apos;,
lc_xml_node_showsername TYPE string VALUE &apos;c:showSerName&apos;,
lc_xml_node_showpercent TYPE string VALUE &apos;c:showPercent&apos;,
lc_xml_node_showbubblesize TYPE string VALUE &apos;c:showBubbleSize&apos;,
&quot;plotArea-&gt;pie
lc_xml_node_piechart TYPE string VALUE &apos;c:pieChart&apos;,
lc_xml_node_showleaderlines TYPE string VALUE &apos;c:showLeaderLines&apos;,
lc_xml_node_firstsliceang TYPE string VALUE &apos;c:firstSliceAng&apos;,
&quot;plotArea-&gt;line
lc_xml_node_linechart TYPE string VALUE &apos;c:lineChart&apos;,
lc_xml_node_symbol TYPE string VALUE &apos;c:symbol&apos;,
lc_xml_node_marker TYPE string VALUE &apos;c:marker&apos;,
lc_xml_node_smooth TYPE string VALUE &apos;c:smooth&apos;,
&quot;plotArea-&gt;bar
lc_xml_node_invertifnegative TYPE string VALUE &apos;c:invertIfNegative&apos;,
lc_xml_node_barchart TYPE string VALUE &apos;c:barChart&apos;,
lc_xml_node_bardir TYPE string VALUE &apos;c:barDir&apos;,
lc_xml_node_gapwidth TYPE string VALUE &apos;c:gapWidth&apos;,
&quot;plotArea-&gt;line + plotArea-&gt;bar
lc_xml_node_grouping TYPE string VALUE &apos;c:grouping&apos;,
lc_xml_node_axid TYPE string VALUE &apos;c:axId&apos;,
lc_xml_node_catax TYPE string VALUE &apos;c:catAx&apos;,
lc_xml_node_valax TYPE string VALUE &apos;c:valAx&apos;,
lc_xml_node_scaling TYPE string VALUE &apos;c:scaling&apos;,
lc_xml_node_orientation TYPE string VALUE &apos;c:orientation&apos;,
lc_xml_node_delete TYPE string VALUE &apos;c:delete&apos;,
lc_xml_node_axpos TYPE string VALUE &apos;c:axPos&apos;,
lc_xml_node_numfmt TYPE string VALUE &apos;c:numFmt&apos;,
lc_xml_node_majorgridlines TYPE string VALUE &apos;c:majorGridlines&apos;,
lc_xml_node_majortickmark TYPE string VALUE &apos;c:majorTickMark&apos;,
lc_xml_node_minortickmark TYPE string VALUE &apos;c:minorTickMark&apos;,
lc_xml_node_ticklblpos TYPE string VALUE &apos;c:tickLblPos&apos;,
lc_xml_node_crossax TYPE string VALUE &apos;c:crossAx&apos;,
lc_xml_node_crosses TYPE string VALUE &apos;c:crosses&apos;,
lc_xml_node_auto TYPE string VALUE &apos;c:auto&apos;,
lc_xml_node_lblalgn TYPE string VALUE &apos;c:lblAlgn&apos;,
lc_xml_node_lbloffset TYPE string VALUE &apos;c:lblOffset&apos;,
lc_xml_node_nomultilvllbl TYPE string VALUE &apos;c:noMultiLvlLbl&apos;,
lc_xml_node_crossbetween TYPE string VALUE &apos;c:crossBetween&apos;,
&quot;legend
lc_xml_node_legend TYPE string VALUE &apos;c:legend&apos;,
&quot;legend-&gt;pie
lc_xml_node_legendpos TYPE string VALUE &apos;c:legendPos&apos;,
* lc_xml_node_layout TYPE string VALUE &apos;c:layout&apos;, &quot;already exist
lc_xml_node_overlay TYPE string VALUE &apos;c:overlay&apos;,
lc_xml_node_txpr TYPE string VALUE &apos;c:txPr&apos;,
lc_xml_node_bodypr TYPE string VALUE &apos;a:bodyPr&apos;,
lc_xml_node_lststyle TYPE string VALUE &apos;a:lstStyle&apos;,
lc_xml_node_p TYPE string VALUE &apos;a:p&apos;,
lc_xml_node_ppr TYPE string VALUE &apos;a:pPr&apos;,
lc_xml_node_defrpr TYPE string VALUE &apos;a:defRPr&apos;,
lc_xml_node_endpararpr TYPE string VALUE &apos;a:endParaRPr&apos;,
&quot;legend-&gt;bar + legend-&gt;line
lc_xml_node_plotvisonly TYPE string VALUE &apos;c:plotVisOnly&apos;,
lc_xml_node_dispblanksas TYPE string VALUE &apos;c:dispBlanksAs&apos;,
lc_xml_node_showdlblsovermax TYPE string VALUE &apos;c:showDLblsOverMax&apos;,
&quot;---------------------------END OF CHART
lc_xml_node_printsettings TYPE string VALUE &apos;c:printSettings&apos;,
lc_xml_node_headerfooter TYPE string VALUE &apos;c:headerFooter&apos;,
lc_xml_node_pagemargins TYPE string VALUE &apos;c:pageMargins&apos;,
lc_xml_node_pagesetup TYPE string VALUE &apos;c:pageSetup&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element_cellanchor TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer.
DATA: lv_rel_id TYPE i.
DATA lo_element TYPE REF TO if_ixml_element.
DATA lo_element2 TYPE REF TO if_ixml_element.
DATA lo_element3 TYPE REF TO if_ixml_element.
DATA lo_el_rootchart TYPE REF TO if_ixml_element.
DATA lo_element4 TYPE REF TO if_ixml_element.
DATA lo_element5 TYPE REF TO if_ixml_element.
DATA lo_element6 TYPE REF TO if_ixml_element.
DATA lo_element7 TYPE REF TO if_ixml_element.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
***********************************************************************
* STEP 3: Create main node relationships
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_chartspace
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:c&apos;
value = lc_xml_node_ns_c ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:a&apos;
value = lc_xml_node_ns_a ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:r&apos;
value = lc_xml_node_ns_r ).
**********************************************************************
* STEP 4: Create chart
DATA lo_chartb TYPE REF TO zcl_excel_graph_bars.
DATA lo_chartp TYPE REF TO zcl_excel_graph_pie.
DATA lo_chartl TYPE REF TO zcl_excel_graph_line.
DATA lo_chart TYPE REF TO zcl_excel_graph.
DATA ls_serie TYPE zcl_excel_graph=&gt;s_series.
DATA ls_ax TYPE zcl_excel_graph_bars=&gt;s_ax.
DATA lv_str TYPE string.
&quot;Identify chart type
CASE io_drawing-&gt;graph_type.
WHEN zcl_excel_drawing=&gt;c_graph_bars.
lo_chartb ?= io_drawing-&gt;graph.
WHEN zcl_excel_drawing=&gt;c_graph_pie.
lo_chartp ?= io_drawing-&gt;graph.
WHEN zcl_excel_drawing=&gt;c_graph_line.
lo_chartl ?= io_drawing-&gt;graph.
WHEN OTHERS.
ENDCASE.
lo_chart = io_drawing-&gt;graph.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_date1904
parent = lo_element_root ).
lo_element-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_1904val ).
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_lang
parent = lo_element_root ).
lo_element-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_langval ).
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_roundedcorners
parent = lo_element_root ).
lo_element-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_roundedcornersval ).
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_altcont
parent = lo_element_root ).
lo_element-&gt;set_attribute_ns( name = &apos;xmlns:mc&apos;
value = lc_xml_node_altcont_ns_mc ).
&quot;Choice
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_choice
parent = lo_element ).
lo_element2-&gt;set_attribute_ns( name = &apos;Requires&apos;
value = lc_xml_node_choice_ns_requires ).
lo_element2-&gt;set_attribute_ns( name = &apos;xmlns:c14&apos;
value = lc_xml_node_choice_ns_c14 ).
&quot;C14:style
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_style
parent = lo_element2 ).
lo_element3-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_c14styleval ).
&quot;Fallback
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_fallback
parent = lo_element ).
&quot;C:style
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_style2
parent = lo_element2 ).
lo_element3-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_styleval ).
&quot;---------------------------CHART
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_chart
parent = lo_element_root ).
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_autotitledeleted
parent = lo_element ).
lo_element2-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_autotitledeletedval ).
&quot;plotArea
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_plotarea
parent = lo_element ).
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_layout
parent = lo_element2 ).
CASE io_drawing-&gt;graph_type.
WHEN zcl_excel_drawing=&gt;c_graph_bars.
&quot;----bar
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_barchart
parent = lo_element2 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_bardir
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_bardirval ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_grouping
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_groupingval ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_varycolors
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_varycolorsval ).
&quot;series
LOOP AT lo_chartb-&gt;series INTO ls_serie.
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_ser
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_idx
parent = lo_element4 ).
IF ls_serie-idx IS NOT INITIAL.
lv_str = ls_serie-idx.
ELSE.
lv_str = sy-tabix - 1.
ENDIF.
CONDENSE lv_str.
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lv_str ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_order
parent = lo_element4 ).
lv_str = ls_serie-order.
CONDENSE lv_str.
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lv_str ).
IF ls_serie-sername IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_tx
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_v
parent = lo_element5 ).
lo_element6-&gt;set_value( value = ls_serie-sername ).
ENDIF.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_invertifnegative
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_serie-invertifnegative ).
IF ls_serie-lbl IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_cat
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_strref
parent = lo_element5 ).
lo_element7 = lo_document-&gt;create_simple_element( name = lc_xml_node_f
parent = lo_element6 ).
lo_element7-&gt;set_value( value = ls_serie-lbl ).
ENDIF.
IF ls_serie-ref IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_val
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_numref
parent = lo_element5 ).
lo_element7 = lo_document-&gt;create_simple_element( name = lc_xml_node_f
parent = lo_element6 ).
lo_element7-&gt;set_value( value = ls_serie-ref ).
ENDIF.
ENDLOOP.
&quot;endseries
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_dlbls
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showlegendkey
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_showlegendkeyval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showval
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_showvalval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showcatname
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_showcatnameval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showsername
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_showsernameval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showpercent
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_showpercentval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showbubblesize
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_showbubblesizeval ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_gapwidth
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_gapwidthval ).
&quot;axes
lo_el_rootchart = lo_element3.
LOOP AT lo_chartb-&gt;axes INTO ls_ax.
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axid
parent = lo_el_rootchart ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axid ).
CASE ls_ax-type.
WHEN zcl_excel_graph_bars=&gt;c_catax.
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_catax
parent = lo_element2 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axid
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axid ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_scaling
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_orientation
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-orientation ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_delete
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-delete ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axpos
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axpos ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_numfmt
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;formatCode&apos;
value = ls_ax-formatcode ).
lo_element4-&gt;set_attribute_ns( name = &apos;sourceLinked&apos;
value = ls_ax-sourcelinked ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_majortickmark
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-majortickmark ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_minortickmark
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-minortickmark ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_ticklblpos
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-ticklblpos ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crossax
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crossax ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crosses
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crosses ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_auto
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-auto ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_lblalgn
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-lblalgn ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_lbloffset
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-lbloffset ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_nomultilvllbl
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-nomultilvllbl ).
WHEN zcl_excel_graph_bars=&gt;c_valax.
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_valax
parent = lo_element2 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axid
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axid ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_scaling
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_orientation
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-orientation ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_delete
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-delete ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axpos
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axpos ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_majorgridlines
parent = lo_element3 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_numfmt
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;formatCode&apos;
value = ls_ax-formatcode ).
lo_element4-&gt;set_attribute_ns( name = &apos;sourceLinked&apos;
value = ls_ax-sourcelinked ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_majortickmark
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-majortickmark ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_minortickmark
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-minortickmark ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_ticklblpos
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-ticklblpos ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crossax
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crossax ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crosses
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crosses ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crossbetween
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crossbetween ).
WHEN OTHERS.
ENDCASE.
ENDLOOP.
&quot;endaxes
WHEN zcl_excel_drawing=&gt;c_graph_pie.
&quot;----pie
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_piechart
parent = lo_element2 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_varycolors
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_varycolorsval ).
&quot;series
LOOP AT lo_chartp-&gt;series INTO ls_serie.
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_ser
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_idx
parent = lo_element4 ).
IF ls_serie-idx IS NOT INITIAL.
lv_str = ls_serie-idx.
ELSE.
lv_str = sy-tabix - 1.
ENDIF.
CONDENSE lv_str.
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lv_str ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_order
parent = lo_element4 ).
lv_str = ls_serie-order.
CONDENSE lv_str.
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lv_str ).
IF ls_serie-sername IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_tx
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_v
parent = lo_element5 ).
lo_element6-&gt;set_value( value = ls_serie-sername ).
ENDIF.
IF ls_serie-lbl IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_cat
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_strref
parent = lo_element5 ).
lo_element7 = lo_document-&gt;create_simple_element( name = lc_xml_node_f
parent = lo_element6 ).
lo_element7-&gt;set_value( value = ls_serie-lbl ).
ENDIF.
IF ls_serie-ref IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_val
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_numref
parent = lo_element5 ).
lo_element7 = lo_document-&gt;create_simple_element( name = lc_xml_node_f
parent = lo_element6 ).
lo_element7-&gt;set_value( value = ls_serie-ref ).
ENDIF.
ENDLOOP.
&quot;endseries
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_dlbls
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showlegendkey
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_showlegendkeyval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showval
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_showvalval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showcatname
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_showcatnameval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showsername
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_showsernameval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showpercent
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_showpercentval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showbubblesize
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_showbubblesizeval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showleaderlines
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_showleaderlinesval ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_firstsliceang
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_firstsliceangval ).
WHEN zcl_excel_drawing=&gt;c_graph_line.
&quot;----line
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_linechart
parent = lo_element2 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_grouping
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_groupingval ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_varycolors
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_varycolorsval ).
&quot;series
LOOP AT lo_chartl-&gt;series INTO ls_serie.
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_ser
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_idx
parent = lo_element4 ).
IF ls_serie-idx IS NOT INITIAL.
lv_str = ls_serie-idx.
ELSE.
lv_str = sy-tabix - 1.
ENDIF.
CONDENSE lv_str.
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lv_str ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_order
parent = lo_element4 ).
lv_str = ls_serie-order.
CONDENSE lv_str.
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lv_str ).
IF ls_serie-sername IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_tx
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_v
parent = lo_element5 ).
lo_element6-&gt;set_value( value = ls_serie-sername ).
ENDIF.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_marker
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_symbol
parent = lo_element5 ).
lo_element6-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_serie-symbol ).
IF ls_serie-lbl IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_cat
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_strref
parent = lo_element5 ).
lo_element7 = lo_document-&gt;create_simple_element( name = lc_xml_node_f
parent = lo_element6 ).
lo_element7-&gt;set_value( value = ls_serie-lbl ).
ENDIF.
IF ls_serie-ref IS NOT INITIAL.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_val
parent = lo_element4 ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_numref
parent = lo_element5 ).
lo_element7 = lo_document-&gt;create_simple_element( name = lc_xml_node_f
parent = lo_element6 ).
lo_element7-&gt;set_value( value = ls_serie-ref ).
ENDIF.
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_smooth
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_serie-smooth ).
ENDLOOP.
&quot;endseries
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_dlbls
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showlegendkey
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_showlegendkeyval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showval
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_showvalval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showcatname
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_showcatnameval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showsername
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_showsernameval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showpercent
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_showpercentval ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_showbubblesize
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_showbubblesizeval ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_marker
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;NS_MARKERVAL ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_smooth
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;NS_SMOOTHVAL ).
&quot;axes
lo_el_rootchart = lo_element3.
LOOP AT lo_chartl-&gt;axes INTO ls_ax.
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axid
parent = lo_el_rootchart ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axid ).
CASE ls_ax-type.
WHEN zcl_excel_graph_line=&gt;c_catax.
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_catax
parent = lo_element2 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axid
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axid ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_scaling
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_orientation
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-orientation ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_delete
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-delete ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axpos
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axpos ).
* lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_numfmt
* parent = lo_element3 ).
* lo_element4-&gt;set_attribute_ns( name = &apos;formatCode&apos;
* value = ls_ax-formatcode ).
* lo_element4-&gt;set_attribute_ns( name = &apos;sourceLinked&apos;
* value = ls_ax-sourcelinked ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_majortickmark
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-majortickmark ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_minortickmark
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-minortickmark ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_ticklblpos
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-ticklblpos ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crossax
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crossax ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crosses
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crosses ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_auto
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-auto ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_lblalgn
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-lblalgn ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_lbloffset
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-lbloffset ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_nomultilvllbl
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-nomultilvllbl ).
WHEN zcl_excel_graph_line=&gt;c_valax.
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_valax
parent = lo_element2 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axid
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axid ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_scaling
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_orientation
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-orientation ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_delete
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-delete ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_axpos
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-axpos ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_majorgridlines
parent = lo_element3 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_numfmt
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;formatCode&apos;
value = ls_ax-formatcode ).
lo_element4-&gt;set_attribute_ns( name = &apos;sourceLinked&apos;
value = ls_ax-sourcelinked ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_majortickmark
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-majortickmark ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_minortickmark
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-minortickmark ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_ticklblpos
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-ticklblpos ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crossax
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crossax ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crosses
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crosses ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_crossbetween
parent = lo_element3 ).
lo_element4-&gt;set_attribute_ns( name = &apos;val&apos;
value = ls_ax-crossbetween ).
WHEN OTHERS.
ENDCASE.
ENDLOOP.
&quot;endaxes
WHEN OTHERS.
ENDCASE.
&quot;legend
IF lo_chart-&gt;print_label EQ abap_true.
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_legend
parent = lo_element ).
CASE io_drawing-&gt;graph_type.
WHEN zcl_excel_drawing=&gt;c_graph_bars.
&quot;----bar
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_legendpos
parent = lo_element2 ).
lo_element3-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_legendposval ).
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_layout
parent = lo_element2 ).
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_overlay
parent = lo_element2 ).
lo_element3-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartb-&gt;ns_overlayval ).
WHEN zcl_excel_drawing=&gt;c_graph_line.
&quot;----line
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_legendpos
parent = lo_element2 ).
lo_element3-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_legendposval ).
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_layout
parent = lo_element2 ).
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_overlay
parent = lo_element2 ).
lo_element3-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartl-&gt;ns_overlayval ).
WHEN zcl_excel_drawing=&gt;c_graph_pie.
&quot;----pie
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_legendpos
parent = lo_element2 ).
lo_element3-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_legendposval ).
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_layout
parent = lo_element2 ).
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_overlay
parent = lo_element2 ).
lo_element3-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chartp-&gt;ns_overlayval ).
lo_element3 = lo_document-&gt;create_simple_element( name = lc_xml_node_txpr
parent = lo_element2 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_bodypr
parent = lo_element3 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_lststyle
parent = lo_element3 ).
lo_element4 = lo_document-&gt;create_simple_element( name = lc_xml_node_p
parent = lo_element3 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_ppr
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;rtl&apos;
value = lo_chartp-&gt;ns_pprrtl ).
lo_element6 = lo_document-&gt;create_simple_element( name = lc_xml_node_defrpr
parent = lo_element5 ).
lo_element5 = lo_document-&gt;create_simple_element( name = lc_xml_node_endpararpr
parent = lo_element4 ).
lo_element5-&gt;set_attribute_ns( name = &apos;lang&apos;
value = lo_chartp-&gt;ns_endpararprlang ).
WHEN OTHERS.
ENDCASE.
ENDIF.
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_plotvisonly
parent = lo_element ).
lo_element2-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_plotvisonlyval ).
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_dispblanksas
parent = lo_element ).
lo_element2-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_dispblanksasval ).
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_showdlblsovermax
parent = lo_element ).
lo_element2-&gt;set_attribute_ns( name = &apos;val&apos;
value = lo_chart-&gt;ns_showdlblsovermaxval ).
&quot;---------------------------END OF CHART
&quot;printSettings
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_printsettings
parent = lo_element_root ).
&quot;headerFooter
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_headerfooter
parent = lo_element ).
&quot;pageMargins
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_pagemargins
parent = lo_element ).
lo_element2-&gt;set_attribute_ns( name = &apos;b&apos;
value = lo_chart-&gt;pagemargins-b ).
lo_element2-&gt;set_attribute_ns( name = &apos;l&apos;
value = lo_chart-&gt;pagemargins-l ).
lo_element2-&gt;set_attribute_ns( name = &apos;r&apos;
value = lo_chart-&gt;pagemargins-r ).
lo_element2-&gt;set_attribute_ns( name = &apos;t&apos;
value = lo_chart-&gt;pagemargins-t ).
lo_element2-&gt;set_attribute_ns( name = &apos;header&apos;
value = lo_chart-&gt;pagemargins-header ).
lo_element2-&gt;set_attribute_ns( name = &apos;footer&apos;
value = lo_chart-&gt;pagemargins-footer ).
&quot;pageSetup
lo_element2 = lo_document-&gt;create_simple_element( name = lc_xml_node_pagesetup
parent = lo_element ).
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWINGS" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/drawings/drawing1.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWINGS" 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_WRITER_2007" CMPNAME="CREATE_XL_DRAWINGS" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_DRAWINGS.
** Constant node name
CONSTANTS: lc_xml_node_wsdr TYPE string VALUE &apos;xdr:wsDr&apos;,
lc_xml_node_ns_xdr TYPE string VALUE &apos;http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing&apos;,
lc_xml_node_ns_a TYPE string VALUE &apos;http://schemas.openxmlformats.org/drawingml/2006/main&apos;.
CONSTANTS: lc_on TYPE string VALUE &apos;1&apos;,
lc_off TYPE string VALUE &apos;0&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element_cellanchor TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_drawings TYPE REF TO zcl_excel_drawings,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: lv_rel_id TYPE i.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
***********************************************************************
* STEP 3: Create main node relationships
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_wsdr
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:xdr&apos;
value = lc_xml_node_ns_xdr ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:a&apos;
value = lc_xml_node_ns_a ).
**********************************************************************
* STEP 4: Create drawings
CLEAR: lv_rel_id.
lo_drawings = io_worksheet-&gt;get_drawings( ).
lo_iterator = lo_drawings-&gt;get_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_drawing ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
ADD 1 TO lv_rel_id.
lo_element_cellanchor = me-&gt;create_xl_drawing_anchor(
io_drawing = lo_drawing
io_document = lo_document
ip_index = lv_rel_id ).
lo_element_root-&gt;append_child( new_child = lo_element_cellanchor ).
ENDWHILE.
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWINGS_RELS" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/drawings/_rels/drawing1.xml.rels&apos;" EXPOSURE="1" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWINGS_RELS" 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_WRITER_2007" CMPNAME="CREATE_XL_DRAWINGS_RELS" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_DRAWINGS_RELS.
** Constant node name
DATA: lc_xml_node_relationships TYPE string VALUE &apos;Relationships&apos;,
lc_xml_node_relationship TYPE string VALUE &apos;Relationship&apos;,
&quot; Node attributes
lc_xml_attr_id TYPE string VALUE &apos;Id&apos;,
lc_xml_attr_type TYPE string VALUE &apos;Type&apos;,
lc_xml_attr_target TYPE string VALUE &apos;Target&apos;,
&quot; Node namespace
lc_xml_node_rels_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/package/2006/relationships&apos;,
lc_xml_node_rid_image_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/image&apos;,
lc_xml_node_rid_chart_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_drawings TYPE REF TO zcl_excel_drawings,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: lv_value TYPE string,
lv_counter TYPE i.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node relationships
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_relationships
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_rels_ns ).
**********************************************************************
* STEP 4: Create subnodes
&quot; Add sheet Relationship nodes here
lv_counter = 0.
lo_drawings = io_worksheet-&gt;get_drawings( ).
lo_iterator = lo_drawings-&gt;get_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_drawing ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
ADD 1 TO lv_counter.
lv_value = lv_counter.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_value ).
lv_value = lo_drawing-&gt;get_media_name( ).
CASE lo_drawing-&gt;get_type( ).
WHEN zcl_excel_drawing=&gt;type_image.
CONCATENATE &apos;../media/&apos; lv_value INTO lv_value.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_image_tp ).
WHEN zcl_excel_drawing=&gt;type_chart.
CONCATENATE &apos;../charts/&apos; lv_value INTO lv_value.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_chart_tp ).
ENDCASE.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDWHILE.
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWING_ANCHOR" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/drawings/drawing1.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWING_ANCHOR" SCONAME="IO_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Drawing" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWING_ANCHOR" SCONAME="IO_DOCUMENT" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWING_ANCHOR" SCONAME="IP_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_DRAWING_ANCHOR" SCONAME="EP_ANCHOR" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_ELEMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="IF_IXML_ELEMENT"/>
<source>method CREATE_XL_DRAWING_ANCHOR.
** Constant node name
CONSTANTS: lc_xml_node_onecellanchor TYPE string VALUE &apos;xdr:oneCellAnchor&apos;,
lc_xml_node_twocellanchor TYPE string VALUE &apos;xdr:twoCellAnchor&apos;,
lc_xml_node_from TYPE string VALUE &apos;xdr:from&apos;,
lc_xml_node_to TYPE string VALUE &apos;xdr:to&apos;,
lc_xml_node_pic TYPE string VALUE &apos;xdr:pic&apos;,
lc_xml_node_ext TYPE string VALUE &apos;xdr:ext&apos;,
lc_xml_node_clientdata TYPE string VALUE &apos;xdr:clientData&apos;,
lc_xml_node_col TYPE string VALUE &apos;xdr:col&apos;,
lc_xml_node_coloff TYPE string VALUE &apos;xdr:colOff&apos;,
lc_xml_node_row TYPE string VALUE &apos;xdr:row&apos;,
lc_xml_node_rowoff TYPE string VALUE &apos;xdr:rowOff&apos;,
lc_xml_node_nvpicpr TYPE string VALUE &apos;xdr:nvPicPr&apos;,
lc_xml_node_cnvpr TYPE string VALUE &apos;xdr:cNvPr&apos;,
lc_xml_node_cnvpicpr TYPE string VALUE &apos;xdr:cNvPicPr&apos;,
lc_xml_node_piclocks TYPE string VALUE &apos;a:picLocks&apos;,
lc_xml_node_sppr TYPE string VALUE &apos;xdr:spPr&apos;,
lc_xml_node_apgeom TYPE string VALUE &apos;a:prstGeom&apos;,
lc_xml_node_aavlst TYPE string VALUE &apos;a:avLst&apos;,
lc_xml_node_graphicframe TYPE string VALUE &apos;xdr:graphicFrame&apos;,
lc_xml_node_nvgraphicframepr TYPE string VALUE &apos;xdr:nvGraphicFramePr&apos;,
lc_xml_node_cnvgraphicframepr TYPE string VALUE &apos;xdr:cNvGraphicFramePr&apos;,
lc_xml_node_graphicframelocks TYPE string VALUE &apos;a:graphicFrameLocks&apos;,
lc_xml_node_xfrm TYPE string VALUE &apos;xdr:xfrm&apos;,
lc_xml_node_aoff TYPE string VALUE &apos;a:off&apos;,
lc_xml_node_aext TYPE string VALUE &apos;a:ext&apos;,
lc_xml_node_agraphic TYPE string VALUE &apos;a:graphic&apos;,
lc_xml_node_agraphicdata TYPE string VALUE &apos;a:graphicData&apos;,
lc_xml_node_ns_c TYPE string VALUE &apos;http://schemas.openxmlformats.org/drawingml/2006/chart&apos;,
lc_xml_node_cchart TYPE string VALUE &apos;c:chart&apos;,
lc_xml_node_blipfill TYPE string VALUE &apos;xdr:blipFill&apos;,
lc_xml_node_ablip TYPE string VALUE &apos;a:blip&apos;,
lc_xml_node_astretch TYPE string VALUE &apos;a:stretch&apos;,
lc_xml_node_ns_r TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships&apos;.
CONSTANTS: lc_on TYPE string VALUE &apos;1&apos;,
lc_off TYPE string VALUE &apos;0&apos;.
DATA: lo_element_graphicframe TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_element2 TYPE REF TO if_ixml_element,
lo_element3 TYPE REF TO if_ixml_element,
lo_element_from TYPE REF TO if_ixml_element,
lo_element_to TYPE REF TO if_ixml_element,
lo_element_ext TYPE REF TO if_ixml_element,
lo_element_pic TYPE REF TO if_ixml_element,
lo_element_clientdata TYPE REF TO if_ixml_element,
ls_position TYPE zexcel_drawing_position,
lv_col TYPE string, &quot; zexcel_cell_column,
lv_row TYPE string, &quot; zexcel_cell_row.
lv_col_offset TYPE string,
lv_row_offset TYPE string,
lv_value TYPE string.
ls_position = io_drawing-&gt;get_position( ).
IF ls_position-anchor = &apos;ONE&apos;.
ep_anchor = io_document-&gt;create_simple_element( name = lc_xml_node_onecellanchor
parent = io_document ).
ELSE.
ep_anchor = io_document-&gt;create_simple_element( name = lc_xml_node_twocellanchor
parent = io_document ).
ENDIF.
* from cell ******************************
lo_element_from = io_document-&gt;create_simple_element( name = lc_xml_node_from
parent = io_document ).
lv_col = ls_position-from-col.
lv_row = ls_position-from-row.
lv_col_offset = ls_position-from-col_offset.
lv_row_offset = ls_position-from-row_offset.
CONDENSE lv_col NO-GAPS.
CONDENSE lv_row NO-GAPS.
CONDENSE lv_col_offset NO-GAPS.
CONDENSE lv_row_offset NO-GAPS.
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_col
parent = io_document ).
lo_element-&gt;set_value( value = lv_col ).
lo_element_from-&gt;append_child( new_child = lo_element ).
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_coloff
parent = io_document ).
lo_element-&gt;set_value( value = lv_col_offset ).
lo_element_from-&gt;append_child( new_child = lo_element ).
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_row
parent = io_document ).
lo_element-&gt;set_value( value = lv_row ).
lo_element_from-&gt;append_child( new_child = lo_element ).
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_rowoff
parent = io_document ).
lo_element-&gt;set_value( value = lv_row_offset ).
lo_element_from-&gt;append_child( new_child = lo_element ).
ep_anchor-&gt;append_child( new_child = lo_element_from ).
IF ls_position-anchor = &apos;ONE&apos;.
* ext ******************************
lo_element_ext = io_document-&gt;create_simple_element( name = lc_xml_node_ext
parent = io_document ).
lv_value = io_drawing-&gt;get_width_emu_str( ).
lo_element_ext-&gt;set_attribute_ns( name = &apos;cx&apos;
value = lv_value ).
lv_value = io_drawing-&gt;get_height_emu_str( ).
lo_element_ext-&gt;set_attribute_ns( name = &apos;cy&apos;
value = lv_value ).
ep_anchor-&gt;append_child( new_child = lo_element_ext ).
ELSEIF ls_position-anchor = &apos;TWO&apos;.
* to cell ******************************
lo_element_to = io_document-&gt;create_simple_element( name = lc_xml_node_to
parent = io_document ).
lv_col = ls_position-to-col.
lv_row = ls_position-to-row.
lv_col_offset = ls_position-to-col_offset.
lv_row_offset = ls_position-to-row_offset.
CONDENSE lv_col NO-GAPS.
CONDENSE lv_row NO-GAPS.
CONDENSE lv_col_offset NO-GAPS.
CONDENSE lv_row_offset NO-GAPS.
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_col
parent = io_document ).
lo_element-&gt;set_value( value = lv_col ).
lo_element_to-&gt;append_child( new_child = lo_element ).
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_coloff
parent = io_document ).
lo_element-&gt;set_value( value = lv_col_offset ).
lo_element_to-&gt;append_child( new_child = lo_element ).
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_row
parent = io_document ).
lo_element-&gt;set_value( value = lv_row ).
lo_element_to-&gt;append_child( new_child = lo_element ).
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_rowoff
parent = io_document ).
lo_element-&gt;set_value( value = lv_row_offset ).
lo_element_to-&gt;append_child( new_child = lo_element ).
ep_anchor-&gt;append_child( new_child = lo_element_to ).
ENDIF.
CASE io_drawing-&gt;get_type( ).
WHEN zcl_excel_drawing=&gt;type_image.
* pic **********************************
lo_element_pic = io_document-&gt;create_simple_element( name = lc_xml_node_pic
parent = io_document ).
* nvPicPr
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_nvpicpr
parent = io_document ).
* cNvPr
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_cnvpr
parent = io_document ).
lv_value = sy-index.
CONDENSE lv_value.
lo_element2-&gt;set_attribute_ns( name = &apos;id&apos;
value = lv_value ).
lo_element2-&gt;set_attribute_ns( name = &apos;name&apos;
value = io_drawing-&gt;title ).
lo_element-&gt;append_child( new_child = lo_element2 ).
* cNvPicPr
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_cnvpicpr
parent = io_document ).
* picLocks
lo_element3 = io_document-&gt;create_simple_element( name = lc_xml_node_piclocks
parent = io_document ).
lo_element3-&gt;set_attribute_ns( name = &apos;noChangeAspect&apos;
value = &apos;1&apos; ).
lo_element2-&gt;append_child( new_child = lo_element3 ).
lo_element-&gt;append_child( new_child = lo_element2 ).
lo_element_pic-&gt;append_child( new_child = lo_element ).
* blipFill
lv_value = ip_index.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_blipfill
parent = io_document ).
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_ablip
parent = io_document ).
lo_element2-&gt;set_attribute_ns( name = &apos;xmlns:r&apos;
value = lc_xml_node_ns_r ).
lo_element2-&gt;set_attribute_ns( name = &apos;r:embed&apos;
value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element2 ).
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_astretch
parent = io_document ).
lo_element-&gt;append_child( new_child = lo_element2 ).
lo_element_pic-&gt;append_child( new_child = lo_element ).
* spPr
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_sppr
parent = io_document ).
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_apgeom
parent = io_document ).
lo_element2-&gt;set_attribute_ns( name = &apos;prst&apos;
value = &apos;rect&apos; ).
lo_element3 = io_document-&gt;create_simple_element( name = lc_xml_node_aavlst
parent = io_document ).
lo_element2-&gt;append_child( new_child = lo_element3 ).
lo_element-&gt;append_child( new_child = lo_element2 ).
lo_element_pic-&gt;append_child( new_child = lo_element ).
ep_anchor-&gt;append_child( new_child = lo_element_pic ).
WHEN zcl_excel_drawing=&gt;type_chart.
* graphicFrame **********************************
lo_element_graphicframe = io_document-&gt;create_simple_element( name = lc_xml_node_graphicframe
parent = io_document ).
* nvGraphicFramePr
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_nvgraphicframepr
parent = io_document ).
* cNvPr
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_cnvpr
parent = io_document ).
lv_value = sy-index.
CONDENSE lv_value.
lo_element2-&gt;set_attribute_ns( name = &apos;id&apos;
value = lv_value ).
lo_element2-&gt;set_attribute_ns( name = &apos;name&apos;
value = io_drawing-&gt;title ).
lo_element-&gt;append_child( new_child = lo_element2 ).
* cNvGraphicFramePr
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_cnvgraphicframepr
parent = io_document ).
lo_element3 = io_document-&gt;create_simple_element( name = lc_xml_node_graphicframelocks
parent = io_document ).
lo_element2-&gt;append_child( new_child = lo_element3 ).
lo_element-&gt;append_child( new_child = lo_element2 ).
lo_element_graphicframe-&gt;append_child( new_child = lo_element ).
* xfrm
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_xfrm
parent = io_document ).
* off
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_aoff
parent = io_document ).
lo_element2-&gt;set_attribute_ns( name = &apos;y&apos; value = &apos;0&apos; ).
lo_element2-&gt;set_attribute_ns( name = &apos;x&apos; value = &apos;0&apos; ).
lo_element-&gt;append_child( new_child = lo_element2 ).
* ext
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_aext
parent = io_document ).
lo_element2-&gt;set_attribute_ns( name = &apos;cy&apos; value = &apos;0&apos; ).
lo_element2-&gt;set_attribute_ns( name = &apos;cx&apos; value = &apos;0&apos; ).
lo_element-&gt;append_child( new_child = lo_element2 ).
lo_element_graphicframe-&gt;append_child( new_child = lo_element ).
* graphic
lo_element = io_document-&gt;create_simple_element( name = lc_xml_node_agraphic
parent = io_document ).
* graphicData
lo_element2 = io_document-&gt;create_simple_element( name = lc_xml_node_agraphicdata
parent = io_document ).
lo_element2-&gt;set_attribute_ns( name = &apos;uri&apos; value = lc_xml_node_ns_c ).
* chart
lo_element3 = io_document-&gt;create_simple_element( name = lc_xml_node_cchart
parent = io_document ).
lo_element3-&gt;set_attribute_ns( name = &apos;xmlns:r&apos;
value = lc_xml_node_ns_r ).
lo_element3-&gt;set_attribute_ns( name = &apos;xmlns:c&apos;
value = lc_xml_node_ns_c ).
lv_value = ip_index.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element3-&gt;set_attribute_ns( name = &apos;r:id&apos;
value = lv_value ).
lo_element2-&gt;append_child( new_child = lo_element3 ).
lo_element-&gt;append_child( new_child = lo_element2 ).
lo_element_graphicframe-&gt;append_child( new_child = lo_element ).
ep_anchor-&gt;append_child( new_child = lo_element_graphicframe ).
ENDCASE.
* client data ***************************
lo_element_clientdata = io_document-&gt;create_simple_element( name = lc_xml_node_clientdata
parent = io_document ).
ep_anchor-&gt;append_child( new_child = lo_element_clientdata ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_RELATIONSHIPS" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/_rels/workbook.xml.rels&apos;" EXPOSURE="1" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_RELATIONSHIPS" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_RELATIONSHIPS.
** Constant node name
DATA: lc_xml_node_relationships TYPE string VALUE &apos;Relationships&apos;,
lc_xml_node_relationship TYPE string VALUE &apos;Relationship&apos;,
&quot; Node attributes
lc_xml_attr_id TYPE string VALUE &apos;Id&apos;,
lc_xml_attr_type TYPE string VALUE &apos;Type&apos;,
lc_xml_attr_target TYPE string VALUE &apos;Target&apos;,
&quot; Node namespace
lc_xml_node_rels_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/package/2006/relationships&apos;,
&quot; Node id
lc_xml_node_ridx_id TYPE string VALUE &apos;rId#&apos;,
&quot; Node type
lc_xml_node_rid_sheet_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet&apos;,
lc_xml_node_rid_theme_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme&apos;,
lc_xml_node_rid_styles_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles&apos;,
lc_xml_node_rid_shared_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings&apos;,
&quot; Node target
lc_xml_node_ridx_tg TYPE string VALUE &apos;worksheets/sheet#.xml&apos;,
lc_xml_node_rid_shared_tg TYPE string VALUE &apos;sharedStrings.xml&apos;,
lc_xml_node_rid_styles_tg TYPE string VALUE &apos;styles.xml&apos;,
lc_xml_node_rid_theme_tg TYPE string VALUE &apos;theme/theme1.xml&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer.
DATA: lv_xml_node_ridx_tg TYPE string,
lv_xml_node_ridx_id TYPE string,
lv_size TYPE i,
lv_syindex(3) TYPE c.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node relationships
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_relationships
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_rels_ns ).
**********************************************************************
* STEP 4: Create subnodes
lv_size = excel-&gt;get_worksheets_size( ).
&quot; Relationship node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lv_size = lv_size + 2.
lv_syindex = lv_size.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
lv_xml_node_ridx_id = lc_xml_node_ridx_id.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xml_node_ridx_id WITH lv_syindex.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_xml_node_ridx_id ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_styles_tp ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lc_xml_node_rid_styles_tg ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; Relationship node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lv_size = lv_size - 1.
lv_syindex = lv_size.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
lv_xml_node_ridx_id = lc_xml_node_ridx_id.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xml_node_ridx_id WITH lv_syindex.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_xml_node_ridx_id ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_theme_tp ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lc_xml_node_rid_theme_tg ).
lo_element_root-&gt;append_child( new_child = lo_element ).
lv_size = excel-&gt;get_worksheets_size( ).
DO lv_size TIMES.
&quot; Relationship node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lv_xml_node_ridx_id = lc_xml_node_ridx_id.
lv_xml_node_ridx_tg = lc_xml_node_ridx_tg.
lv_syindex = sy-index.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xml_node_ridx_id WITH lv_syindex.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xml_node_ridx_tg WITH lv_syindex.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_xml_node_ridx_id ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_sheet_tp ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lv_xml_node_ridx_tg ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDDO.
&quot; Relationship node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
ADD 3 TO lv_size.
lv_syindex = lv_size.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
lv_xml_node_ridx_id = lc_xml_node_ridx_id.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xml_node_ridx_id WITH lv_syindex.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_xml_node_ridx_id ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_shared_tp ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lc_xml_node_rid_shared_tg ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHAREDSTRINGS" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/sharedStrings.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHAREDSTRINGS" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_SHAREDSTRINGS.
** Constant node name
DATA: lc_xml_node_sst TYPE string VALUE &apos;sst&apos;,
lc_xml_node_si TYPE string VALUE &apos;si&apos;,
lc_xml_node_t TYPE string VALUE &apos;t&apos;,
&quot; Node attributes
lc_xml_attr_count TYPE string VALUE &apos;count&apos;,
lc_xml_attr_uniquecount TYPE string VALUE &apos;uniqueCount&apos;,
&quot; Node namespace
lc_xml_node_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/spreadsheetml/2006/main&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_sub_element TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted,
ls_shared_string TYPE zexcel_s_shared_string,
lv_value TYPE string,
lv_count_str TYPE string,
lv_uniquecount_str TYPE string,
lv_sytabix TYPE sytabix,
lv_count TYPE i,
lv_uniquecount TYPE i.
FIELD-SYMBOLS: &lt;fs_sheet_content&gt; TYPE zexcel_s_cell_data,
&lt;fs_sheet_string&gt; TYPE zexcel_s_shared_string.
**********************************************************************
* STEP 1: Collect strings from each worksheet
lo_iterator = excel-&gt;get_worksheets_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
APPEND LINES OF lo_worksheet-&gt;sheet_content TO lt_cell_data.
ENDWHILE.
DELETE lt_cell_data WHERE cell_formula IS NOT INITIAL. &quot; delete formula content
DESCRIBE TABLE lt_cell_data LINES lv_count.
MOVE lv_count TO lv_count_str.
SHIFT lv_count_str RIGHT DELETING TRAILING space.
SHIFT lv_count_str LEFT DELETING LEADING space.
SORT lt_cell_data BY cell_value.
DELETE ADJACENT DUPLICATES FROM lt_cell_data COMPARING cell_value.
DESCRIBE TABLE lt_cell_data LINES lv_uniquecount.
MOVE lv_uniquecount TO lv_uniquecount_str.
SHIFT lv_uniquecount_str RIGHT DELETING TRAILING space.
SHIFT lv_uniquecount_str LEFT DELETING LEADING space.
LOOP AT lt_cell_data ASSIGNING &lt;fs_sheet_content&gt;.
lv_sytabix = sy-tabix - 1.
MOVE lv_sytabix TO ls_shared_string-string_no.
MOVE &lt;fs_sheet_content&gt;-cell_value TO ls_shared_string-string_value.
APPEND ls_shared_string TO shared_strings.
ENDLOOP.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_sst
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_ns ).
lo_element_root-&gt;set_attribute_ns( name = lc_xml_attr_count
value = lv_count_str ).
lo_element_root-&gt;set_attribute_ns( name = lc_xml_attr_uniquecount
value = lv_uniquecount_str ).
**********************************************************************
* STEP 4: Create subnode
LOOP AT shared_strings ASSIGNING &lt;fs_sheet_string&gt;.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_si
parent = lo_document ).
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_t
parent = lo_document ).
lo_sub_element-&gt;set_value( value = &lt;fs_sheet_string&gt;-string_value ).
lo_element-&gt;append_child( new_child = lo_sub_element ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDLOOP.
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/sheet.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET" 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_WRITER_2007" CMPNAME="CREATE_XL_SHEET" SCONAME="IV_ACTIVE" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PARVALUE="&apos;&apos;"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<exception CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method CREATE_XL_SHEET.
*--------------------------------------------------------------------*
* issue #237 - Error writing column-style
* - Stefan Schmöcker, 2012-11-01
*--------------------------------------------------------------------*
TYPES: BEGIN OF cfvo,
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,
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
*--------------------------------------------------------------------*
** Constant node name
DATA: lc_xml_node_worksheet TYPE string VALUE &apos;worksheet&apos;,
lc_xml_node_sheetpr TYPE string VALUE &apos;sheetPr&apos;,
lc_xml_node_tabcolor TYPE string VALUE &apos;tabColor&apos;,
lc_xml_node_outlinepr TYPE string VALUE &apos;outlinePr&apos;,
lc_xml_node_dimension TYPE string VALUE &apos;dimension&apos;,
lc_xml_node_sheetviews TYPE string VALUE &apos;sheetViews&apos;,
lc_xml_node_sheetview TYPE string VALUE &apos;sheetView&apos;,
lc_xml_node_selection TYPE string VALUE &apos;selection&apos;,
lc_xml_node_pane TYPE string VALUE &apos;pane&apos;,
lc_xml_node_sheetformatpr TYPE string VALUE &apos;sheetFormatPr&apos;,
lc_xml_node_cols TYPE string VALUE &apos;cols&apos;,
lc_xml_node_col TYPE string VALUE &apos;col&apos;,
lc_xml_node_sheetdata TYPE string VALUE &apos;sheetData&apos;,
lc_xml_node_row TYPE string VALUE &apos;row&apos;,
lc_xml_node_c TYPE string VALUE &apos;c&apos;,
lc_xml_node_v TYPE string VALUE &apos;v&apos;,
lc_xml_node_f TYPE string VALUE &apos;f&apos;,
lc_xml_node_sheetprotection TYPE string VALUE &apos;sheetProtection&apos;,
lc_xml_node_pagemargins TYPE string VALUE &apos;pageMargins&apos;,
lc_xml_node_pagesetup TYPE string VALUE &apos;pageSetup&apos;,
lc_xml_node_pagesetuppr TYPE string VALUE &apos;pageSetUpPr&apos;,
lc_xml_node_condformatting TYPE string VALUE &apos;conditionalFormatting&apos;,
lc_xml_node_cfrule TYPE string VALUE &apos;cfRule&apos;,
lc_xml_node_color TYPE string VALUE &apos;color&apos;, &quot; Databar by Albert Lladanosa
lc_xml_node_databar TYPE string VALUE &apos;dataBar&apos;, &quot; Databar by Albert Lladanosa
lc_xml_node_iconset TYPE string VALUE &apos;iconSet&apos;,
lc_xml_node_cfvo TYPE string VALUE &apos;cfvo&apos;,
lc_xml_node_formula TYPE string VALUE &apos;formula&apos;,
lc_xml_node_datavalidations TYPE string VALUE &apos;dataValidations&apos;,
lc_xml_node_datavalidation TYPE string VALUE &apos;dataValidation&apos;,
lc_xml_node_formula1 TYPE string VALUE &apos;formula1&apos;,
lc_xml_node_formula2 TYPE string VALUE &apos;formula2&apos;,
lc_xml_node_mergecell TYPE string VALUE &apos;mergeCell&apos;,
lc_xml_node_mergecells TYPE string VALUE &apos;mergeCells&apos;,
lc_xml_node_drawing TYPE string VALUE &apos;drawing&apos;,
lc_xml_node_headerfooter TYPE string VALUE &apos;headerFooter&apos;,
lc_xml_node_oddheader TYPE string VALUE &apos;oddHeader&apos;,
lc_xml_node_oddfooter TYPE string VALUE &apos;oddFooter&apos;,
lc_xml_node_evenheader TYPE string VALUE &apos;evenHeader&apos;,
lc_xml_node_evenfooter TYPE string VALUE &apos;evenFooter&apos;,
lc_xml_node_autofilter TYPE string VALUE &apos;autoFilter&apos;,
lc_xml_node_filtercolumn TYPE string VALUE &apos;filterColumn&apos;,
lc_xml_node_filters TYPE string VALUE &apos;filters&apos;,
lc_xml_node_filter TYPE string VALUE &apos;filter&apos;,
&quot; Node attributes
lc_xml_attr_ref TYPE string VALUE &apos;ref&apos;,
lc_xml_attr_summarybelow TYPE string VALUE &apos;summaryBelow&apos;,
lc_xml_attr_summaryright TYPE string VALUE &apos;summaryRight&apos;,
lc_xml_attr_tabselected TYPE string VALUE &apos;tabSelected&apos;,
lc_xml_attr_showzeros TYPE string VALUE &apos;showZeros&apos;,
lc_xml_attr_zoomscale TYPE string VALUE &apos;zoomScale&apos;,
lc_xml_attr_zoomscalenormal TYPE string VALUE &apos;zoomScaleNormal&apos;,
lc_xml_attr_zoomscalepageview TYPE string VALUE &apos;zoomScalePageLayoutView&apos;,
lc_xml_attr_zoomscalesheetview TYPE string VALUE &apos;zoomScaleSheetLayoutView&apos;,
lc_xml_attr_workbookviewid TYPE string VALUE &apos;workbookViewId&apos;,
lc_xml_attr_showgridlines TYPE string VALUE &apos;showGridLines&apos;,
lc_xml_attr_gridlines TYPE string VALUE &apos;gridLines&apos;,
lc_xml_attr_showrowcolheaders TYPE string VALUE &apos;showRowColHeaders&apos;,
lc_xml_attr_activecell TYPE string VALUE &apos;activeCell&apos;,
lc_xml_attr_sqref TYPE string VALUE &apos;sqref&apos;,
lc_xml_attr_min TYPE string VALUE &apos;min&apos;,
lc_xml_attr_max TYPE string VALUE &apos;max&apos;,
lc_xml_attr_hidden TYPE string VALUE &apos;hidden&apos;,
lc_xml_attr_width TYPE string VALUE &apos;width&apos;,
lc_xml_attr_defaultwidth TYPE string VALUE &apos;9.10&apos;,
lc_xml_attr_style TYPE string VALUE &apos;style&apos;,
lc_xml_attr_true TYPE string VALUE &apos;true&apos;,
lc_xml_attr_bestfit TYPE string VALUE &apos;bestFit&apos;,
lc_xml_attr_customheight TYPE string VALUE &apos;customHeight&apos;,
lc_xml_attr_customwidth TYPE string VALUE &apos;customWidth&apos;,
lc_xml_attr_collapsed TYPE string VALUE &apos;collapsed&apos;,
lc_xml_attr_defaultrowheight TYPE string VALUE &apos;defaultRowHeight&apos;,
lc_xml_attr_defaultcolwidth TYPE string VALUE &apos;defaultColWidth&apos;,
lc_xml_attr_outlinelevelrow TYPE string VALUE &apos;x14ac:outlineLevelRow&apos;,
lc_xml_attr_outlinelevelcol TYPE string VALUE &apos;x14ac:outlineLevelCol&apos;,
lc_xml_attr_outlinelevel TYPE string VALUE &apos;outlineLevel&apos;,
lc_xml_attr_r TYPE string VALUE &apos;r&apos;,
lc_xml_attr_s TYPE string VALUE &apos;s&apos;,
lc_xml_attr_spans TYPE string VALUE &apos;spans&apos;,
lc_xml_attr_t TYPE string VALUE &apos;t&apos;,
lc_xml_attr_password TYPE string VALUE &apos;password&apos;,
lc_xml_attr_sheet TYPE string VALUE &apos;sheet&apos;,
lc_xml_attr_objects TYPE string VALUE &apos;objects&apos;,
lc_xml_attr_scenarios TYPE string VALUE &apos;scenarios&apos;,
lc_xml_attr_autofilter TYPE string VALUE &apos;autoFilter&apos;,
lc_xml_attr_deletecolumns TYPE string VALUE &apos;deleteColumns&apos;,
lc_xml_attr_deleterows TYPE string VALUE &apos;deleteRows&apos;,
lc_xml_attr_formatcells TYPE string VALUE &apos;formatCells&apos;,
lc_xml_attr_formatcolumns TYPE string VALUE &apos;formatColumns&apos;,
lc_xml_attr_formatrows TYPE string VALUE &apos;formatRows&apos;,
lc_xml_attr_insertcolumns TYPE string VALUE &apos;insertColumns&apos;,
lc_xml_attr_inserthyperlinks TYPE string VALUE &apos;insertHyperlinks&apos;,
lc_xml_attr_insertrows TYPE string VALUE &apos;insertRows&apos;,
lc_xml_attr_pivottables TYPE string VALUE &apos;pivotTables&apos;,
lc_xml_attr_selectlockedcells TYPE string VALUE &apos;selectLockedCells&apos;,
lc_xml_attr_selectunlockedcell TYPE string VALUE &apos;selectUnlockedCells&apos;,
lc_xml_attr_sort TYPE string VALUE &apos;sort&apos;,
lc_xml_attr_left TYPE string VALUE &apos;left&apos;,
lc_xml_attr_right TYPE string VALUE &apos;right&apos;,
lc_xml_attr_top TYPE string VALUE &apos;top&apos;,
lc_xml_attr_bottom TYPE string VALUE &apos;bottom&apos;,
lc_xml_attr_header TYPE string VALUE &apos;header&apos;,
lc_xml_attr_footer TYPE string VALUE &apos;footer&apos;,
lc_xml_attr_type TYPE string VALUE &apos;type&apos;,
lc_xml_attr_iconset TYPE string VALUE &apos;iconSet&apos;,
lc_xml_attr_showvalue TYPE string VALUE &apos;showValue&apos;,
lc_xml_attr_val TYPE string VALUE &apos;val&apos;,
lc_xml_attr_dxfid TYPE string VALUE &apos;dxfId&apos;,
lc_xml_attr_priority TYPE string VALUE &apos;priority&apos;,
lc_xml_attr_operator TYPE string VALUE &apos;operator&apos;,
lc_xml_attr_allowblank TYPE string VALUE &apos;allowBlank&apos;,
lc_xml_attr_showinputmessage TYPE string VALUE &apos;showInputMessage&apos;,
lc_xml_attr_showerrormessage TYPE string VALUE &apos;showErrorMessage&apos;,
lc_xml_attr_errortitle TYPE string VALUE &apos;errorTitle&apos;,
lc_xml_attr_error TYPE string VALUE &apos;error&apos;,
lc_xml_attr_prompttitle TYPE string VALUE &apos;promptTitle&apos;,
lc_xml_attr_prompt TYPE string VALUE &apos;prompt&apos;,
lc_xml_attr_count TYPE string VALUE &apos;count&apos;,
lc_xml_attr_blackandwhite TYPE string VALUE &apos;blackAndWhite&apos;,
lc_xml_attr_cellcomments TYPE string VALUE &apos;cellComments&apos;,
lc_xml_attr_copies TYPE string VALUE &apos;copies&apos;,
lc_xml_attr_draft TYPE string VALUE &apos;draft&apos;,
lc_xml_attr_errors TYPE string VALUE &apos;errors&apos;,
lc_xml_attr_firstpagenumber TYPE string VALUE &apos;firstPageNumber&apos;,
lc_xml_attr_fittopage TYPE string VALUE &apos;fitToPage&apos;,
lc_xml_attr_fittoheight TYPE string VALUE &apos;fitToHeight&apos;,
lc_xml_attr_fittowidth TYPE string VALUE &apos;fitToWidth&apos;,
lc_xml_attr_horizontaldpi TYPE string VALUE &apos;horizontalDpi&apos;,
lc_xml_attr_orientation TYPE string VALUE &apos;orientation&apos;,
lc_xml_attr_pageorder TYPE string VALUE &apos;pageOrder&apos;,
lc_xml_attr_paperheight TYPE string VALUE &apos;paperHeight&apos;,
lc_xml_attr_papersize TYPE string VALUE &apos;paperSize&apos;,
lc_xml_attr_paperwidth TYPE string VALUE &apos;paperWidth&apos;,
lc_xml_attr_scale TYPE string VALUE &apos;scale&apos;,
lc_xml_attr_usefirstpagenumber TYPE string VALUE &apos;useFirstPageNumber&apos;,
lc_xml_attr_useprinterdefaults TYPE string VALUE &apos;usePrinterDefaults&apos;,
lc_xml_attr_verticaldpi TYPE string VALUE &apos;verticalDpi&apos;,
lc_xml_attr_differentoddeven TYPE string VALUE &apos;differentOddEven&apos;,
lc_xml_attr_colid TYPE string VALUE &apos;colId&apos;,
lc_xml_attr_filtermode TYPE string VALUE &apos;filterMode&apos;,
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;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_element_2 TYPE REF TO if_ixml_element,
lo_element_3 TYPE REF TO if_ixml_element,
lo_element_4 TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
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,
default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime,
default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_value TYPE string,
lt_range_merge TYPE string_table,
lv_merge TYPE string,
lv_column_p TYPE zexcel_cell_column_alpha,
lv_column TYPE zexcel_cell_column,
lv_cell_value TYPE zexcel_cell_value,
lv_style_guid TYPE zexcel_cell_style,
lv_flag TYPE c,
ls_databar TYPE zexcel_conditional_databar, &quot; Databar by Albert Lladanosa
ls_iconset TYPE zexcel_conditional_iconset,
ls_cellis TYPE zexcel_conditional_cellis,
ls_expression TYPE zexcel_conditional_expression,
lt_cfvo TYPE TABLE OF cfvo,
ls_cfvo TYPE cfvo,
lv_cell_row_s TYPE string,
ls_last_row TYPE zexcel_s_cell_data,
ls_style_mapping TYPE zexcel_s_styles_mapping,
lv_freeze_cell_row TYPE zexcel_cell_row,
lv_freeze_cell_column TYPE zexcel_cell_column,
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
column_dimensions TYPE zexcel_t_worksheet_columndime,
row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping,
lv_relation_id TYPE i VALUE 0,
outline_level_row TYPE i VALUE 0,
outline_level_col TYPE i VALUE 0,
col_count TYPE int4,
merge_count TYPE int4,
write_current_row TYPE boolean,
lt_values TYPE zexcel_t_autofilter_values,
ls_values TYPE zexcel_s_autofilter_values,
lv_guid TYPE uuid,
lo_autofilters TYPE REF TO zcl_excel_autofilters,
lo_autofilter TYPE REF TO zcl_excel_autofilter,
l_autofilter_hidden TYPE flag,
ls_area TYPE zexcel_s_autofilter_area,
lv_ref TYPE string,
lv_style_index TYPE i. &quot; issue #237
FIELD-SYMBOLS: &lt;ls_sheet_content&gt; TYPE zexcel_s_cell_data,
&lt;fs_range_merge&gt; LIKE LINE OF lt_range_merge,
&lt;column_dimension&gt; TYPE zexcel_s_worksheet_columndime,
&lt;row_dimension&gt; TYPE zexcel_s_worksheet_rowdimensio.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Declarations 2 - start
*--------------------------------------------------------------------*
DATA: lt_table_areas TYPE SORTED TABLE OF lty_table_area WITH NON-UNIQUE KEY left right top bottom,
ls_table_area LIKE LINE OF lt_table_areas.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Declarations 2 - end
*--------------------------------------------------------------------*
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
***********************************************************************
* STEP 3: Create main node relationships
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_worksheet
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:r&apos;
value = lc_xml_node_r_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:mc&apos;
value = lc_xml_node_comp_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;mc:Ignorable&apos;
value = lc_xml_node_comp_pref ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:x14ac&apos;
value = lc_xml_node_ig_ns ).
**********************************************************************
* STEP 4: Create subnodes
&quot; sheetPr
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_sheetpr
parent = lo_document ).
&quot; TODO tabColor
IF io_worksheet-&gt;tabcolor IS NOT INITIAL.
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_tabcolor
parent = lo_element ).
* Theme not supported yet - start with RGB
lv_value = io_worksheet-&gt;tabcolor-rgb.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_tabcolor_rgb
value = lv_value ).
ENDIF.
&quot; outlinePr
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_outlinepr
parent = lo_document ).
lv_value = io_worksheet-&gt;zif_excel_sheet_properties~summarybelow.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_summarybelow
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_properties~summaryright.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_summaryright
value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
IF io_worksheet-&gt;sheet_setup-&gt;fit_to_page IS NOT INITIAL.
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_pagesetuppr
parent = lo_document ).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_fittopage
value = `1` ).
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; pageSetupPr node
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; dimension node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_dimension
parent = lo_document ).
lv_value = io_worksheet-&gt;get_dimension_range( ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_ref
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; sheetViews node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_sheetviews
parent = lo_document ).
&quot; sheetView node
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_sheetview
parent = lo_document ).
IF io_worksheet-&gt;zif_excel_sheet_properties~show_zeros EQ abap_false.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_showzeros
value = &apos;0&apos; ).
ENDIF.
IF iv_active = abap_true
OR io_worksheet-&gt;zif_excel_sheet_properties~selected EQ abap_true.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_tabselected
value = &apos;1&apos; ).
ELSE.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_tabselected
value = &apos;0&apos; ).
ENDIF.
&quot; Zoom scale
IF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale GT 400.
io_worksheet-&gt;zif_excel_sheet_properties~zoomscale = 400.
ELSEIF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale LT 10.
io_worksheet-&gt;zif_excel_sheet_properties~zoomscale = 10.
ENDIF.
lv_value = io_worksheet-&gt;zif_excel_sheet_properties~zoomscale.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_zoomscale
value = lv_value ).
IF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_normal NE 0.
IF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_normal GT 400.
io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_normal = 400.
ELSEIF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_normal LT 10.
io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_normal = 10.
ENDIF.
lv_value = io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_normal.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_zoomscalenormal
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_pagelayoutview NE 0.
IF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_pagelayoutview GT 400.
io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_pagelayoutview = 400.
ELSEIF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_pagelayoutview LT 10.
io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_pagelayoutview = 10.
ENDIF.
lv_value = io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_pagelayoutview.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_zoomscalepageview
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_sheetlayoutview NE 0.
IF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_sheetlayoutview GT 400.
io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_sheetlayoutview = 400.
ELSEIF io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_sheetlayoutview LT 10.
io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_sheetlayoutview = 10.
ENDIF.
lv_value = io_worksheet-&gt;zif_excel_sheet_properties~zoomscale_sheetlayoutview.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_zoomscalesheetview
value = lv_value ).
ENDIF.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_workbookviewid
value = &apos;0&apos; ).
&quot; showGridLines attribute
IF io_worksheet-&gt;show_gridlines = abap_true.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_showgridlines
value = &apos;1&apos; ).
ELSE.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_showgridlines
value = &apos;0&apos; ).
ENDIF.
&quot; showRowColHeaders attribute
IF io_worksheet-&gt;show_rowcolheaders = abap_true.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_showrowcolheaders
value = &apos;1&apos; ).
ELSE.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_showrowcolheaders
value = &apos;0&apos; ).
ENDIF.
&quot; freeze panes
io_worksheet-&gt;get_freeze_cell( IMPORTING ep_row = lv_freeze_cell_row
ep_column = lv_freeze_cell_column ).
IF lv_freeze_cell_row IS NOT INITIAL AND lv_freeze_cell_column IS NOT INITIAL.
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_pane
parent = lo_element_2 ).
IF lv_freeze_cell_row &gt; 1.
lv_value = lv_freeze_cell_row - 1.
CONDENSE lv_value.
lo_element_3-&gt;set_attribute_ns( name = &apos;ySplit&apos;
value = lv_value ).
ENDIF.
IF lv_freeze_cell_column &gt; 1.
lv_value = lv_freeze_cell_column - 1.
CONDENSE lv_value.
lo_element_3-&gt;set_attribute_ns( name = &apos;xSplit&apos;
value = lv_value ).
ENDIF.
lv_freeze_cell_column_alpha = zcl_excel_common=&gt;convert_column2alpha( ip_column = lv_freeze_cell_column ).
lv_value = zcl_excel_common=&gt;number_to_excel_string( ip_value = lv_freeze_cell_row ).
CONCATENATE lv_freeze_cell_column_alpha lv_value INTO lv_value.
lo_element_3-&gt;set_attribute_ns( name = &apos;topLeftCell&apos;
value = lv_value ).
lo_element_3-&gt;set_attribute_ns( name = &apos;activePane&apos;
value = &apos;bottomRight&apos; ).
lo_element_3-&gt;set_attribute_ns( name = &apos;state&apos;
value = &apos;frozen&apos; ).
lo_element_2-&gt;append_child( new_child = lo_element_3 ).
ENDIF.
&quot; selection node
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_selection
parent = lo_document ).
lv_value = io_worksheet-&gt;get_active_cell( ).
lo_element_3-&gt;set_attribute_ns( name = lc_xml_attr_activecell
value = lv_value ).
lo_element_3-&gt;set_attribute_ns( name = lc_xml_attr_sqref
value = lv_value ).
lo_element_2-&gt;append_child( new_child = lo_element_3 ). &quot; sheetView node
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; sheetView node
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; sheetViews node
column_dimensions[] = io_worksheet-&gt;get_column_dimensions( ).
&quot; Calculate col
IF NOT column_dimensions IS INITIAL.
io_worksheet-&gt;calculate_column_widths( ).
column_dimensions[] = io_worksheet-&gt;get_column_dimensions( ).
ENDIF.
row_dimensions[] = io_worksheet-&gt;get_row_dimensions( ).
&quot; sheetFormatPr node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_sheetformatpr
parent = lo_document ).
&quot; defaultRowHeight
default_row_dimension = io_worksheet-&gt;get_default_row_dimension( ).
IF default_row_dimension IS BOUND.
IF default_row_dimension-&gt;get_row_height( ) &gt;= 0.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_customheight
value = lc_xml_attr_true ).
lv_value = default_row_dimension-&gt;get_row_height( ).
ELSE.
lv_value = &apos;12.75&apos;.
ENDIF.
ELSE.
lv_value = &apos;12.75&apos;.
ENDIF.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_defaultrowheight
value = lv_value ).
&quot; defaultColWidth
default_col_dimension = io_worksheet-&gt;get_default_column_dimension( ).
IF default_col_dimension IS BOUND.
IF default_col_dimension-&gt;get_width( ) &gt;= 0.
lv_value = default_col_dimension-&gt;get_width( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_defaultcolwidth
value = lv_value ).
ENDIF.
ENDIF.
&quot; outlineLevelRow
LOOP AT row_dimensions ASSIGNING &lt;row_dimension&gt;.
IF &lt;row_dimension&gt;-row_dimension-&gt;get_outline_level( ) &gt; outline_level_row.
outline_level_row = &lt;row_dimension&gt;-row_dimension-&gt;get_outline_level( ).
ENDIF.
ENDLOOP.
lv_value = outline_level_row.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_outlinelevelrow
value = lv_value ).
&quot; outlineLevelCol
LOOP AT column_dimensions ASSIGNING &lt;column_dimension&gt;.
IF &lt;column_dimension&gt;-column_dimension-&gt;get_outline_level( ) &gt; outline_level_col.
outline_level_col = &lt;column_dimension&gt;-column_dimension-&gt;get_outline_level( ).
ENDIF.
ENDLOOP.
lv_value = outline_level_col.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_outlinelevelcol
value = lv_value ).
* lv_value = 0.
* SHIFT lv_value RIGHT DELETING TRAILING space.
* SHIFT lv_value LEFT DELETING LEADING space.
* lo_element-&gt;set_attribute_ns( name = lc_xml_attr_dydescent
* value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; sheetFormatPr node
IF io_worksheet-&gt;zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR NOT column_dimensions IS INITIAL.
&quot; cols node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_cols
parent = lo_document ).
&quot; This code have to be enhanced in order to manage also column style properties
&quot; Now it is an out/out
IF NOT column_dimensions IS INITIAL.
LOOP AT column_dimensions ASSIGNING &lt;column_dimension&gt;.
&quot; col node
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_col
parent = lo_document ).
lv_value = &lt;column_dimension&gt;-column_dimension-&gt;get_column_index( ).
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_min
value = lv_value ).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_max
value = lv_value ).
&quot; Width
IF &lt;column_dimension&gt;-column_dimension-&gt;get_width( ) &lt; 0.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_width
value = lc_xml_attr_defaultwidth ).
ELSE.
lv_value = &lt;column_dimension&gt;-column_dimension-&gt;get_width( ).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_width
value = lv_value ).
ENDIF.
&quot; Column visibility
IF &lt;column_dimension&gt;-column_dimension-&gt;get_visible( ) = abap_false.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_hidden
value = lc_xml_attr_true ).
ENDIF.
&quot; Auto size?
IF &lt;column_dimension&gt;-column_dimension-&gt;get_auto_size( ) = abap_true.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_bestfit
value = lc_xml_attr_true ).
ENDIF.
&quot; Custom width?
IF default_col_dimension IS BOUND.
IF &lt;column_dimension&gt;-column_dimension-&gt;get_width( )
&lt;&gt; default_col_dimension-&gt;get_width( ).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_customwidth
value = lc_xml_attr_true ).
ENDIF.
ELSE.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_customwidth
value = lc_xml_attr_true ).
ENDIF.
&quot; Collapsed
IF &lt;column_dimension&gt;-column_dimension-&gt;get_collapsed( ) = abap_true.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_collapsed
value = lc_xml_attr_true ).
ENDIF.
&quot; outlineLevel
IF &lt;column_dimension&gt;-column_dimension-&gt;get_outline_level( ) &gt; 0.
lv_value = &lt;column_dimension&gt;-column_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 = lc_xml_attr_outlinelevel
value = lv_value ).
ENDIF.
&quot; Style
* lv_value = &lt;column_dimension&gt;-column_dimension-&gt;get_xf_index( ). &quot;del issue #157 - set column style
lv_style_guid = &lt;column_dimension&gt;-column_dimension-&gt;get_column_style_guid( ). &quot;ins issue #157 - set column style
* lv_value = me-&gt;excel-&gt;get_style_index_in_styles( lv_style_guid ). &quot;del issue #237
lv_style_index = me-&gt;excel-&gt;get_style_index_in_styles( lv_style_guid ). &quot;ins issue #237
IF lv_style_index &gt; 0. &quot;ins issue #237
lv_value = lv_style_index - 1. &quot;ins issue #237
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_style
value = lv_value ).
ENDIF. &quot;ins issue #237
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; col node
ENDLOOP.
* ELSE. &quot;del issue #157 - set sheet style ( add missing columns
* IF io_worksheet-&gt;zif_excel_sheet_properties~get_style( ) IS NOT INITIAL. &quot;del issue #157 - set sheet style ( add missing columns
* Begin of insertion issue #157 - set sheet style ( add missing columns
ENDIF.
* Always pass through this coding
IF io_worksheet-&gt;zif_excel_sheet_properties~get_style( ) IS NOT INITIAL.
DATA: lts_sorted_columns TYPE SORTED TABLE OF zexcel_cell_column WITH UNIQUE KEY table_line.
TYPES: BEGIN OF ty_missing_columns,
first_column TYPE zexcel_cell_column,
last_column TYPE zexcel_cell_column,
END OF ty_missing_columns.
DATA: t_missing_columns TYPE STANDARD TABLE OF ty_missing_columns WITH NON-UNIQUE DEFAULT KEY,
missing_column LIKE LINE OF t_missing_columns.
* First collect columns that were already handled before. The rest has to be inserted now
LOOP AT column_dimensions ASSIGNING &lt;column_dimension&gt;.
lv_column = zcl_excel_common=&gt;convert_column2int( &lt;column_dimension&gt;-column ).
INSERT lv_column INTO TABLE lts_sorted_columns.
ENDLOOP.
* Now find all columns that were missing so far
missing_column-first_column = 1.
LOOP AT lts_sorted_columns INTO lv_column.
IF lv_column &gt; missing_column-first_column.
missing_column-last_column = lv_column - 1.
APPEND missing_column TO t_missing_columns.
ENDIF.
missing_column-first_column = lv_column + 1.
ENDLOOP.
missing_column-last_column = zcl_excel_common=&gt;c_excel_sheet_max_col.
APPEND missing_column TO t_missing_columns.
* Now apply stylesetting ( and other defaults - I copy it from above. Whoever programmed that seems to know what to do :o)
LOOP AT t_missing_columns INTO missing_column.
* End of insertion issue #157 - set column style
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_col
parent = lo_document ).
* lv_value = zcl_excel_common=&gt;c_excel_sheet_min_col.&quot;del issue #157 - set sheet style ( add missing columns
lv_value = missing_column-first_column. &quot;ins issue #157 - set sheet style ( add missing columns
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_min
value = lv_value ).
* lv_value = zcl_excel_common=&gt;c_excel_sheet_max_col.&quot;del issue #157 - set sheet style ( add missing columns
lv_value = missing_column-last_column. &quot;ins issue #157 - set sheet style ( add missing columns
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_max
value = lv_value ).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_width
value = lc_xml_attr_defaultwidth ).
lv_style_guid = io_worksheet-&gt;zif_excel_sheet_properties~get_style( ).
READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid.
lv_value = ls_style_mapping-style.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_style
value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; col node
ENDLOOP. &quot;ins issue #157 - set sheet style ( add missing columns
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; cols node
ENDIF.
&quot; sheetData node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_sheetdata
parent = lo_document ).
&quot; Get column count
col_count = io_worksheet-&gt;get_highest_column( ).
&quot; Get autofilter
lv_guid = io_worksheet-&gt;get_guid( ) .
lo_autofilters = excel-&gt;get_autofilters_reference( ).
lo_autofilter = lo_autofilters-&gt;get( i_sheet_guid = lv_guid ) .
IF lo_autofilter IS BOUND.
lt_values = lo_autofilter-&gt;get_values( ) .
ls_area = lo_autofilter-&gt;get_filter_area( ) .
l_autofilter_hidden = abap_true. &quot; First defautl is not showing
ENDIF.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Coding 1 - start
*--------------------------------------------------------------------*
* Build table to hold all table-areas attached to this sheet
lo_iterator = io_worksheet-&gt;get_tables_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_table ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
ls_table_area-left = zcl_excel_common=&gt;convert_column2int( lo_table-&gt;settings-top_left_column ).
ls_table_area-right = lo_table-&gt;get_right_column_integer( ).
ls_table_area-top = lo_table-&gt;settings-top_left_row.
ls_table_area-bottom = lo_table-&gt;get_bottom_row_integer( ).
INSERT ls_table_area INTO TABLE lt_table_areas.
ENDWHILE.
*--------------------------------------------------------------------*
* 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;.
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 .
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;).
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.
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.
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_c
parent = lo_document ).
lo_element_3-&gt;set_attribute_ns( name = lc_xml_attr_r
value = &lt;ls_sheet_content&gt;-cell_coords ).
* begin of change issue #157 - allow column cellstyle
* if no cellstyle is set, look into column, then into sheet
IF &lt;ls_sheet_content&gt;-cell_style IS NOT INITIAL.
lv_style_guid = &lt;ls_sheet_content&gt;-cell_style.
ELSE.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Coding 2 - start
*--------------------------------------------------------------------*
* Check if cell in any of the table areas
LOOP AT lt_table_areas TRANSPORTING NO FIELDS WHERE top &lt;= &lt;ls_sheet_content&gt;-cell_row
AND bottom &gt;= &lt;ls_sheet_content&gt;-cell_row
AND left &lt;= &lt;ls_sheet_content&gt;-cell_column
AND right &gt;= &lt;ls_sheet_content&gt;-cell_column.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
CLEAR lv_style_guid. &quot; No style --&gt; EXCEL will use built-in-styles as declared in the tables-section
ELSE.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Coding 2 - end
*--------------------------------------------------------------------*
lv_column_p = zcl_excel_common=&gt;convert_column2alpha( &lt;ls_sheet_content&gt;-cell_column ).
READ TABLE column_dimensions WITH KEY column = lv_column_p ASSIGNING &lt;column_dimension&gt;.
IF sy-subrc = 0.
lv_style_guid = &lt;column_dimension&gt;-column_dimension-&gt;get_column_style_guid( ).
IF lv_style_guid IS INITIAL.
lv_style_guid = io_worksheet-&gt;zif_excel_sheet_properties~get_style( ).
ENDIF.
ELSE.
lv_style_guid = io_worksheet-&gt;zif_excel_sheet_properties~get_style( ).
ENDIF.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Coding 3 - start
*--------------------------------------------------------------------*
ENDIF.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don&apos;t use default from row or column or sheet - Coding 3 - end
*--------------------------------------------------------------------*
ENDIF.
* IF &lt;ls_sheet_content&gt;-cell_style IS NOT INITIAL.
* READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = &lt;ls_sheet_content&gt;-cell_style.
IF lv_style_guid IS NOT INITIAL.
READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid.
* end of change issue #157 - allow column cellstyles
lv_value = ls_style_mapping-style.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_3-&gt;set_attribute_ns( name = lc_xml_attr_s
value = lv_value ).
ENDIF.
&quot; For cells with formula ignore the value - Excel will calculate it
IF &lt;ls_sheet_content&gt;-cell_formula IS NOT INITIAL.
&quot; fomula node
lo_element_4 = lo_document-&gt;create_simple_element( name = lc_xml_node_f
parent = lo_document ).
lv_value = &lt;ls_sheet_content&gt;-cell_formula.
CONDENSE lv_value.
lo_element_4-&gt;set_value( value = lv_value ).
lo_element_3-&gt;append_child( new_child = lo_element_4 ). &quot; fomula node
ELSEIF &lt;ls_sheet_content&gt;-cell_value IS NOT INITIAL. &quot;cell can have just style or formula
IF &lt;ls_sheet_content&gt;-data_type IS NOT INITIAL.
lo_element_3-&gt;set_attribute_ns( name = lc_xml_attr_t
value = &lt;ls_sheet_content&gt;-data_type ).
ENDIF.
&quot; value node
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;.
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 ).
ELSE.
lv_value = &lt;ls_sheet_content&gt;-cell_value.
CONDENSE lv_value.
lo_element_4-&gt;set_value( value = lv_value ).
ENDIF.
lo_element_3-&gt;append_child( new_child = lo_element_4 ). &quot; value node
ENDIF.
lo_element_2-&gt;append_child( new_child = lo_element_3 ). &quot; column node
ls_last_row = &lt;ls_sheet_content&gt;.
ENDLOOP.
IF sy-subrc = 0.
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.
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.
&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_root-&gt;append_child( new_child = lo_element ). &quot; sheetData node
IF lo_autofilter IS BOUND.
* Create node autofilter
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_autofilter
parent = lo_document ).
lv_ref = lo_autofilter-&gt;get_filter_range( ) .
CONDENSE lv_ref NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_ref
value = lv_ref ).
lt_values = lo_autofilter-&gt;get_values( ) .
IF lt_values IS NOT INITIAL.
* If we filter we need to set the filter mode to 1.
lo_element_2 = lo_document-&gt;find_from_name( name = lc_xml_node_sheetpr ).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_filtermode
value = &apos;1&apos; ).
* Create node filtercolumn
CLEAR lv_column.
LOOP AT lt_values INTO ls_values.
IF ls_values-column &lt;&gt; lv_column.
IF lv_column IS NOT INITIAL.
lo_element_2-&gt;append_child( new_child = lo_element_3 ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
ENDIF.
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_filtercolumn
parent = lo_element ).
lv_column = ls_values-column - lo_autofilter-&gt;filter_area-col_start.
lv_value = lv_column.
CONDENSE lv_value NO-GAPS.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_colid
value = lv_value ).
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_filters
parent = lo_element_2 ).
lv_column = ls_values-column.
ENDIF.
lo_element_4 = lo_document-&gt;create_simple_element( name = lc_xml_node_filter
parent = lo_element_3 ).
lo_element_4-&gt;set_attribute_ns( name = lc_xml_attr_val
value = ls_values-value ).
lo_element_3-&gt;append_child( new_child = lo_element_4 ). &quot; value node
ENDLOOP.
lo_element_2-&gt;append_child( new_child = lo_element_3 ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
IF io_worksheet-&gt;zif_excel_sheet_protection~protected EQ abap_true.
&quot; sheetProtection node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_sheetprotection
parent = lo_document ).
MOVE io_worksheet-&gt;zif_excel_sheet_protection~password TO lv_value.
IF lv_value IS NOT INITIAL.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_password
value = lv_value ).
ENDIF.
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~auto_filter.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_autofilter
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~delete_columns.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_deletecolumns
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~delete_rows.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_deleterows
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~format_cells.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_formatcells
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~format_columns.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_formatcolumns
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~format_rows.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_formatrows
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~insert_columns.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_insertcolumns
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~insert_hyperlinks.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_inserthyperlinks
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~insert_rows.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_insertrows
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~objects.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_objects
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~pivot_tables.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_pivottables
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~scenarios.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_scenarios
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~select_locked_cells.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_selectlockedcells
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~select_unlocked_cells.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_selectunlockedcell
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~sheet.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_sheet
value = lv_value ).
lv_value = io_worksheet-&gt;zif_excel_sheet_protection~sort.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_sort
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
&quot; Merged cells
lt_range_merge = io_worksheet-&gt;get_merge( ).
IF lt_range_merge IS NOT INITIAL.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_mergecells
parent = lo_document ).
DESCRIBE TABLE lt_range_merge LINES merge_count.
lv_value = merge_count.
CONDENSE lv_value.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_count
value = lv_value ).
LOOP AT lt_range_merge ASSIGNING &lt;fs_range_merge&gt;.
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_mergecell
parent = lo_document ).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_ref
value = &lt;fs_range_merge&gt; ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
lo_element_root-&gt;append_child( new_child = lo_element ).
io_worksheet-&gt;delete_merge( ).
ENDLOOP.
ENDIF.
&quot; Conditional formatting node
lo_iterator = io_worksheet-&gt;get_cond_styles_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_style_conditional ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
IF lo_style_conditional-&gt;rule IS INITIAL.
CONTINUE.
ENDIF.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_condformatting
parent = lo_document ).
lv_value = lo_style_conditional-&gt;get_dimension_range( ) .
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_sqref
value = lv_value ).
&quot; cfRule node
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_cfrule
parent = lo_document ).
lv_value = lo_style_conditional-&gt;rule.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lv_value ).
lv_value = lo_style_conditional-&gt;priority.
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_priority
value = lv_value ).
CASE lo_style_conditional-&gt;rule.
&quot; Start &gt;&gt; Databar by Albert Lladanosa
WHEN zcl_excel_style_conditional=&gt;c_rule_databar.
ls_databar = lo_style_conditional-&gt;mode_databar.
CLEAR lt_cfvo.
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_databar
parent = lo_document ).
MOVE ls_databar-cfvo1_value TO ls_cfvo-value.
MOVE ls_databar-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_databar-cfvo2_value TO ls_cfvo-value.
MOVE ls_databar-cfvo2_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
LOOP AT lt_cfvo INTO ls_cfvo.
&quot; cfvo node
lo_element_4 = lo_document-&gt;create_simple_element( name = lc_xml_node_cfvo
parent = lo_document ).
lv_value = ls_cfvo-type.
lo_element_4-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lv_value ).
lv_value = ls_cfvo-value.
lo_element_4-&gt;set_attribute_ns( name = lc_xml_attr_val
value = lv_value ).
lo_element_3-&gt;append_child( new_child = lo_element_4 ). &quot; cfvo node
ENDLOOP.
lo_element_4 = lo_document-&gt;create_simple_element( name = lc_xml_node_color
parent = lo_document ).
lv_value = ls_databar-colorrgb.
lo_element_4-&gt;set_attribute_ns( name = lc_xml_attr_tabcolor_rgb
value = lv_value ).
lo_element_3-&gt;append_child( new_child = lo_element_4 ). &quot; color node
lo_element_2-&gt;append_child( new_child = lo_element_3 ). &quot; databar node
&quot; End &lt;&lt; Databar by Albert Lladanosa
WHEN zcl_excel_style_conditional=&gt;c_rule_iconset.
ls_iconset = lo_style_conditional-&gt;mode_iconset.
CLEAR lt_cfvo.
&quot; iconset node
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_iconset
parent = lo_document ).
IF ls_iconset-iconset NE zcl_excel_style_conditional=&gt;c_iconset_3trafficlights.
lv_value = ls_iconset-iconset.
lo_element_3-&gt;set_attribute_ns( name = lc_xml_attr_iconset
value = lv_value ).
ENDIF.
&quot; Set the showValue attribute
lv_value = ls_iconset-showvalue.
lo_element_3-&gt;set_attribute_ns( name = lc_xml_attr_showvalue
value = lv_value ).
CASE ls_iconset-iconset.
WHEN zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2 OR
zcl_excel_style_conditional=&gt;c_iconset_3arrows OR
zcl_excel_style_conditional=&gt;c_iconset_3arrowsgray OR
zcl_excel_style_conditional=&gt;c_iconset_3flags OR
zcl_excel_style_conditional=&gt;c_iconset_3signs OR
zcl_excel_style_conditional=&gt;c_iconset_3symbols OR
zcl_excel_style_conditional=&gt;c_iconset_3symbols2 OR
zcl_excel_style_conditional=&gt;c_iconset_3trafficlights OR
zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo2_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo2_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo3_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo3_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
WHEN zcl_excel_style_conditional=&gt;c_iconset_4arrows OR
zcl_excel_style_conditional=&gt;c_iconset_4arrowsgray OR
zcl_excel_style_conditional=&gt;c_iconset_4rating OR
zcl_excel_style_conditional=&gt;c_iconset_4redtoblack OR
zcl_excel_style_conditional=&gt;c_iconset_4trafficlights.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo2_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo2_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo3_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo3_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo4_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo4_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
WHEN zcl_excel_style_conditional=&gt;c_iconset_5arrows OR
zcl_excel_style_conditional=&gt;c_iconset_5arrowsgray OR
zcl_excel_style_conditional=&gt;c_iconset_5quarters OR
zcl_excel_style_conditional=&gt;c_iconset_5rating.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo2_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo2_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo3_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo3_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo4_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo4_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
MOVE ls_iconset-cfvo5_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo5_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
WHEN OTHERS.
CLEAR lt_cfvo.
ENDCASE.
LOOP AT lt_cfvo INTO ls_cfvo.
&quot; cfvo node
lo_element_4 = lo_document-&gt;create_simple_element( name = lc_xml_node_cfvo
parent = lo_document ).
lv_value = ls_cfvo-type.
lo_element_4-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lv_value ).
lv_value = ls_cfvo-value.
lo_element_4-&gt;set_attribute_ns( name = lc_xml_attr_val
value = lv_value ).
lo_element_3-&gt;append_child( new_child = lo_element_4 ). &quot; cfvo node
ENDLOOP.
lo_element_2-&gt;append_child( new_child = lo_element_3 ). &quot; iconset node
WHEN zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis = lo_style_conditional-&gt;mode_cellis.
READ TABLE me-&gt;styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_cellis-cell_style.
lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_dxfid
value = lv_value ).
lv_value = ls_cellis-operator.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_operator
value = lv_value ).
&quot; formula node
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_formula
parent = lo_document ).
lv_value = ls_cellis-formula.
lo_element_3-&gt;set_value( value = lv_value ).
lo_element_2-&gt;append_child( new_child = lo_element_3 ). &quot; formula node
WHEN zcl_excel_style_conditional=&gt;c_rule_expression.
ls_expression = lo_style_conditional-&gt;mode_expression.
READ TABLE me-&gt;styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_expression-cell_style.
lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_dxfid
value = lv_value ).
&quot; formula node
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_formula
parent = lo_document ).
lv_value = ls_expression-formula.
lo_element_3-&gt;set_value( value = lv_value ).
lo_element_2-&gt;append_child( new_child = lo_element_3 ). &quot; formula node
ENDCASE.
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; cfRule node
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; Conditional formatting node
ENDWHILE.
IF io_worksheet-&gt;get_data_validations_size( ) GT 0.
&quot; dataValidations node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_datavalidations
parent = lo_document ).
&quot; Conditional formatting node
lo_iterator = io_worksheet-&gt;get_data_validations_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_data_validation ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
&quot; dataValidation node
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_datavalidation
parent = lo_document ).
lv_value = lo_data_validation-&gt;type.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lv_value ).
IF NOT lo_data_validation-&gt;operator IS INITIAL.
lv_value = lo_data_validation-&gt;operator.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_operator
value = lv_value ).
ENDIF.
IF lo_data_validation-&gt;allowblank EQ abap_true.
lv_value = &apos;1&apos;.
ELSE.
lv_value = &apos;0&apos;.
ENDIF.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_allowblank
value = lv_value ).
IF lo_data_validation-&gt;showinputmessage EQ abap_true.
lv_value = &apos;1&apos;.
ELSE.
lv_value = &apos;0&apos;.
ENDIF.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_showinputmessage
value = lv_value ).
IF lo_data_validation-&gt;showerrormessage EQ abap_true.
lv_value = &apos;1&apos;.
ELSE.
lv_value = &apos;0&apos;.
ENDIF.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_showerrormessage
value = lv_value ).
IF NOT lo_data_validation-&gt;errortitle IS INITIAL.
lv_value = lo_data_validation-&gt;errortitle.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_errortitle
value = lv_value ).
ENDIF.
IF NOT lo_data_validation-&gt;error IS INITIAL.
lv_value = lo_data_validation-&gt;error.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_error
value = lv_value ).
ENDIF.
IF NOT lo_data_validation-&gt;prompttitle IS INITIAL.
lv_value = lo_data_validation-&gt;prompttitle.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_prompttitle
value = lv_value ).
ENDIF.
IF NOT lo_data_validation-&gt;prompt IS INITIAL.
lv_value = lo_data_validation-&gt;prompt.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_prompt
value = lv_value ).
ENDIF.
lv_cell_row_s = lo_data_validation-&gt;cell_row.
CONDENSE lv_cell_row_s.
CONCATENATE lo_data_validation-&gt;cell_column lv_cell_row_s INTO lv_value.
IF lo_data_validation-&gt;cell_row_to IS NOT INITIAL.
lv_cell_row_s = lo_data_validation-&gt;cell_row_to.
CONDENSE lv_cell_row_s.
CONCATENATE lv_value &apos;:&apos; lo_data_validation-&gt;cell_column_to lv_cell_row_s INTO lv_value.
ENDIF.
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_sqref
value = lv_value ).
&quot; formula1 node
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_formula1
parent = lo_document ).
lv_value = lo_data_validation-&gt;formula1.
lo_element_3-&gt;set_value( value = lv_value ).
lo_element_2-&gt;append_child( new_child = lo_element_3 ). &quot; formula1 node
&quot; formula2 node
IF NOT lo_data_validation-&gt;formula2 IS INITIAL.
lo_element_3 = lo_document-&gt;create_simple_element( name = lc_xml_node_formula2
parent = lo_document ).
lv_value = lo_data_validation-&gt;formula2.
lo_element_3-&gt;set_value( value = lv_value ).
lo_element_2-&gt;append_child( new_child = lo_element_3 ). &quot; formula2 node
ENDIF.
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; dataValidation node
ENDWHILE.
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; dataValidations node
ENDIF.
&quot; Hyperlinks
DATA: lv_hyperlinks_count TYPE i,
lo_link TYPE REF TO zcl_excel_hyperlink.
lv_hyperlinks_count = io_worksheet-&gt;get_hyperlinks_size( ).
IF lv_hyperlinks_count &gt; 0.
lo_element = lo_document-&gt;create_simple_element( name = &apos;hyperlinks&apos;
parent = lo_document ).
lo_iterator = io_worksheet-&gt;get_hyperlinks_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_link ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lo_element_2 = lo_document-&gt;create_simple_element( name = &apos;hyperlink&apos;
parent = lo_element ).
lv_value = lo_link-&gt;get_ref( ).
lo_element_2-&gt;set_attribute_ns( name = &apos;ref&apos;
value = lv_value ).
IF lo_link-&gt;is_internal( ) = abap_true.
lv_value = lo_link-&gt;get_url( ).
lo_element_2-&gt;set_attribute_ns( name = &apos;location&apos;
value = lv_value ).
ELSE.
ADD 1 TO lv_relation_id.
lv_value = lv_relation_id.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element_2-&gt;set_attribute_ns( name = &apos;r:id&apos;
value = lv_value ).
ENDIF.
lo_element-&gt;append_child( new_child = lo_element_2 ).
ENDWHILE.
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
&quot; PrintOptions
IF io_worksheet-&gt;print_gridlines = abap_true OR
io_worksheet-&gt;sheet_setup-&gt;vertical_centered = abap_true OR
io_worksheet-&gt;sheet_setup-&gt;horizontal_centered = abap_true.
lo_element = lo_document-&gt;create_simple_element( name = &apos;printOptions&apos;
parent = lo_document ).
IF io_worksheet-&gt;print_gridlines = abap_true.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_gridlines
value = &apos;true&apos; ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;horizontal_centered = abap_true.
lo_element-&gt;set_attribute_ns( name = &apos;horizontalCentered&apos;
value = &apos;true&apos; ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;vertical_centered = abap_true.
lo_element-&gt;set_attribute_ns( name = &apos;verticalCentered&apos;
value = &apos;true&apos; ).
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
&quot; pageMargins node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_pagemargins
parent = lo_document ).
lv_value = io_worksheet-&gt;sheet_setup-&gt;margin_left.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_left
value = lv_value ).
lv_value = io_worksheet-&gt;sheet_setup-&gt;margin_right.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_right
value = lv_value ).
lv_value = io_worksheet-&gt;sheet_setup-&gt;margin_top.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_top
value = lv_value ).
lv_value = io_worksheet-&gt;sheet_setup-&gt;margin_bottom.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_bottom
value = lv_value ).
lv_value = io_worksheet-&gt;sheet_setup-&gt;margin_header.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_header
value = lv_value ).
lv_value = io_worksheet-&gt;sheet_setup-&gt;margin_footer.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_footer
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; pageMargins node
* pageSetup node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_pagesetup
parent = lo_document ).
IF io_worksheet-&gt;sheet_setup-&gt;black_and_white IS NOT INITIAL.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_blackandwhite
value = `1` ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;cell_comments IS NOT INITIAL.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_cellcomments
value = io_worksheet-&gt;sheet_setup-&gt;cell_comments ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;copies IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;copies.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_copies
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;draft IS NOT INITIAL.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_draft
value = `1` ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;errors IS NOT INITIAL.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_errors
value = io_worksheet-&gt;sheet_setup-&gt;errors ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;first_page_number IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;first_page_number.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_firstpagenumber
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;fit_to_page IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;fit_to_height.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_fittoheight
value = lv_value ).
lv_value = io_worksheet-&gt;sheet_setup-&gt;fit_to_width.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_fittowidth
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;horizontal_dpi IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;horizontal_dpi.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_horizontaldpi
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;orientation IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;orientation.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_orientation
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;page_order IS NOT INITIAL.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_pageorder
value = io_worksheet-&gt;sheet_setup-&gt;page_order ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;paper_height IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;paper_height.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_paperheight
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;paper_size IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;paper_size.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_papersize
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;paper_width IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;paper_width.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_paperwidth
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;scale IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;scale.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_scale
value = lv_value ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;use_first_page_num IS NOT INITIAL.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_usefirstpagenumber
value = `1` ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;use_printer_defaults IS NOT INITIAL.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_useprinterdefaults
value = `1` ).
ENDIF.
IF io_worksheet-&gt;sheet_setup-&gt;vertical_dpi IS NOT INITIAL.
lv_value = io_worksheet-&gt;sheet_setup-&gt;vertical_dpi.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_verticaldpi
value = lv_value ).
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; pageSetup node
* { headerFooter necessary? &gt;
IF io_worksheet-&gt;sheet_setup-&gt;odd_header IS NOT INITIAL
OR io_worksheet-&gt;sheet_setup-&gt;odd_footer IS NOT INITIAL
OR io_worksheet-&gt;sheet_setup-&gt;diff_oddeven_headerfooter = abap_true.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_headerfooter
parent = lo_document ).
&quot; Different header/footer for odd/even pages?
IF io_worksheet-&gt;sheet_setup-&gt;diff_oddeven_headerfooter = abap_true.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_differentoddeven
value = &apos;1&apos; ).
ENDIF.
&quot; OddHeader
CLEAR: lv_value.
io_worksheet-&gt;sheet_setup-&gt;get_header_footer_string( IMPORTING ep_odd_header = lv_value ) .
IF lv_value IS NOT INITIAL.
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_oddheader
parent = lo_document ).
lo_element_2-&gt;set_value( value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
ENDIF.
&quot; OddFooter
CLEAR: lv_value.
io_worksheet-&gt;sheet_setup-&gt;get_header_footer_string( IMPORTING ep_odd_footer = lv_value ) .
IF lv_value IS NOT INITIAL.
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_oddfooter
parent = lo_document ).
lo_element_2-&gt;set_value( value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
ENDIF.
&quot; evenHeader
CLEAR: lv_value.
io_worksheet-&gt;sheet_setup-&gt;get_header_footer_string( IMPORTING ep_even_header = lv_value ) .
IF lv_value IS NOT INITIAL.
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_evenheader
parent = lo_document ).
lo_element_2-&gt;set_value( value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
ENDIF.
&quot; evenFooter
CLEAR: lv_value.
io_worksheet-&gt;sheet_setup-&gt;get_header_footer_string( IMPORTING ep_even_footer = lv_value ) .
IF lv_value IS NOT INITIAL.
lo_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_evenfooter
parent = lo_document ).
lo_element_2-&gt;set_value( value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; headerFooter
ENDIF.
* drawing
DATA: lo_drawings TYPE REF TO zcl_excel_drawings.
lo_drawings = io_worksheet-&gt;get_drawings( ).
IF lo_drawings-&gt;is_empty( ) = abap_false.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_drawing
parent = lo_document ).
ADD 1 TO lv_relation_id.
lv_value = lv_relation_id.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element-&gt;set_attribute( name = &apos;r:id&apos;
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
* tables
DATA lv_table_count TYPE i.
lv_table_count = io_worksheet-&gt;get_tables_size( ).
IF lv_table_count &gt; 0.
lo_element = lo_document-&gt;create_simple_element( name = &apos;tableParts&apos;
parent = lo_document ).
lv_value = lv_table_count.
CONDENSE lv_value.
lo_element-&gt;set_attribute_ns( name = &apos;count&apos;
value = lv_value ).
lo_iterator = io_worksheet-&gt;get_tables_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_table ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
ADD 1 TO lv_relation_id.
lv_value = lv_relation_id.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element_2 = lo_document-&gt;create_simple_element( name = &apos;tablePart&apos;
parent = lo_element ).
lo_element_2-&gt;set_attribute_ns( name = &apos;r:id&apos;
value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element_2 ).
ENDWHILE.
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET_RELS" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/workbook/_rels/sheet.xml.rels&apos;" EXPOSURE="1" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET_RELS" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET_RELS" SCONAME="IV_DRAWING_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET_RELS" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_SHEET_RELS.
** Constant node name
DATA: lc_xml_node_relationships TYPE string VALUE &apos;Relationships&apos;,
lc_xml_node_relationship TYPE string VALUE &apos;Relationship&apos;,
&quot; Node attributes
lc_xml_attr_id TYPE string VALUE &apos;Id&apos;,
lc_xml_attr_type TYPE string VALUE &apos;Type&apos;,
lc_xml_attr_target TYPE string VALUE &apos;Target&apos;,
lc_xml_attr_target_mode TYPE string VALUE &apos;TargetMode&apos;,
lc_xml_val_external TYPE string VALUE &apos;External&apos;,
&quot; Node namespace
lc_xml_node_rels_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/package/2006/relationships&apos;,
lc_xml_node_rid_table_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/table&apos;,
lc_xml_node_rid_printer_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings&apos;,
lc_xml_node_rid_drawing_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing&apos;,
lc_xml_node_rid_link_tp TYPE string VALUE &apos;http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_table TYPE REF TO zcl_excel_table,
lo_link TYPE REF TO zcl_excel_hyperlink.
DATA: lv_value TYPE string,
lv_relation_id TYPE i,
lv_index_str TYPE string.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node relationships
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_relationships
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_rels_ns ).
**********************************************************************
* STEP 4: Create subnodes
&quot; Add sheet Relationship nodes here
lv_relation_id = 0.
lo_iterator = io_worksheet-&gt;get_hyperlinks_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_link ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
ADD 1 TO lv_relation_id.
lv_value = lv_relation_id.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_value ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_link_tp ).
lv_value = lo_link-&gt;get_url( ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lv_value ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target_mode
value = lc_xml_val_external ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDWHILE.
* drawing
DATA: lo_drawings TYPE REF TO zcl_excel_drawings.
lo_drawings = io_worksheet-&gt;get_drawings( ).
IF lo_drawings-&gt;is_empty( ) = abap_false.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
ADD 1 TO lv_relation_id.
lv_value = lv_relation_id.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_value ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_drawing_tp ).
lv_index_str = iv_drawing_index.
CONDENSE lv_index_str NO-GAPS.
MOVE me-&gt;c_xl_drawings TO lv_value.
REPLACE &apos;xl&apos; WITH &apos;..&apos; INTO lv_value.
REPLACE &apos;#&apos; WITH lv_index_str INTO lv_value.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
lo_iterator = io_worksheet-&gt;get_tables_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_table ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
ADD 1 TO lv_relation_id.
lv_value = lv_relation_id.
CONDENSE lv_value.
CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_value ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_table_tp ).
lv_value = lo_table-&gt;get_name( ).
CONCATENATE &apos;../tables/&apos; lv_value &apos;.xml&apos; INTO lv_value.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDWHILE.
* IF io_worksheet-&gt;get_print_settings( )-&gt;is_empty( ) = abap_false.
* ADD 1 TO lv_relation_id.
* lv_value = lv_relation_id.
* CONDENSE lv_value.
* CONCATENATE &apos;rId&apos; lv_value INTO lv_value.
*
* lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
* parent = lo_document ).
* lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
* value = lv_value ).
* lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
* value = lc_xml_node_rid_printer_tp ).
*
* lv_index_str = iv_printer_index.
* CONDENSE lv_index_str NO-GAPS.
* MOVE me-&gt;c_xl_printersettings TO lv_value.
* REPLACE &apos;xl&apos; WITH &apos;..&apos; INTO lv_value.
* REPLACE &apos;#&apos; WITH lv_index_str INTO lv_value.
* lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
* value = lv_value ).
*
* lo_element_root-&gt;append_child( new_child = lo_element ).
* ENDIF.
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_STYLES" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/styles.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_STYLES" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>METHOD create_xl_styles.
** Constant node name
CONSTANTS: lc_xml_node_stylesheet TYPE string VALUE &apos;styleSheet&apos;,
&quot; font
lc_xml_node_fonts TYPE string VALUE &apos;fonts&apos;,
lc_xml_node_font TYPE string VALUE &apos;font&apos;,
lc_xml_node_b TYPE string VALUE &apos;b&apos;, &quot;bold
lc_xml_node_i TYPE string VALUE &apos;i&apos;, &quot;italic
lc_xml_node_u TYPE string VALUE &apos;u&apos;, &quot;underline
lc_xml_node_strike TYPE string VALUE &apos;strike&apos;, &quot;strikethrough
lc_xml_node_sz TYPE string VALUE &apos;sz&apos;,
lc_xml_node_color TYPE string VALUE &apos;color&apos;,
lc_xml_node_name TYPE string VALUE &apos;name&apos;,
lc_xml_node_family TYPE string VALUE &apos;family&apos;,
lc_xml_node_scheme TYPE string VALUE &apos;scheme&apos;,
&quot; fill
lc_xml_node_fills TYPE string VALUE &apos;fills&apos;,
lc_xml_node_fill TYPE string VALUE &apos;fill&apos;,
lc_xml_node_patternfill TYPE string VALUE &apos;patternFill&apos;,
lc_xml_node_fgcolor TYPE string VALUE &apos;fgColor&apos;,
lc_xml_node_bgcolor TYPE string VALUE &apos;bgColor&apos;,
lc_xml_node_gradientfill TYPE string VALUE &apos;gradientFill&apos;,
lc_xml_node_stop TYPE string VALUE &apos;stop&apos;,
&quot; borders
lc_xml_node_borders TYPE string VALUE &apos;borders&apos;,
lc_xml_node_border TYPE string VALUE &apos;border&apos;,
lc_xml_node_left TYPE string VALUE &apos;left&apos;,
lc_xml_node_right TYPE string VALUE &apos;right&apos;,
lc_xml_node_top TYPE string VALUE &apos;top&apos;,
lc_xml_node_bottom TYPE string VALUE &apos;bottom&apos;,
lc_xml_node_diagonal TYPE string VALUE &apos;diagonal&apos;,
&quot; numfmt
lc_xml_node_numfmts TYPE string VALUE &apos;numFmts&apos;,
lc_xml_node_numfmt TYPE string VALUE &apos;numFmt&apos;,
&quot; Styles
lc_xml_node_cellstylexfs TYPE string VALUE &apos;cellStyleXfs&apos;,
lc_xml_node_xf TYPE string VALUE &apos;xf&apos;,
lc_xml_node_cellxfs TYPE string VALUE &apos;cellXfs&apos;,
lc_xml_node_cellstyles TYPE string VALUE &apos;cellStyles&apos;,
lc_xml_node_cellstyle TYPE string VALUE &apos;cellStyle&apos;,
lc_xml_node_dxfs TYPE string VALUE &apos;dxfs&apos;,
lc_xml_node_dxf TYPE string VALUE &apos;dxf&apos;,
lc_xml_node_tablestyles TYPE string VALUE &apos;tableStyles&apos;,
&quot; Colors
lc_xml_node_colors TYPE string VALUE &apos;colors&apos;,
lc_xml_node_indexedcolors TYPE string VALUE &apos;indexedColors&apos;,
lc_xml_node_rgbcolor TYPE string VALUE &apos;rgbColor&apos;,
lc_xml_node_mrucolors TYPE string VALUE &apos;mruColors&apos;,
&quot; Alignment
lc_xml_node_alignment TYPE string VALUE &apos;alignment&apos;,
&quot; Protection
lc_xml_node_protection TYPE string VALUE &apos;protection&apos;,
&quot; Node attributes
lc_xml_attr_count TYPE string VALUE &apos;count&apos;,
lc_xml_attr_val TYPE string VALUE &apos;val&apos;,
lc_xml_attr_theme TYPE string VALUE &apos;theme&apos;,
lc_xml_attr_rgb TYPE string VALUE &apos;rgb&apos;,
lc_xml_attr_indexed TYPE string VALUE &apos;indexed&apos;,
lc_xml_attr_tint TYPE string VALUE &apos;tint&apos;,
lc_xml_attr_style TYPE string VALUE &apos;style&apos;,
lc_xml_attr_position TYPE string VALUE &apos;position&apos;,
lc_xml_attr_degree TYPE string VALUE &apos;degree&apos;,
lc_xml_attr_patterntype TYPE string VALUE &apos;patternType&apos;,
lc_xml_attr_numfmtid TYPE string VALUE &apos;numFmtId&apos;,
lc_xml_attr_fontid TYPE string VALUE &apos;fontId&apos;,
lc_xml_attr_fillid TYPE string VALUE &apos;fillId&apos;,
lc_xml_attr_borderid TYPE string VALUE &apos;borderId&apos;,
lc_xml_attr_xfid TYPE string VALUE &apos;xfId&apos;,
lc_xml_attr_applynumberformat TYPE string VALUE &apos;applyNumberFormat&apos;,
lc_xml_attr_applyprotection TYPE string VALUE &apos;applyProtection&apos;,
lc_xml_attr_applyfont TYPE string VALUE &apos;applyFont&apos;,
lc_xml_attr_applyfill TYPE string VALUE &apos;applyFill&apos;,
lc_xml_attr_applyborder TYPE string VALUE &apos;applyBorder&apos;,
lc_xml_attr_name TYPE string VALUE &apos;name&apos;,
lc_xml_attr_builtinid TYPE string VALUE &apos;builtinId&apos;,
lc_xml_attr_defaulttablestyle TYPE string VALUE &apos;defaultTableStyle&apos;,
lc_xml_attr_defaultpivotstyle TYPE string VALUE &apos;defaultPivotStyle&apos;,
lc_xml_attr_applyalignment TYPE string VALUE &apos;applyAlignment&apos;,
lc_xml_attr_horizontal TYPE string VALUE &apos;horizontal&apos;,
lc_xml_attr_formatcode TYPE string VALUE &apos;formatCode&apos;,
lc_xml_attr_vertical TYPE string VALUE &apos;vertical&apos;,
lc_xml_attr_wraptext TYPE string VALUE &apos;wrapText&apos;,
lc_xml_attr_textrotation TYPE string VALUE &apos;textRotation&apos;,
lc_xml_attr_shrinktofit TYPE string VALUE &apos;shrinkToFit&apos;,
lc_xml_attr_indent TYPE string VALUE &apos;indent&apos;,
lc_xml_attr_locked TYPE string VALUE &apos;locked&apos;,
lc_xml_attr_hidden TYPE string VALUE &apos;hidden&apos;,
lc_xml_attr_diagonalup TYPE string VALUE &apos;diagonalUp&apos;,
lc_xml_attr_diagonaldown TYPE string VALUE &apos;diagonalDown&apos;,
&quot; Node namespace
lc_xml_node_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/spreadsheetml/2006/main&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element_fonts TYPE REF TO if_ixml_element,
lo_element_font TYPE REF TO if_ixml_element,
lo_element_fills TYPE REF TO if_ixml_element,
lo_element_fill TYPE REF TO if_ixml_element,
lo_element_borders TYPE REF TO if_ixml_element,
lo_element_border TYPE REF TO if_ixml_element,
lo_element_numfmts TYPE REF TO if_ixml_element,
lo_element_numfmt TYPE REF TO if_ixml_element,
lo_element_cellxfs TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_sub_element TYPE REF TO if_ixml_element,
lo_sub_element_2 TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_iterator2 TYPE REF TO cl_object_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lo_style TYPE REF TO zcl_excel_style.
DATA: lt_fonts TYPE zexcel_t_style_font,
ls_font TYPE zexcel_s_style_font,
lt_fills TYPE zexcel_t_style_fill,
ls_fill TYPE zexcel_s_style_fill,
lt_borders TYPE zexcel_t_style_border,
ls_border TYPE zexcel_s_style_border,
lt_numfmts TYPE zexcel_t_style_numfmt,
ls_numfmt TYPE zexcel_s_style_numfmt,
lt_protections TYPE zexcel_t_style_protection,
ls_protection TYPE zexcel_s_style_protection,
lt_alignments TYPE zexcel_t_style_alignment,
ls_alignment TYPE zexcel_s_style_alignment,
lt_cellxfs TYPE zexcel_t_cellxfs,
ls_cellxfs TYPE zexcel_s_cellxfs,
ls_styles_mapping TYPE zexcel_s_styles_mapping,
ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping,
ls_cellis TYPE zexcel_conditional_cellis,
ls_expression TYPE zexcel_conditional_expression,
lt_colors TYPE zexcel_t_style_color_argb,
ls_color LIKE LINE OF lt_colors.
DATA: lv_value TYPE string,
lv_dfx_count TYPE i,
lv_fonts_count TYPE i,
lv_fills_count TYPE i,
lv_borders_count TYPE i,
lv_cellxfs_count TYPE i,
lv_index TYPE i,
lv_align_flag TYPE c.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
***********************************************************************
* STEP 3: Create main node relationships
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_stylesheet
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_ns ).
**********************************************************************
* STEP 4: Create subnodes
lo_element_fonts = lo_document-&gt;create_simple_element( name = lc_xml_node_fonts
parent = lo_document ).
lo_element_fills = lo_document-&gt;create_simple_element( name = lc_xml_node_fills
parent = lo_document ).
lo_element_borders = lo_document-&gt;create_simple_element( name = lc_xml_node_borders
parent = lo_document ).
lo_element_cellxfs = lo_document-&gt;create_simple_element( name = lc_xml_node_cellxfs
parent = lo_document ).
lo_element_numfmts = lo_document-&gt;create_simple_element( name = lc_xml_node_numfmts
parent = lo_document ).
* Compress styles
lo_iterator = excel-&gt;get_styles_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_style ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
ls_font = lo_style-&gt;font-&gt;get_structure( ).
ls_fill = lo_style-&gt;fill-&gt;get_structure( ).
ls_border = lo_style-&gt;borders-&gt;get_structure( ).
ls_alignment = lo_style-&gt;alignment-&gt;get_structure( ).
ls_protection = lo_style-&gt;protection-&gt;get_structure( ).
ls_numfmt = lo_style-&gt;number_format-&gt;get_structure( ).
CLEAR ls_cellxfs.
* Compress fonts
READ TABLE lt_fonts FROM ls_font TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
ls_cellxfs-fontid = sy-tabix.
ELSE.
APPEND ls_font TO lt_fonts.
DESCRIBE TABLE lt_fonts LINES ls_cellxfs-fontid.
ENDIF.
SUBTRACT 1 FROM ls_cellxfs-fontid.
* Compress alignment
READ TABLE lt_alignments FROM ls_alignment TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
ls_cellxfs-alignmentid = sy-tabix.
ELSE.
APPEND ls_alignment TO lt_alignments.
DESCRIBE TABLE lt_alignments LINES ls_cellxfs-alignmentid.
ENDIF.
SUBTRACT 1 FROM ls_cellxfs-alignmentid.
* Compress fills
READ TABLE lt_fills FROM ls_fill TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
ls_cellxfs-fillid = sy-tabix.
ELSE.
APPEND ls_fill TO lt_fills.
DESCRIBE TABLE lt_fills LINES ls_cellxfs-fillid.
ENDIF.
SUBTRACT 1 FROM ls_cellxfs-fillid.
* Compress borders
READ TABLE lt_borders FROM ls_border TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
ls_cellxfs-borderid = sy-tabix.
ELSE.
APPEND ls_border TO lt_borders.
DESCRIBE TABLE lt_borders LINES ls_cellxfs-borderid.
ENDIF.
SUBTRACT 1 FROM ls_cellxfs-borderid.
* Compress protection
IF ls_protection-locked EQ c_on AND ls_protection-hidden EQ c_off.
ls_cellxfs-applyprotection = 0.
ELSE.
READ TABLE lt_protections FROM ls_protection TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
ls_cellxfs-protectionid = sy-tabix.
ELSE.
APPEND ls_protection TO lt_protections.
DESCRIBE TABLE lt_protections LINES ls_cellxfs-protectionid.
ENDIF.
ls_cellxfs-applyprotection = 1.
ENDIF.
SUBTRACT 1 FROM ls_cellxfs-protectionid.
* Compress number formats
&quot;-----------
IF ls_numfmt-numfmt NE zcl_excel_style_number_format=&gt;c_format_date_std.&quot; and ls_numfmt-NUMFMT ne &apos;STD_NDEC&apos;. &quot; ALE Changes on going
&quot;---
IF ls_numfmt IS NOT INITIAL.
READ TABLE lt_numfmts FROM ls_numfmt TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
ls_cellxfs-numfmtid = sy-tabix.
ELSE.
APPEND ls_numfmt TO lt_numfmts.
DESCRIBE TABLE lt_numfmts LINES ls_cellxfs-numfmtid.
ENDIF.
ADD zcl_excel_common=&gt;c_excel_numfmt_offset TO ls_cellxfs-numfmtid. &quot; Add OXML offset for custom styles
ls_cellxfs-applynumberformat = 1.
ELSE.
ls_cellxfs-applynumberformat = 0.
ENDIF.
&quot;----------- &quot; ALE changes on going
ELSE.
ls_cellxfs-applynumberformat = 1.
IF ls_numfmt-numfmt EQ zcl_excel_style_number_format=&gt;c_format_date_std.
ls_cellxfs-numfmtid = 14.
* elseif ls_numfmt-NUMFMT eq &apos;STD_NDEC&apos;.
* ls_cellxfs-numfmtid = 2.
ENDIF.
ENDIF.
&quot;---
IF ls_cellxfs-fontid NE 0.
ls_cellxfs-applyfont = 1.
ELSE.
ls_cellxfs-applyfont = 0.
ENDIF.
IF ls_cellxfs-alignmentid NE 0.
ls_cellxfs-applyalignment = 1.
ELSE.
ls_cellxfs-applyalignment = 0.
ENDIF.
IF ls_cellxfs-fillid NE 0.
ls_cellxfs-applyfill = 1.
ELSE.
ls_cellxfs-applyfill = 0.
ENDIF.
IF ls_cellxfs-borderid NE 0.
ls_cellxfs-applyborder = 1.
ELSE.
ls_cellxfs-applyborder = 0.
ENDIF.
* Remap styles
READ TABLE lt_cellxfs FROM ls_cellxfs TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
ls_styles_mapping-style = sy-tabix.
ELSE.
APPEND ls_cellxfs TO lt_cellxfs.
DESCRIBE TABLE lt_cellxfs LINES ls_styles_mapping-style.
ENDIF.
SUBTRACT 1 FROM ls_styles_mapping-style.
ls_styles_mapping-guid = lo_style-&gt;get_guid( ).
APPEND ls_styles_mapping TO me-&gt;styles_mapping.
ENDWHILE.
&quot; create numfmt elements
LOOP AT lt_numfmts INTO ls_numfmt.
lo_element_numfmt = lo_document-&gt;create_simple_element( name = lc_xml_node_numfmt
parent = lo_document ).
lv_value = sy-tabix + zcl_excel_common=&gt;c_excel_numfmt_offset.
CONDENSE lv_value.
lo_element_numfmt-&gt;set_attribute_ns( name = lc_xml_attr_numfmtid
value = lv_value ).
lv_value = ls_numfmt-numfmt.
* REPLACE ALL OCCURRENCES OF &apos;.&apos; IN lv_value WITH &apos;\.&apos;.
lo_element_numfmt-&gt;set_attribute_ns( name = lc_xml_attr_formatcode
value = lv_value ).
lo_element_numfmts-&gt;append_child( new_child = lo_element_numfmt ).
ENDLOOP.
&quot; create font elements
LOOP AT lt_fonts INTO ls_font.
lo_element_font = lo_document-&gt;create_simple_element( name = lc_xml_node_font
parent = lo_document ).
IF ls_font-bold EQ abap_true.
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_b
parent = lo_document ).
lo_element_font-&gt;append_child( new_child = lo_sub_element ).
ENDIF.
IF ls_font-italic EQ abap_true.
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_i
parent = lo_document ).
lo_element_font-&gt;append_child( new_child = lo_sub_element ).
ENDIF.
IF ls_font-underline EQ abap_true.
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_u
parent = lo_document ).
lv_value = ls_font-underline_mode.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_val
value = lv_value ).
lo_element_font-&gt;append_child( new_child = lo_sub_element ).
ENDIF.
IF ls_font-strikethrough EQ abap_true.
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_strike
parent = lo_document ).
lo_element_font-&gt;append_child( new_child = lo_sub_element ).
ENDIF.
&quot;size
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_sz
parent = lo_document ).
lv_value = ls_font-size.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_val
value = lv_value ).
lo_element_font-&gt;append_child( new_child = lo_sub_element ).
&quot;color
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_element_font
is_color = ls_font-color ).
&quot;name
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_name
parent = lo_document ).
lv_value = ls_font-name.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_val
value = lv_value ).
lo_element_font-&gt;append_child( new_child = lo_sub_element ).
&quot;family
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_family
parent = lo_document ).
lv_value = ls_font-family.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_val
value = lv_value ).
lo_element_font-&gt;append_child( new_child = lo_sub_element ).
&quot;scheme
IF ls_font-scheme IS NOT INITIAL.
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_scheme
parent = lo_document ).
lv_value = ls_font-scheme.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_val
value = lv_value ).
lo_element_font-&gt;append_child( new_child = lo_sub_element ).
ENDIF.
lo_element_fonts-&gt;append_child( new_child = lo_element_font ).
ENDLOOP.
&quot; create fill elements
LOOP AT lt_fills INTO ls_fill.
lo_element_fill = lo_document-&gt;create_simple_element( name = lc_xml_node_fill
parent = lo_document ).
&quot;pattern
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_patternfill
parent = lo_document ).
lv_value = ls_fill-filltype.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_patterntype
value = lv_value ).
&quot; fgcolor
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element
is_color = ls_fill-fgcolor
iv_color_elem_name = lc_xml_node_fgcolor ).
&quot; bgcolor
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element
is_color = ls_fill-bgcolor
iv_color_elem_name = lc_xml_node_bgcolor ).
lo_element_fill-&gt;append_child( new_child = lo_sub_element ).&quot;pattern
lo_element_fills-&gt;append_child( new_child = lo_element_fill ).
ENDLOOP.
&quot; create border elements
LOOP AT lt_borders INTO ls_border.
lo_element_border = lo_document-&gt;create_simple_element( name = lc_xml_node_border
parent = lo_document ).
IF ls_border-diagonalup IS NOT INITIAL.
lv_value = ls_border-diagonalup.
CONDENSE lv_value.
lo_element_border-&gt;set_attribute_ns( name = lc_xml_attr_diagonalup
value = lv_value ).
ENDIF.
IF ls_border-diagonaldown IS NOT INITIAL.
lv_value = ls_border-diagonaldown.
CONDENSE lv_value.
lo_element_border-&gt;set_attribute_ns( name = lc_xml_attr_diagonaldown
value = lv_value ).
ENDIF.
&quot;left
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_left
parent = lo_document ).
IF ls_border-left_style IS NOT INITIAL.
lv_value = ls_border-left_style.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_style
value = lv_value ).
ENDIF.
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element
is_color = ls_border-left_color ).
lo_element_border-&gt;append_child( new_child = lo_sub_element ).
&quot;right
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_right
parent = lo_document ).
IF ls_border-right_style IS NOT INITIAL.
lv_value = ls_border-right_style.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_style
value = lv_value ).
ENDIF.
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element
is_color = ls_border-right_color ).
lo_element_border-&gt;append_child( new_child = lo_sub_element ).
&quot;top
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_top
parent = lo_document ).
IF ls_border-top_style IS NOT INITIAL.
lv_value = ls_border-top_style.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_style
value = lv_value ).
ENDIF.
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element
is_color = ls_border-top_color ).
lo_element_border-&gt;append_child( new_child = lo_sub_element ).
&quot;bottom
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_bottom
parent = lo_document ).
IF ls_border-bottom_style IS NOT INITIAL.
lv_value = ls_border-bottom_style.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_style
value = lv_value ).
ENDIF.
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element
is_color = ls_border-bottom_color ).
lo_element_border-&gt;append_child( new_child = lo_sub_element ).
&quot;diagonal
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_diagonal
parent = lo_document ).
IF ls_border-diagonal_style IS NOT INITIAL.
lv_value = ls_border-diagonal_style.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_style
value = lv_value ).
ENDIF.
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element
is_color = ls_border-diagonal_color ).
lo_element_border-&gt;append_child( new_child = lo_sub_element ).
lo_element_borders-&gt;append_child( new_child = lo_element_border ).
ENDLOOP.
&quot; update attribute &quot;count&quot;
DESCRIBE TABLE lt_fonts LINES lv_fonts_count.
MOVE lv_fonts_count TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_fonts-&gt;set_attribute_ns( name = lc_xml_attr_count
value = lv_value ).
DESCRIBE TABLE lt_fills LINES lv_fills_count.
MOVE lv_fills_count TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_fills-&gt;set_attribute_ns( name = lc_xml_attr_count
value = lv_value ).
DESCRIBE TABLE lt_borders LINES lv_borders_count.
MOVE lv_borders_count TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_borders-&gt;set_attribute_ns( name = lc_xml_attr_count
value = lv_value ).
DESCRIBE TABLE lt_cellxfs LINES lv_cellxfs_count.
MOVE lv_cellxfs_count TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_cellxfs-&gt;set_attribute_ns( name = lc_xml_attr_count
value = lv_value ).
&quot; Append to root node
lo_element_root-&gt;append_child( new_child = lo_element_numfmts ).
lo_element_root-&gt;append_child( new_child = lo_element_fonts ).
lo_element_root-&gt;append_child( new_child = lo_element_fills ).
lo_element_root-&gt;append_child( new_child = lo_element_borders ).
&quot; cellstylexfs node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_cellstylexfs
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_count
value = &apos;1&apos; ).
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_xf
parent = lo_document ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_numfmtid
value = c_off ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_fontid
value = c_off ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_fillid
value = c_off ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_borderid
value = c_off ).
lo_element-&gt;append_child( new_child = lo_sub_element ).
lo_element_root-&gt;append_child( new_child = lo_element ).
LOOP AT lt_cellxfs INTO ls_cellxfs.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_xf
parent = lo_document ).
MOVE ls_cellxfs-numfmtid TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_numfmtid
value = lv_value ).
MOVE ls_cellxfs-fontid TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_fontid
value = lv_value ).
MOVE ls_cellxfs-fillid TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_fillid
value = lv_value ).
MOVE ls_cellxfs-borderid TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_borderid
value = lv_value ).
MOVE ls_cellxfs-xfid TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_xfid
value = lv_value ).
IF ls_cellxfs-applynumberformat EQ 1.
MOVE ls_cellxfs-applynumberformat TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_applynumberformat
value = lv_value ).
ENDIF.
IF ls_cellxfs-applyfont EQ 1.
MOVE ls_cellxfs-applyfont TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_applyfont
value = lv_value ).
ENDIF.
IF ls_cellxfs-applyfill EQ 1.
MOVE ls_cellxfs-applyfill TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_applyfill
value = lv_value ).
ENDIF.
IF ls_cellxfs-applyborder EQ 1.
MOVE ls_cellxfs-applyborder TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_applyborder
value = lv_value ).
ENDIF.
IF ls_cellxfs-applyalignment EQ 1. &quot; depends on each style not for all the sheet
MOVE ls_cellxfs-applyalignment TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_applyalignment
value = lv_value ).
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_alignment
parent = lo_document ).
ADD 1 TO ls_cellxfs-alignmentid. &quot;Table index starts from 1
READ TABLE lt_alignments INTO ls_alignment INDEX ls_cellxfs-alignmentid.
SUBTRACT 1 FROM ls_cellxfs-alignmentid.
IF ls_alignment-horizontal IS NOT INITIAL.
MOVE ls_alignment-horizontal TO lv_value.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_horizontal
value = lv_value ).
ENDIF.
IF ls_alignment-vertical IS NOT INITIAL.
MOVE ls_alignment-vertical TO lv_value.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_vertical
value = lv_value ).
ENDIF.
IF ls_alignment-wraptext EQ abap_true.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_wraptext
value = c_on ).
ENDIF.
IF ls_alignment-textrotation IS NOT INITIAL.
MOVE ls_alignment-textrotation TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_textrotation
value = lv_value ).
ENDIF.
IF ls_alignment-shrinktofit EQ abap_true.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_shrinktofit
value = c_on ).
ENDIF.
IF ls_alignment-indent IS NOT INITIAL.
MOVE ls_alignment-indent TO lv_value.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_indent
value = lv_value ).
ENDIF.
lo_element-&gt;append_child( new_child = lo_sub_element_2 ).
ENDIF.
IF ls_cellxfs-applyprotection EQ 1.
MOVE ls_cellxfs-applyprotection TO lv_value.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_applyprotection
value = lv_value ).
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_protection
parent = lo_document ).
ADD 1 TO ls_cellxfs-protectionid. &quot;Table index starts from 1
READ TABLE lt_protections INTO ls_protection INDEX ls_cellxfs-protectionid.
SUBTRACT 1 FROM ls_cellxfs-protectionid.
IF ls_protection-locked IS NOT INITIAL.
MOVE ls_protection-locked TO lv_value.
CONDENSE lv_value.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_locked
value = lv_value ).
ENDIF.
IF ls_protection-hidden IS NOT INITIAL.
MOVE ls_protection-hidden TO lv_value.
CONDENSE lv_value.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_hidden
value = lv_value ).
ENDIF.
lo_element-&gt;append_child( new_child = lo_sub_element_2 ).
ENDIF.
lo_element_cellxfs-&gt;append_child( new_child = lo_element ).
ENDLOOP.
lo_element_root-&gt;append_child( new_child = lo_element_cellxfs ).
&quot; cellStyles node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_cellstyles
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_count
value = &apos;1&apos; ).
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_cellstyle
parent = lo_document ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_name
value = &apos;Normal&apos; ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_xfid
value = c_off ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_builtinid
value = c_off ).
lo_element-&gt;append_child( new_child = lo_sub_element ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; dxfs node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_dxfs
parent = lo_document ).
lo_iterator = me-&gt;excel-&gt;get_worksheets_iterator( ).
&quot; get sheets
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
&quot; Conditional formatting styles into exch sheet
lo_iterator2 = lo_worksheet-&gt;get_cond_styles_iterator( ).
WHILE lo_iterator2-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_style_conditional ?= lo_iterator2-&gt;if_object_collection_iterator~get_next( ).
CASE lo_style_conditional-&gt;rule.
WHEN zcl_excel_style_conditional=&gt;c_rule_cellis.
&quot;if style defined
ls_cellis = lo_style_conditional-&gt;mode_cellis.
IF ls_cellis-cell_style IS INITIAL.
CONTINUE.
ENDIF.
READ TABLE me-&gt;styles_mapping INTO ls_styles_mapping WITH KEY guid = ls_cellis-cell_style.
ADD 1 TO ls_styles_mapping-style. &quot; the numbering starts from 0
READ TABLE lt_cellxfs INTO ls_cellxfs INDEX ls_styles_mapping-style.
ADD 1 TO ls_cellxfs-fillid. &quot; the numbering starts from 0
&quot; Style already mapped?
READ TABLE me-&gt;styles_cond_mapping INTO ls_style_cond_mapping WITH KEY style = ls_styles_mapping-style.
IF sy-subrc EQ 0.
ls_style_cond_mapping-guid = ls_cellis-cell_style.
APPEND ls_style_cond_mapping TO me-&gt;styles_cond_mapping.
ELSE.
ls_style_cond_mapping-guid = ls_cellis-cell_style.
ls_style_cond_mapping-style = ls_styles_mapping-style.
ls_style_cond_mapping-dxf = lv_dfx_count.
APPEND ls_style_cond_mapping TO me-&gt;styles_cond_mapping.
ADD 1 TO lv_dfx_count.
&quot; dxf node
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_dxf
parent = lo_document ).
&quot;Conditional formatting font style correction by Alessandro Iannacci START
lv_index = ls_cellxfs-fontid + 1.
READ TABLE lt_fonts INTO ls_font INDEX lv_index.
IF ls_font IS NOT INITIAL.
lo_element_font = lo_document-&gt;create_simple_element( name = lc_xml_node_font
parent = lo_document ).
IF ls_font-bold EQ abap_true.
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_b
parent = lo_document ).
lo_element_font-&gt;append_child( new_child = lo_sub_element_2 ).
ENDIF.
IF ls_font-italic EQ abap_true.
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_i
parent = lo_document ).
lo_element_font-&gt;append_child( new_child = lo_sub_element_2 ).
ENDIF.
IF ls_font-underline EQ abap_true.
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_u
parent = lo_document ).
lv_value = ls_font-underline_mode.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_val
value = lv_value ).
lo_element_font-&gt;append_child( new_child = lo_sub_element_2 ).
ENDIF.
IF ls_font-strikethrough EQ abap_true.
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_strike
parent = lo_document ).
lo_element_font-&gt;append_child( new_child = lo_sub_element_2 ).
ENDIF.
&quot;color
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_element_font
is_color = ls_font-color ).
lo_sub_element-&gt;append_child( new_child = lo_element_font ).
ENDIF.
&quot;---Conditional formatting font style correction by Alessandro Iannacci END
READ TABLE lt_fills INTO ls_fill INDEX ls_cellxfs-fillid.
IF ls_fill IS NOT INITIAL.
&quot; fill properties
lo_element_fill = lo_document-&gt;create_simple_element( name = lc_xml_node_fill
parent = lo_document ).
&quot;pattern
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_patternfill
parent = lo_document ).
lv_value = ls_fill-filltype.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_patterntype
value = lv_value ).
&quot; fgcolor
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element_2
is_color = ls_fill-fgcolor
iv_color_elem_name = lc_xml_node_fgcolor ).
&quot; bgcolor
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element_2
is_color = ls_fill-bgcolor
iv_color_elem_name = lc_xml_node_bgcolor ).
lo_element_fill-&gt;append_child( new_child = lo_sub_element_2 ). &quot;pattern
lo_sub_element-&gt;append_child( new_child = lo_element_fill ).
ENDIF.
ENDIF.
lo_element-&gt;append_child( new_child = lo_sub_element ).
WHEN zcl_excel_style_conditional=&gt;c_rule_expression.
&quot;if style defined
ls_expression = lo_style_conditional-&gt;mode_expression.
IF ls_expression-cell_style IS INITIAL.
CONTINUE.
ENDIF.
READ TABLE me-&gt;styles_mapping INTO ls_styles_mapping WITH KEY guid = ls_expression-cell_style.
ADD 1 TO ls_styles_mapping-style. &quot; the numbering starts from 0
READ TABLE lt_cellxfs INTO ls_cellxfs INDEX ls_styles_mapping-style.
ADD 1 TO ls_cellxfs-fillid. &quot; the numbering starts from 0
READ TABLE me-&gt;styles_cond_mapping INTO ls_style_cond_mapping WITH KEY style = ls_styles_mapping-style.
IF sy-subrc EQ 0.
ls_style_cond_mapping-guid = ls_expression-cell_style.
APPEND ls_style_cond_mapping TO me-&gt;styles_cond_mapping.
ELSE.
ls_style_cond_mapping-guid = ls_expression-cell_style.
ls_style_cond_mapping-style = ls_styles_mapping-style.
ls_style_cond_mapping-dxf = lv_dfx_count.
APPEND ls_style_cond_mapping TO me-&gt;styles_cond_mapping.
ADD 1 TO lv_dfx_count.
&quot; dxf node
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_dxf
parent = lo_document ).
READ TABLE lt_fills INTO ls_fill INDEX ls_cellxfs-fillid.
IF ls_fill IS NOT INITIAL.
&quot; fill properties
lo_element_fill = lo_document-&gt;create_simple_element( name = lc_xml_node_fill
parent = lo_document ).
&quot;pattern
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_patternfill
parent = lo_document ).
lv_value = ls_fill-filltype.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_patterntype
value = lv_value ).
&quot; fgcolor
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element_2
is_color = ls_fill-fgcolor
iv_color_elem_name = lc_xml_node_fgcolor ).
&quot; bgcolor
create_xl_styles_color_node(
io_document = lo_document
io_parent = lo_sub_element_2
is_color = ls_fill-bgcolor
iv_color_elem_name = lc_xml_node_bgcolor ).
lo_element_fill-&gt;append_child( new_child = lo_sub_element_2 ). &quot;pattern
lo_sub_element-&gt;append_child( new_child = lo_element_fill ).
ENDIF.
ENDIF.
lo_element-&gt;append_child( new_child = lo_sub_element ).
WHEN OTHERS.
CONTINUE.
ENDCASE.
ENDWHILE.
ENDWHILE.
lv_value = lv_dfx_count.
CONDENSE lv_value.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_count
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; tableStyles node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_tablestyles
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_count
value = &apos;0&apos; ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_defaulttablestyle
value = zcl_excel_table=&gt;builtinstyle_medium9 ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_defaultpivotstyle
value = zcl_excel_table=&gt;builtinstyle_pivot_light16 ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot;write legacy color palette in case any indexed color was changed
IF excel-&gt;legacy_palette-&gt;is_modified( ) = abap_true.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_colors
parent = lo_document ).
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_indexedcolors
parent = lo_document ).
lo_element-&gt;append_child( new_child = lo_sub_element ).
lt_colors = excel-&gt;legacy_palette-&gt;get_colors( ).
LOOP AT lt_colors INTO ls_color.
lo_sub_element_2 = lo_document-&gt;create_simple_element( name = lc_xml_node_rgbcolor
parent = lo_document ).
lv_value = ls_color.
lo_sub_element_2-&gt;set_attribute_ns( name = lc_xml_attr_rgb
value = lv_value ).
lo_sub_element-&gt;append_child( new_child = lo_sub_element_2 ).
ENDLOOP.
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_STYLES_COLOR_NODE" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/styles.xml&apos; color node" EXPOSURE="1" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_STYLES_COLOR_NODE" SCONAME="IO_DOCUMENT" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_STYLES_COLOR_NODE" SCONAME="IO_PARENT" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_ELEMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_ELEMENT"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_STYLES_COLOR_NODE" SCONAME="IV_COLOR_ELEM_NAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PARVALUE="&apos;color&apos;"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_STYLES_COLOR_NODE" SCONAME="IS_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_STYLE_COLOR"/>
<source>method CREATE_XL_STYLES_COLOR_NODE.
DATA: lo_sub_element TYPE REF TO if_ixml_element,
lv_value TYPE string.
CONSTANTS: lc_xml_attr_theme TYPE string VALUE &apos;theme&apos;,
lc_xml_attr_rgb TYPE string VALUE &apos;rgb&apos;,
lc_xml_attr_indexed TYPE string VALUE &apos;indexed&apos;,
lc_xml_attr_tint TYPE string VALUE &apos;tint&apos;.
&quot;add node only if at least one attribute is set
CHECK is_color-rgb IS NOT INITIAL OR
is_color-indexed &lt;&gt; zcl_excel_style_color=&gt;c_indexed_not_set OR
is_color-theme &lt;&gt; zcl_excel_style_color=&gt;c_theme_not_set OR
is_color-tint IS NOT INITIAL.
lo_sub_element = io_document-&gt;create_simple_element(
name = iv_color_elem_name
parent = io_parent ).
IF is_color-rgb IS NOT INITIAL.
lv_value = is_color-rgb.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_rgb
value = lv_value ).
ENDIF.
IF is_color-indexed &lt;&gt; zcl_excel_style_color=&gt;c_indexed_not_set.
lv_value = zcl_excel_common=&gt;number_to_excel_string( is_color-indexed ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_indexed
value = lv_value ).
ENDIF.
IF is_color-theme &lt;&gt; zcl_excel_style_color=&gt;c_theme_not_set.
lv_value = zcl_excel_common=&gt;number_to_excel_string( is_color-theme ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_theme
value = lv_value ).
ENDIF.
IF is_color-tint IS NOT INITIAL.
lv_value = zcl_excel_common=&gt;number_to_excel_string( is_color-tint ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_tint
value = lv_value ).
ENDIF.
io_parent-&gt;append_child( new_child = lo_sub_element ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/tables/____.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_TABLE" SCONAME="IO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_TABLE"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_TABLE" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_TABLE.
DATA: lc_xml_node_table TYPE string VALUE &apos;table&apos;,
lc_xml_node_relationship TYPE string VALUE &apos;Relationship&apos;,
&quot; Node attributes
lc_xml_attr_id TYPE string VALUE &apos;id&apos;,
lc_xml_attr_name TYPE string VALUE &apos;name&apos;,
lc_xml_attr_display_name TYPE string VALUE &apos;displayName&apos;,
lc_xml_attr_ref TYPE string VALUE &apos;ref&apos;,
lc_xml_attr_totals TYPE string VALUE &apos;totalsRowShown&apos;,
&quot; Node namespace
lc_xml_node_table_ns TYPE string VALUE &apos;http://schemas.openxmlformats.org/spreadsheetml/2006/main&apos;,
&quot; Node id
lc_xml_node_ridx_id TYPE string VALUE &apos;rId#&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_element2 TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lv_table_name TYPE string,
lv_id TYPE i,
lv_match TYPE i,
lv_syindex TYPE char3,
lv_ref TYPE string,
lv_value TYPE string,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lv_num_columns TYPE i,
ls_fieldcat TYPE zexcel_s_fieldcatalog.
**********************************************************************
* STEP 1: Create xml
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node table
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_table
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_table_ns ).
lv_id = io_table-&gt;get_id( ).
lv_value = zcl_excel_common=&gt;number_to_excel_string( ip_value = lv_id ).
lo_element_root-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_value ).
FIND ALL OCCURRENCES OF REGEX &apos;[^_a-zA-Z0-9]&apos; IN io_table-&gt;settings-table_name IGNORING CASE MATCH COUNT lv_match.
IF io_table-&gt;settings-table_name IS NOT INITIAL AND lv_match EQ 0.
lv_table_name = io_table-&gt;settings-table_name.
ELSE.
lv_table_name = io_table-&gt;get_name( ).
ENDIF.
lo_element_root-&gt;set_attribute_ns( name = lc_xml_attr_name
value = lv_table_name ).
lo_element_root-&gt;set_attribute_ns( name = lc_xml_attr_display_name
value = lv_table_name ).
lv_ref = io_table-&gt;get_reference( ).
lo_element_root-&gt;set_attribute_ns( name = lc_xml_attr_ref
value = lv_ref ).
IF io_table-&gt;has_totals( ) = abap_true.
lo_element_root-&gt;set_attribute_ns( name = &apos;totalsRowCount&apos;
value = &apos;1&apos; ).
ELSE.
lo_element_root-&gt;set_attribute_ns( name = lc_xml_attr_totals
value = &apos;0&apos; ).
ENDIF.
**********************************************************************
* STEP 4: Create subnodes
&quot; autoFilter
lo_element = lo_document-&gt;create_simple_element( name = &apos;autoFilter&apos;
parent = lo_document ).
lv_ref = io_table-&gt;get_reference( ip_include_totals_row = abap_false ).
lo_element-&gt;set_attribute_ns( name = &apos;ref&apos;
value = lv_ref ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot;columns
lo_element = lo_document-&gt;create_simple_element( name = &apos;tableColumns&apos;
parent = lo_document ).
* lo_columns = io_table-&gt;get_columns( ).
LOOP AT io_table-&gt;fieldcat INTO ls_fieldcat WHERE dynpfld = abap_true.
ADD 1 TO lv_num_columns.
ENDLOOP.
lv_value = lv_num_columns.
CONDENSE lv_value.
lo_element-&gt;set_attribute_ns( name = &apos;count&apos;
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
LOOP AT io_table-&gt;fieldcat INTO ls_fieldcat WHERE dynpfld = abap_true.
lo_element2 = lo_document-&gt;create_simple_element_ns( name = &apos;tableColumn&apos;
parent = lo_element ).
lv_value = ls_fieldcat-position.
SHIFT lv_value LEFT DELETING LEADING &apos;0&apos;.
lo_element2-&gt;set_attribute_ns( name = &apos;id&apos;
value = lv_value ).
lv_value = ls_fieldcat-scrtext_l.
lo_element2-&gt;set_attribute_ns( name = &apos;name&apos;
value = lv_value ).
IF ls_fieldcat-totals_function IS NOT INITIAL.
lo_element2-&gt;set_attribute_ns( name = &apos;totalsRowFunction&apos;
value = ls_fieldcat-totals_function ).
ENDIF.
lo_element-&gt;append_child( new_child = lo_element2 ).
ENDLOOP.
lo_element = lo_document-&gt;create_simple_element( name = &apos;tableStyleInfo&apos;
parent = lo_element_root ).
lo_element-&gt;set_attribute_ns( name = &apos;name&apos;
value = io_table-&gt;settings-table_style ).
lo_element-&gt;set_attribute_ns( name = &apos;showFirstColumn&apos;
value = &apos;0&apos; ).
lo_element-&gt;set_attribute_ns( name = &apos;showLastColumn&apos;
value = &apos;0&apos; ).
IF io_table-&gt;settings-show_row_stripes = abap_true.
lv_value = &apos;1&apos;.
ELSE.
lv_value = &apos;0&apos;.
ENDIF.
lo_element-&gt;set_attribute_ns( name = &apos;showRowStripes&apos;
value = lv_value ).
IF io_table-&gt;settings-show_column_stripes = abap_true.
lv_value = &apos;1&apos;.
ELSE.
lv_value = &apos;0&apos;.
ENDIF.
lo_element-&gt;set_attribute_ns( name = &apos;showColumnStripes&apos;
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_THEME" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/theme/theme1.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_THEME" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_THEME.
* @TODO *
DATA: lv_xl_theme TYPE string,
lv_xl_theme_01 TYPE string,
lv_xl_theme_02 TYPE string,
lv_xl_theme_03 TYPE string,
lv_xl_theme_04 TYPE string,
lv_xl_theme_05 TYPE string,
lv_xl_theme_06 TYPE string,
lv_xl_theme_07 TYPE string,
lv_xl_theme_08 TYPE string,
lv_xl_theme_09 TYPE string,
lv_xl_theme_10 TYPE string,
lv_xl_theme_11 TYPE string,
lv_xl_theme_12 TYPE string,
lv_xl_theme_13 TYPE string,
lv_xl_theme_14 TYPE string,
lv_xl_theme_15 TYPE string,
lv_xl_theme_16 TYPE string,
lv_xl_theme_17 TYPE string,
lv_xl_theme_18 TYPE string,
lv_xl_theme_19 TYPE string,
lv_xl_theme_20 TYPE string,
lv_xl_theme_21 TYPE string,
lv_xl_theme_22 TYPE string,
lv_xl_theme_23 TYPE string,
lv_xl_theme_24 TYPE string,
lv_xl_theme_25 TYPE string,
lv_xl_theme_26 TYPE string,
lv_xl_theme_27 TYPE string,
lv_xl_theme_28 TYPE string,
lv_xl_theme_29 TYPE string,
lv_xl_theme_30 TYPE string,
lv_xl_theme_31 TYPE string,
lv_xl_theme_32 TYPE string.
lv_xl_theme_01 = &apos;&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;yes&quot;?&gt;&apos;.
lv_xl_theme_02 = &apos;&lt;a:theme xmlns:a=&quot;http://schemas.openxmlformats.org/drawingml/2006/main&quot; name=&quot;Office Theme&quot;&gt;&lt;a:themeElements&gt;&lt;a:clrScheme name=&quot;Office&quot;&gt;&lt;a:dk1&gt;&lt;a:sysClr val=&quot;windowText&quot; lastClr=&quot;000000&quot;/&gt;&lt;/a:dk1&gt;&lt;a:lt1&gt;&lt;a:sysClr val=&quot;window&quot; &apos;.
lv_xl_theme_03 = &apos;lastClr=&quot;FFFFFF&quot;/&gt;&lt;/a:lt1&gt;&lt;a:dk2&gt;&lt;a:srgbClr val=&quot;1F497D&quot;/&gt;&lt;/a:dk2&gt;&lt;a:lt2&gt;&lt;a:srgbClr val=&quot;EEECE1&quot;/&gt;&lt;/a:lt2&gt;&lt;a:accent1&gt;&lt;a:srgbClr val=&quot;4F81BD&quot;/&gt;&lt;/a:accent1&gt;&lt;a:accent2&gt;&lt;a:srgbClr val=&quot;C0504D&quot;/&gt;&lt;/a:accent2&gt;&lt;a:accent3&gt;&lt;a:srgbClr &apos;.
lv_xl_theme_04 = &apos;val=&quot;9BBB59&quot;/&gt;&lt;/a:accent3&gt;&lt;a:accent4&gt;&lt;a:srgbClr val=&quot;8064A2&quot;/&gt;&lt;/a:accent4&gt;&lt;a:accent5&gt;&lt;a:srgbClr val=&quot;4BACC6&quot;/&gt;&lt;/a:accent5&gt;&lt;a:accent6&gt;&lt;a:srgbClr val=&quot;F79646&quot;/&gt;&lt;/a:accent6&gt;&lt;a:hlink&gt;&lt;a:srgbClr val=&quot;0000FF&quot;/&gt;&lt;/a:hlink&gt;&lt;a:folHlink&gt;&apos;.
lv_xl_theme_05 = &apos;&lt;a:srgbClr val=&quot;800080&quot;/&gt;&lt;/a:folHlink&gt;&lt;/a:clrScheme&gt;&lt;a:fontScheme name=&quot;Office&quot;&gt;&lt;a:majorFont&gt;&lt;a:latin typeface=&quot;Cambria&quot;/&gt;&lt;a:ea typeface=&quot;&quot;/&gt;&lt;a:cs typeface=&quot;&quot;/&gt;&apos;.
lv_xl_theme_06 = &apos;&lt;a:font script=&quot;Arab&quot; typeface=&quot;Times New Roman&quot;/&gt;&lt;a:font script=&quot;Hebr&quot; typeface=&quot;Times New Roman&quot;/&gt;&lt;a:font script=&quot;Thai&quot; &apos;.
lv_xl_theme_07 = &apos;typeface=&quot;Tahoma&quot;/&gt;&lt;a:font script=&quot;Ethi&quot; typeface=&quot;Nyala&quot;/&gt;&lt;a:font script=&quot;Beng&quot; typeface=&quot;Vrinda&quot;/&gt;&lt;a:font script=&quot;Gujr&quot; typeface=&quot;Shruti&quot;/&gt;&lt;a:font script=&quot;Khmr&quot; typeface=&quot;MoolBoran&quot;/&gt;&lt;a:font script=&quot;Knda&quot; typeface=&quot;Tunga&quot;/&gt;&lt;a:font &apos;.
lv_xl_theme_08 = &apos;script=&quot;Guru&quot; typeface=&quot;Raavi&quot;/&gt;&lt;a:font script=&quot;Cans&quot; typeface=&quot;Euphemia&quot;/&gt;&lt;a:font script=&quot;Cher&quot; typeface=&quot;Plantagenet Cherokee&quot;/&gt;&lt;a:font script=&quot;Yiii&quot; typeface=&quot;Microsoft Yi Baiti&quot;/&gt;&lt;a:font script=&quot;Tibt&quot; &apos;.
lv_xl_theme_09 = &apos;typeface=&quot;Microsoft Himalaya&quot;/&gt;&lt;a:font script=&quot;Thaa&quot; typeface=&quot;MV Boli&quot;/&gt;&lt;a:font script=&quot;Deva&quot; typeface=&quot;Mangal&quot;/&gt;&lt;a:font script=&quot;Telu&quot; typeface=&quot;Gautami&quot;/&gt;&lt;a:font script=&quot;Taml&quot; typeface=&quot;Latha&quot;/&gt;&lt;a:font script=&quot;Syrc&quot; &apos;.
lv_xl_theme_10 = &apos;typeface=&quot;Estrangelo Edessa&quot;/&gt;&lt;a:font script=&quot;Orya&quot; typeface=&quot;Kalinga&quot;/&gt;&lt;a:font script=&quot;Mlym&quot; typeface=&quot;Kartika&quot;/&gt;&lt;a:font script=&quot;Laoo&quot; typeface=&quot;DokChampa&quot;/&gt;&lt;a:font script=&quot;Sinh&quot; typeface=&quot;Iskoola Pota&quot;/&gt;&lt;a:font script=&quot;Mong&quot; &apos;.
lv_xl_theme_11 = &apos;typeface=&quot;Mongolian Baiti&quot;/&gt;&lt;a:font script=&quot;Viet&quot; typeface=&quot;Times New Roman&quot;/&gt;&lt;a:font script=&quot;Uigh&quot; typeface=&quot;Microsoft Uighur&quot;/&gt;&lt;/a:majorFont&gt;&lt;a:minorFont&gt;&lt;a:latin typeface=&quot;Calibri&quot;/&gt;&lt;a:ea typeface=&quot;&quot;/&gt;&lt;a:cs typeface=&quot;&quot;/&gt;&apos;.
lv_xl_theme_12 = &apos;&lt;a:font script=&quot;Arab&quot; typeface=&quot;Arial&quot;/&gt;&lt;a:font script=&quot;Hebr&quot; &apos;.
lv_xl_theme_13 = &apos;typeface=&quot;Arial&quot;/&gt;&lt;a:font script=&quot;Thai&quot; typeface=&quot;Tahoma&quot;/&gt;&lt;a:font script=&quot;Ethi&quot; typeface=&quot;Nyala&quot;/&gt;&lt;a:font script=&quot;Beng&quot; typeface=&quot;Vrinda&quot;/&gt;&lt;a:font script=&quot;Gujr&quot; typeface=&quot;Shruti&quot;/&gt;&lt;a:font script=&quot;Khmr&quot; typeface=&quot;DaunPenh&quot;/&gt;&lt;a:font &apos;.
lv_xl_theme_14 = &apos;script=&quot;Knda&quot; typeface=&quot;Tunga&quot;/&gt;&lt;a:font script=&quot;Guru&quot; typeface=&quot;Raavi&quot;/&gt;&lt;a:font script=&quot;Cans&quot; typeface=&quot;Euphemia&quot;/&gt;&lt;a:font script=&quot;Cher&quot; typeface=&quot;Plantagenet Cherokee&quot;/&gt;&lt;a:font script=&quot;Yiii&quot; typeface=&quot;Microsoft Yi Baiti&quot;/&gt;&lt;a:font &apos;.
lv_xl_theme_15 = &apos;script=&quot;Tibt&quot; typeface=&quot;Microsoft Himalaya&quot;/&gt;&lt;a:font script=&quot;Thaa&quot; typeface=&quot;MV Boli&quot;/&gt;&lt;a:font script=&quot;Deva&quot; typeface=&quot;Mangal&quot;/&gt;&lt;a:font script=&quot;Telu&quot; typeface=&quot;Gautami&quot;/&gt;&lt;a:font script=&quot;Taml&quot; typeface=&quot;Latha&quot;/&gt;&lt;a:font script=&quot;Syrc&quot; &apos;.
lv_xl_theme_16 = &apos;typeface=&quot;Estrangelo Edessa&quot;/&gt;&lt;a:font script=&quot;Orya&quot; typeface=&quot;Kalinga&quot;/&gt;&lt;a:font script=&quot;Mlym&quot; typeface=&quot;Kartika&quot;/&gt;&lt;a:font script=&quot;Laoo&quot; typeface=&quot;DokChampa&quot;/&gt;&lt;a:font script=&quot;Sinh&quot; typeface=&quot;Iskoola Pota&quot;/&gt;&lt;a:font script=&quot;Mong&quot; &apos;.
lv_xl_theme_17 = &apos;typeface=&quot;Mongolian Baiti&quot;/&gt;&lt;a:font script=&quot;Viet&quot; typeface=&quot;Arial&quot;/&gt;&lt;a:font script=&quot;Uigh&quot; typeface=&quot;Microsoft Uighur&quot;/&gt;&lt;/a:minorFont&gt;&lt;/a:fontScheme&gt;&lt;a:fmtScheme name=&quot;Office&quot;&gt;&lt;a:fillStyleLst&gt;&lt;a:solidFill&gt;&lt;a:schemeClr val=&quot;phClr&quot;/&gt;&apos;.
lv_xl_theme_18 = &apos;&lt;/a:solidFill&gt;&lt;a:gradFill rotWithShape=&quot;1&quot;&gt;&lt;a:gsLst&gt;&lt;a:gs pos=&quot;0&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:tint val=&quot;50000&quot;/&gt;&lt;a:satMod val=&quot;300000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;a:gs pos=&quot;35000&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:tint val=&quot;37000&quot;/&gt;&lt;a:satMod &apos;.
lv_xl_theme_19 = &apos;val=&quot;300000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;a:gs pos=&quot;100000&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:tint val=&quot;15000&quot;/&gt;&lt;a:satMod val=&quot;350000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;/a:gsLst&gt;&lt;a:lin ang=&quot;16200000&quot; scaled=&quot;1&quot;/&gt;&lt;/a:gradFill&gt;&lt;a:gradFill rotWithShape=&quot;1&quot;&gt;&apos;.
lv_xl_theme_20 = &apos;&lt;a:gsLst&gt;&lt;a:gs pos=&quot;0&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:shade val=&quot;51000&quot;/&gt;&lt;a:satMod val=&quot;130000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;a:gs pos=&quot;80000&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:shade val=&quot;93000&quot;/&gt;&lt;a:satMod val=&quot;130000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;a:gs &apos;.
lv_xl_theme_21 = &apos;pos=&quot;100000&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:shade val=&quot;94000&quot;/&gt;&lt;a:satMod val=&quot;135000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;/a:gsLst&gt;&lt;a:lin ang=&quot;16200000&quot; scaled=&quot;0&quot;/&gt;&lt;/a:gradFill&gt;&lt;/a:fillStyleLst&gt;&lt;a:lnStyleLst&gt;&lt;a:ln w=&quot;9525&quot; cap=&quot;flat&quot; cmpd=&quot;sng&quot; &apos;.
lv_xl_theme_22 = &apos;algn=&quot;ctr&quot;&gt;&lt;a:solidFill&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:shade val=&quot;95000&quot;/&gt;&lt;a:satMod val=&quot;105000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:solidFill&gt;&lt;a:prstDash val=&quot;solid&quot;/&gt;&lt;/a:ln&gt;&lt;a:ln w=&quot;25400&quot; cap=&quot;flat&quot; cmpd=&quot;sng&quot; algn=&quot;ctr&quot;&gt;&lt;a:solidFill&gt;&lt;a:schemeClr &apos;.
lv_xl_theme_23 = &apos;val=&quot;phClr&quot;/&gt;&lt;/a:solidFill&gt;&lt;a:prstDash val=&quot;solid&quot;/&gt;&lt;/a:ln&gt;&lt;a:ln w=&quot;38100&quot; cap=&quot;flat&quot; cmpd=&quot;sng&quot; algn=&quot;ctr&quot;&gt;&lt;a:solidFill&gt;&lt;a:schemeClr val=&quot;phClr&quot;/&gt;&lt;/a:solidFill&gt;&lt;a:prstDash val=&quot;solid&quot;/&gt;&lt;/a:ln&gt;&lt;/a:lnStyleLst&gt;&lt;a:effectStyleLst&gt;&apos;.
lv_xl_theme_24 = &apos;&lt;a:effectStyle&gt;&lt;a:effectLst&gt;&lt;a:outerShdw blurRad=&quot;40000&quot; dist=&quot;20000&quot; dir=&quot;5400000&quot; rotWithShape=&quot;0&quot;&gt;&lt;a:srgbClr val=&quot;000000&quot;&gt;&lt;a:alpha val=&quot;38000&quot;/&gt;&lt;/a:srgbClr&gt;&lt;/a:outerShdw&gt;&lt;/a:effectLst&gt;&lt;/a:effectStyle&gt;&lt;a:effectStyle&gt;&lt;a:effectLst&gt;&apos;.
lv_xl_theme_25 = &apos;&lt;a:outerShdw blurRad=&quot;40000&quot; dist=&quot;23000&quot; dir=&quot;5400000&quot; rotWithShape=&quot;0&quot;&gt;&lt;a:srgbClr val=&quot;000000&quot;&gt;&lt;a:alpha val=&quot;35000&quot;/&gt;&lt;/a:srgbClr&gt;&lt;/a:outerShdw&gt;&lt;/a:effectLst&gt;&lt;/a:effectStyle&gt;&lt;a:effectStyle&gt;&lt;a:effectLst&gt;&lt;a:outerShdw blurRad=&quot;40000&quot; &apos;.
lv_xl_theme_26 = &apos;dist=&quot;23000&quot; dir=&quot;5400000&quot; rotWithShape=&quot;0&quot;&gt;&lt;a:srgbClr val=&quot;000000&quot;&gt;&lt;a:alpha val=&quot;35000&quot;/&gt;&lt;/a:srgbClr&gt;&lt;/a:outerShdw&gt;&lt;/a:effectLst&gt;&lt;a:scene3d&gt;&lt;a:camera prst=&quot;orthographicFront&quot;&gt;&lt;a:rot lat=&quot;0&quot; lon=&quot;0&quot; rev=&quot;0&quot;/&gt;&lt;/a:camera&gt;&lt;a:lightRig &apos;.
lv_xl_theme_27 = &apos;rig=&quot;threePt&quot; dir=&quot;t&quot;&gt;&lt;a:rot lat=&quot;0&quot; lon=&quot;0&quot; rev=&quot;1200000&quot;/&gt;&lt;/a:lightRig&gt;&lt;/a:scene3d&gt;&lt;a:sp3d&gt;&lt;a:bevelT w=&quot;63500&quot; h=&quot;25400&quot;/&gt;&lt;/a:sp3d&gt;&lt;/a:effectStyle&gt;&lt;/a:effectStyleLst&gt;&lt;a:bgFillStyleLst&gt;&lt;a:solidFill&gt;&lt;a:schemeClr val=&quot;phClr&quot;/&gt;&apos;.
lv_xl_theme_28 = &apos;&lt;/a:solidFill&gt;&lt;a:gradFill rotWithShape=&quot;1&quot;&gt;&lt;a:gsLst&gt;&lt;a:gs pos=&quot;0&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:tint val=&quot;40000&quot;/&gt;&lt;a:satMod val=&quot;350000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;a:gs pos=&quot;40000&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:tint val=&quot;45000&quot;/&gt;&lt;a:shade &apos;.
lv_xl_theme_29 = &apos;val=&quot;99000&quot;/&gt;&lt;a:satMod val=&quot;350000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;a:gs pos=&quot;100000&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:shade val=&quot;20000&quot;/&gt;&lt;a:satMod val=&quot;255000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;/a:gsLst&gt;&lt;a:path path=&quot;circle&quot;&gt;&lt;a:fillToRect l=&quot;50000&quot; &apos;.
lv_xl_theme_30 = &apos;t=&quot;-80000&quot; r=&quot;50000&quot; b=&quot;180000&quot;/&gt;&lt;/a:path&gt;&lt;/a:gradFill&gt;&lt;a:gradFill rotWithShape=&quot;1&quot;&gt;&lt;a:gsLst&gt;&lt;a:gs pos=&quot;0&quot;&gt;&lt;a:schemeClr val=&quot;phClr&quot;&gt;&lt;a:tint val=&quot;80000&quot;/&gt;&lt;a:satMod val=&quot;300000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;a:gs pos=&quot;100000&quot;&gt;&lt;a:schemeClr &apos;.
lv_xl_theme_31 = &apos;val=&quot;phClr&quot;&gt;&lt;a:shade val=&quot;30000&quot;/&gt;&lt;a:satMod val=&quot;200000&quot;/&gt;&lt;/a:schemeClr&gt;&lt;/a:gs&gt;&lt;/a:gsLst&gt;&lt;a:path path=&quot;circle&quot;&gt;&lt;a:fillToRect l=&quot;50000&quot; t=&quot;50000&quot; r=&quot;50000&quot; b=&quot;50000&quot;/&gt;&lt;/a:path&gt;&lt;/a:gradFill&gt;&lt;/a:bgFillStyleLst&gt;&lt;/a:fmtScheme&gt;&apos;.
lv_xl_theme_32 = &apos;&lt;/a:themeElements&gt;&lt;a:objectDefaults/&gt;&lt;a:extraClrSchemeLst/&gt;&lt;/a:theme&gt;&apos;.
CONCATENATE lv_xl_theme_01 lv_xl_theme_02 lv_xl_theme_03 lv_xl_theme_04 lv_xl_theme_05 lv_xl_theme_06 lv_xl_theme_07 lv_xl_theme_08 lv_xl_theme_09 lv_xl_theme_10 lv_xl_theme_11 lv_xl_theme_12 lv_xl_theme_13 lv_xl_theme_14 lv_xl_theme_15
lv_xl_theme_16 lv_xl_theme_17 lv_xl_theme_18 lv_xl_theme_19 lv_xl_theme_20 lv_xl_theme_21 lv_xl_theme_22 lv_xl_theme_23 lv_xl_theme_24 lv_xl_theme_25 lv_xl_theme_26 lv_xl_theme_27 lv_xl_theme_28 lv_xl_theme_29 lv_xl_theme_30
lv_xl_theme_31 lv_xl_theme_32
INTO lv_xl_theme SEPARATED BY space.
CALL FUNCTION &apos;SCMS_STRING_TO_XSTRING&apos;
EXPORTING
text = lv_xl_theme
IMPORTING
buffer = ep_content.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_WORKBOOK" VERSION="1" LANGU="E" DESCRIPT="Create &apos;xl/workbook.xml&apos;" EXPOSURE="1" STATE="1" EDITORDER="18 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_WORKBOOK" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_WORKBOOK.
*--------------------------------------------------------------------*
* 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
*--------------------------------------------------------------------*
* issue#235 - repeat rows/columns
* - Stefan Schmöcker, 2012-12-01
* changes: correction of pointer to localSheetId
*--------------------------------------------------------------------*
** Constant node name
DATA: lc_xml_node_workbook TYPE string VALUE &apos;workbook&apos;,
lc_xml_node_fileversion TYPE string VALUE &apos;fileVersion&apos;,
lc_xml_node_workbookpr TYPE string VALUE &apos;workbookPr&apos;,
lc_xml_node_bookviews TYPE string VALUE &apos;bookViews&apos;,
lc_xml_node_workbookview TYPE string VALUE &apos;workbookView&apos;,
lc_xml_node_sheets TYPE string VALUE &apos;sheets&apos;,
lc_xml_node_sheet TYPE string VALUE &apos;sheet&apos;,
lc_xml_node_calcpr TYPE string VALUE &apos;calcPr&apos;,
lc_xml_node_workbookprotection TYPE string VALUE &apos;workbookProtection&apos;,
lc_xml_node_definednames TYPE string VALUE &apos;definedNames&apos;,
lc_xml_node_definedname TYPE string VALUE &apos;definedName&apos;,
&quot; Node attributes
lc_xml_attr_appname TYPE string VALUE &apos;appName&apos;,
lc_xml_attr_lastedited TYPE string VALUE &apos;lastEdited&apos;,
lc_xml_attr_lowestedited TYPE string VALUE &apos;lowestEdited&apos;,
lc_xml_attr_rupbuild TYPE string VALUE &apos;rupBuild&apos;,
lc_xml_attr_themeversion TYPE string VALUE &apos;defaultThemeVersion&apos;,
lc_xml_attr_xwindow TYPE string VALUE &apos;xWindow&apos;,
lc_xml_attr_ywindow TYPE string VALUE &apos;yWindow&apos;,
lc_xml_attr_windowwidth TYPE string VALUE &apos;windowWidth&apos;,
lc_xml_attr_windowheight TYPE string VALUE &apos;windowHeight&apos;,
lc_xml_attr_activetab TYPE string VALUE &apos;activeTab&apos;,
lc_xml_attr_name TYPE string VALUE &apos;name&apos;,
lc_xml_attr_sheetid TYPE string VALUE &apos;sheetId&apos;,
lc_xml_attr_state TYPE string VALUE &apos;state&apos;,
lc_xml_attr_id TYPE string VALUE &apos;id&apos;,
lc_xml_attr_calcid TYPE string VALUE &apos;calcId&apos;,
lc_xml_attr_lockrevision TYPE string VALUE &apos;lockRevision&apos;,
lc_xml_attr_lockstructure TYPE string VALUE &apos;lockStructure&apos;,
lc_xml_attr_lockwindows TYPE string VALUE &apos;lockWindows&apos;,
lc_xml_attr_revisionspassword TYPE string VALUE &apos;revisionsPassword&apos;,
lc_xml_attr_workbookpassword TYPE string VALUE &apos;workbookPassword&apos;,
lc_xml_attr_hidden TYPE string VALUE &apos;hidden&apos;,
lc_xml_attr_localsheetid TYPE string VALUE &apos;localSheetId&apos;,
&quot; Node namespace
lc_r_ns TYPE string VALUE &apos;r&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;,
&quot; Node id
lc_xml_node_ridx_id TYPE string VALUE &apos;rId#&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_element_root TYPE REF TO if_ixml_element,
lo_element TYPE REF TO if_ixml_element,
lo_element_range TYPE REF TO if_ixml_element,
lo_sub_element TYPE REF TO if_ixml_element,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_iterator_range TYPE REF TO cl_object_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_autofilters TYPE REF TO zcl_excel_autofilters,
lo_autofilter TYPE REF TO zcl_excel_autofilter.
DATA: lv_xml_node_ridx_id TYPE string,
lv_value TYPE string,
lv_syindex TYPE string,
l_guid TYPE uuid,
lv_active_sheet TYPE zexcel_active_worksheet.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
**********************************************************************
* STEP 2: Set document attributes
lo_encoding = lo_ixml-&gt;create_encoding( byte_order = if_ixml_encoding=&gt;co_platform_endian
character_set = &apos;utf-8&apos; ).
lo_document = lo_ixml-&gt;create_document( ).
lo_document-&gt;set_encoding( lo_encoding ).
lo_document-&gt;set_standalone( abap_true ).
**********************************************************************
* STEP 3: Create main node
lo_element_root = lo_document-&gt;create_simple_element( name = lc_xml_node_workbook
parent = lo_document ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns&apos;
value = lc_xml_node_ns ).
lo_element_root-&gt;set_attribute_ns( name = &apos;xmlns:r&apos;
value = lc_xml_node_r_ns ).
**********************************************************************
* STEP 4: Create subnode
&quot; fileVersion node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_fileversion
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_appname
value = &apos;xl&apos; ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_lastedited
value = &apos;4&apos; ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_lowestedited
value = &apos;4&apos; ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_rupbuild
value = &apos;4506&apos; ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; fileVersion node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_workbookpr
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_themeversion
value = &apos;124226&apos; ).
lo_element_root-&gt;append_child( new_child = lo_element ).
&quot; workbookProtection node
IF me-&gt;excel-&gt;zif_excel_book_protection~protected EQ abap_true.
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_workbookprotection
parent = lo_document ).
MOVE me-&gt;excel-&gt;zif_excel_book_protection~workbookpassword TO lv_value.
IF lv_value IS NOT INITIAL.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_workbookpassword
value = lv_value ).
ENDIF.
MOVE me-&gt;excel-&gt;zif_excel_book_protection~revisionspassword TO lv_value.
IF lv_value IS NOT INITIAL.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_revisionspassword
value = lv_value ).
ENDIF.
MOVE me-&gt;excel-&gt;zif_excel_book_protection~lockrevision TO lv_value.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_lockrevision
value = lv_value ).
MOVE me-&gt;excel-&gt;zif_excel_book_protection~lockstructure TO lv_value.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_lockstructure
value = lv_value ).
MOVE me-&gt;excel-&gt;zif_excel_book_protection~lockwindows TO lv_value.
CONDENSE lv_value NO-GAPS.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_lockwindows
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ).
ENDIF.
&quot; bookviews node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_bookviews
parent = lo_document ).
&quot; bookview node
lo_sub_element = lo_document-&gt;create_simple_element( name = lc_xml_node_workbookview
parent = lo_document ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_xwindow
value = &apos;120&apos; ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_ywindow
value = &apos;120&apos; ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_windowwidth
value = &apos;19035&apos; ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_windowheight
value = &apos;8445&apos; ).
&quot; Set Active Sheet
lv_active_sheet = excel-&gt;get_active_sheet_index( ).
IF lv_active_sheet &gt; 1.
lv_active_sheet = lv_active_sheet - 1.
lv_value = lv_active_sheet.
CONDENSE lv_value.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_activetab
value = lv_value ).
ENDIF.
lo_element-&gt;append_child( new_child = lo_sub_element ).&quot; bookview node
lo_element_root-&gt;append_child( new_child = lo_element ).&quot; bookviews node
&quot; sheets node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_sheets
parent = lo_document ).
lo_iterator = excel-&gt;get_worksheets_iterator( ).
&quot; ranges node
lo_element_range = lo_document-&gt;create_simple_element( name = lc_xml_node_definednames &quot; issue 163 +
parent = lo_document ). &quot; issue 163 +
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
&quot; sheet node
lo_sub_element = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_sheet
parent = lo_document ).
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_syindex = sy-index. &quot; question by Stefan Schmöcker 2012-12-02: sy-index seems to do the job - but is it proven to work or purely coincedence
lv_value = lo_worksheet-&gt;get_title( ).
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
lv_xml_node_ridx_id = lc_xml_node_ridx_id.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xml_node_ridx_id WITH lv_syindex.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_name
value = lv_value ).
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_sheetid
value = lv_syindex ).
IF lo_worksheet-&gt;zif_excel_sheet_properties~hidden EQ zif_excel_sheet_properties=&gt;c_hidden.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_state
value = &apos;hidden&apos; ).
ELSEIF lo_worksheet-&gt;zif_excel_sheet_properties~hidden EQ zif_excel_sheet_properties=&gt;c_veryhidden.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_state
value = &apos;veryHidden&apos; ).
ENDIF.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_id
prefix = lc_r_ns
value = lv_xml_node_ridx_id ).
lo_element-&gt;append_child( new_child = lo_sub_element ). &quot; sheet node
&quot; issue 163 &gt;&gt;&gt;
lo_iterator_range = lo_worksheet-&gt;get_ranges_iterator( ).
*--------------------------------------------------------------------*
* Defined names sheetlocal: Ranges, Repeat rows and columns
*--------------------------------------------------------------------*
WHILE lo_iterator_range-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
&quot; range node
lo_sub_element = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_definedname
parent = lo_document ).
lo_range ?= lo_iterator_range-&gt;if_object_collection_iterator~get_next( ).
lv_value = lo_range-&gt;name.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_name
value = lv_value ).
* lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_localsheetid &quot;del #235 Repeat rows/cols - EXCEL starts couting from zero
* value = lv_xml_node_ridx_id ). &quot;del #235 Repeat rows/cols - and needs absolute referencing to localSheetId
lv_value = lv_syindex - 1. &quot;ins #235 Repeat rows/cols
CONDENSE lv_value NO-GAPS. &quot;ins #235 Repeat rows/cols
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_localsheetid
value = lv_value ).
lv_value = lo_range-&gt;get_value( ).
lo_sub_element-&gt;set_value( value = lv_value ).
lo_element_range-&gt;append_child( new_child = lo_sub_element ). &quot; range node
ENDWHILE.
&quot; issue 163 &lt;&lt;&lt;
ENDWHILE.
lo_element_root-&gt;append_child( new_child = lo_element ).&quot; sheets node
*--------------------------------------------------------------------*
* Defined names workbookgolbal: Ranges
*--------------------------------------------------------------------*
* &quot; ranges node
* lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_definednames &quot; issue 163 -
* parent = lo_document ). &quot; issue 163 -
lo_iterator = excel-&gt;get_ranges_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
&quot; range node
lo_sub_element = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_definedname
parent = lo_document ).
lo_range ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_value = lo_range-&gt;name.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_name
value = lv_value ).
lv_value = lo_range-&gt;get_value( ).
lo_sub_element-&gt;set_value( value = lv_value ).
lo_element_range-&gt;append_child( new_child = lo_sub_element ). &quot; range node
ENDWHILE.
*--------------------------------------------------------------------*
* Defined names - Autofilters ( also sheetlocal )
*--------------------------------------------------------------------*
lo_autofilters = excel-&gt;get_autofilters_reference( ).
IF lo_autofilters-&gt;is_empty( ) = abap_false.
lo_iterator = excel-&gt;get_worksheets_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_syindex = sy-index - 1 .
l_guid = lo_worksheet-&gt;get_guid( ).
lo_autofilter = lo_autofilters-&gt;get( i_sheet_guid = l_guid ) .
IF lo_autofilter IS BOUND.
lo_sub_element = lo_document-&gt;create_simple_element_ns( name = lc_xml_node_definedname
parent = lo_document ).
lv_value = lo_autofilters-&gt;c_autofilter.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_name
value = lv_value ).
lv_value = lv_syindex.
CONDENSE lv_value NO-GAPS.
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_localsheetid
value = lv_value ).
lv_value = &apos;1&apos;. &quot; Always hidden
lo_sub_element-&gt;set_attribute_ns( name = lc_xml_attr_hidden
value = lv_value ).
lv_value = lo_autofilter-&gt;get_filter_reference( ).
lo_sub_element-&gt;set_value( value = lv_value ).
lo_element_range-&gt;append_child( new_child = lo_sub_element ). &quot; range node
ENDIF.
ENDWHILE.
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element_range ). &quot; ranges node
&quot; calcPr node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_calcpr
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_calcid
value = &apos;125725&apos; ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="FLAG2BOOL" VERSION="1" LANGU="E" DESCRIPT="Convert a FLAG to BOOLEAN value" EXPOSURE="0" STATE="1" EDITORDER="19 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="FLAG2BOOL" SCONAME="IP_FLAG" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG"/>
<parameter CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="FLAG2BOOL" SCONAME="EP_BOOLEAN" VERSION="1" LANGU="E" DESCRIPT="Boolean value" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="CHAR5"/>
<source>method FLAG2BOOL.
IF ip_flag EQ abap_true.
ep_boolean = &apos;true&apos;.
ELSE.
ep_boolean = &apos;false&apos;.
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">
<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.
DATA ls_shared_string TYPE zexcel_s_shared_string.
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>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_WRITER_CSV" VERSION="1" LANGU="E" DESCRIPT="Excel writer 2007" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_WRITER_CSV" REFCLSNAME="ZIF_EXCEL_WRITER" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<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>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="DELIMITER" VERSION="1" LANGU="E" DESCRIPT="Delimiter" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="1" ATTVALUE="&apos;;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="ENCLOSURE" VERSION="1" LANGU="E" DESCRIPT="Text inclusure character" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="1" ATTVALUE="&apos;&quot;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="EOL" VERSION="1" LANGU="E" DESCRIPT="End Of line" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="1" ATTVALUE="CL_ABAP_CHAR_UTILITIES=&gt;CR_LF" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR01" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" EXPOSURE="0" STATE="1" EDITORDER="1 " 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_CSV" CMPNAME="WORKSHEET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="WORKSHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<interfaceMethod CLSNAME="ZCL_EXCEL_WRITER_CSV" CPDNAME="ZIF_EXCEL_WRITER~WRITE_FILE">
<source>method ZIF_EXCEL_WRITER~WRITE_FILE.
me-&gt;excel = io_excel.
ep_file = me-&gt;create( ).
endmethod.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE" VERSION="1" LANGU="E" DESCRIPT="Create" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE" SCONAME="EP_EXCEL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE.
* .csv format with ; delimiter
ep_excel = me-&gt;CREATE_CSV( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE_CSV" VERSION="1" LANGU="E" DESCRIPT="Create CSV ; Delimited format" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="CREATE_CSV" SCONAME="EP_CONTENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_CSV.
TYPES: BEGIN OF lty_format,
cmpname TYPE SEOCMPNAME,
attvalue TYPE SEOVALUE,
END OF lty_format.
DATA: lt_format TYPE STANDARD TABLE OF lty_format,
ls_format LIKE LINE OF lt_format,
lv_date TYPE DATS,
lv_tmp TYPE string,
lv_time TYPE CHAR08.
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted,
lv_row TYPE sytabix,
lv_col TYPE sytabix,
lv_string TYPE string,
lc_value TYPE string,
lv_attrname TYPE SEOCMPNAME.
DATA: ls_numfmt TYPE zexcel_s_style_numfmt,
lo_style TYPE REF TO zcl_excel_style.
FIELD-SYMBOLS: &lt;fs_sheet_content&gt; TYPE zexcel_s_cell_data.
* --- Retrieve supported cell format
REFRESH lt_format.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_format
FROM seocompodf
WHERE clsname = &apos;ZCL_EXCEL_STYLE_NUMBER_FORMAT&apos;
AND typtype = 1
AND type = &apos;ZEXCEL_NUMBER_FORMAT&apos;.
* --- Retrieve SAP date format
CLEAR ls_format.
SELECT ddtext INTO ls_format-attvalue FROM dd07t WHERE domname = &apos;XUDATFM&apos;
AND ddlanguage = sy-langu.
ls_format-cmpname = &apos;DATE&apos;.
CONDENSE ls_format-attvalue.
CONCATENATE &apos;&apos;&apos;&apos; ls_format-attvalue &apos;&apos;&apos;&apos; INTO ls_format-attvalue.
APPEND ls_format TO lt_format.
ENDSELECT.
LOOP AT lt_format INTO ls_format.
TRANSLATE ls_format-attvalue TO UPPER CASE.
MODIFY lt_format FROM ls_format.
ENDLOOP.
* STEP 1: Collect strings from the first worksheet
lo_iterator = excel-&gt;get_worksheets_iterator( ).
data: current_worksheet_title type ZEXCEL_SHEET_TITLE.
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
IF worksheet_name IS NOT INITIAL.
current_worksheet_title = lo_worksheet-&gt;get_title( ).
CHECK current_worksheet_title = worksheet_name.
ELSE.
IF worksheet_index IS INITIAL.
worksheet_index = 1.
ENDIF.
CHECK worksheet_index = sy-index.
ENDIF.
APPEND LINES OF lo_worksheet-&gt;sheet_content TO lt_cell_data.
EXIT. &quot; Take first worksheet only
ENDWHILE.
DELETE lt_cell_data WHERE cell_formula IS NOT INITIAL. &quot; delete formula content
SORT lt_cell_data BY cell_row
cell_column.
lv_row = 1.
lv_col = 1.
CLEAR lv_string.
LOOP AT lt_cell_data ASSIGNING &lt;fs_sheet_content&gt;.
* --- Retrieve Cell Style format and data type
CLEAR ls_numfmt.
IF &lt;fs_sheet_content&gt;-data_type IS INITIAL AND &lt;fs_sheet_content&gt;-cell_style IS NOT INITIAL.
lo_iterator = excel-&gt;get_styles_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_style ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
CHECK lo_style-&gt;get_guid( ) = &lt;fs_sheet_content&gt;-cell_style.
ls_numfmt = lo_style-&gt;number_format-&gt;get_structure( ).
EXIT.
ENDWHILE.
ENDIF.
IF &lt;fs_sheet_content&gt;-data_type IS INITIAL AND ls_numfmt IS NOT INITIAL.
&quot; determine data-type
CLEAR lv_attrname.
CONCATENATE &apos;&apos;&apos;&apos; ls_numfmt-NUMFMT &apos;&apos;&apos;&apos; INTO ls_numfmt-NUMFMT.
TRANSLATE ls_numfmt-numfmt TO UPPER CASE.
READ TABLE lt_format INTO ls_format WITH KEY attvalue = ls_numfmt-NUMFMT.
IF sy-subrc = 0.
lv_attrname = ls_format-cmpname.
ENDIF.
IF lv_attrname IS NOT INITIAL.
FIND FIRST OCCURRENCE OF &apos;DATETIME&apos; IN lv_attrname.
IF sy-subrc = 0.
&lt;fs_sheet_content&gt;-data_type = &apos;d&apos;.
ELSE.
FIND FIRST OCCURRENCE OF &apos;TIME&apos; IN lv_attrname.
IF sy-subrc = 0.
&lt;fs_sheet_content&gt;-data_type = &apos;t&apos;.
ELSE.
FIND FIRST OCCURRENCE OF &apos;DATE&apos; IN lv_attrname.
IF sy-subrc = 0.
&lt;fs_sheet_content&gt;-data_type = &apos;d&apos;.
ELSE.
FIND FIRST OCCURRENCE OF &apos;CURRENCY&apos; IN lv_attrname.
IF sy-subrc = 0.
&lt;fs_sheet_content&gt;-data_type = &apos;n&apos;.
ELSE.
FIND FIRST OCCURRENCE OF &apos;NUMBER&apos; IN lv_attrname.
IF sy-subrc = 0.
&lt;fs_sheet_content&gt;-data_type = &apos;n&apos;.
ELSE.
FIND FIRST OCCURRENCE OF &apos;PERCENTAGE&apos; IN lv_attrname.
IF sy-subrc = 0.
&lt;fs_sheet_content&gt;-data_type = &apos;n&apos;.
ENDIF. &quot; Purcentage
ENDIF. &quot; Number
ENDIF. &quot; Currency
ENDIF. &quot; Date
ENDIF. &quot; TIME
ENDIF. &quot; DATETIME
ENDIF. &quot; lv_attrname IS NOT INITIAL.
ENDIF. &quot; &lt;fs_sheet_content&gt;-data_type IS INITIAL AND ls_numfmt IS NOT INITIAL.
* --- Add empty rows
WHILE lv_row &lt; &lt;fs_sheet_content&gt;-cell_row.
* CONCATENATE lv_string cl_abap_char_utilities=&gt;newline INTO lv_string.
* CONCATENATE lv_string cl_abap_char_utilities=&gt;cr_lf INTO lv_string.
CONCATENATE lv_string zcl_excel_writer_csv=&gt;eol INTO lv_string.
lv_row = lv_row + 1.
lv_col = 1.
ENDWHILE.
* --- Add empty columns
WHILE lv_col &lt; &lt;fs_sheet_content&gt;-cell_column.
* CONCATENATE lv_string &apos;;&apos; INTO lv_string.
CONCATENATE lv_string zcl_excel_writer_csv=&gt;delimiter INTO lv_string.
lv_col = lv_col + 1.
ENDWHILE.
* ----- Use format to determine the data type and display format.
CASE &lt;fs_sheet_content&gt;-data_type.
* WHEN &apos;n&apos; OR &apos;N&apos;.
* lc_value = zcl_excel_common=&gt;excel_number_to_string( ip_value = &lt;fs_sheet_content&gt;-cell_value ).
WHEN &apos;d&apos; OR &apos;D&apos;.
lc_value = zcl_excel_common=&gt;excel_string_to_date( ip_value = &lt;fs_sheet_content&gt;-cell_value ).
TRY.
lv_date = lc_value.
CALL FUNCTION &apos;CONVERT_DATE_TO_EXTERNAL&apos;
EXPORTING
DATE_INTERNAL = lv_date
IMPORTING
DATE_EXTERNAL = lv_tmp
EXCEPTIONS
DATE_INTERNAL_IS_INVALID = 1
OTHERS = 2
.
IF SY-SUBRC = 0.
lc_value = lv_tmp.
ENDIF.
CATCH CX_SY_CONVERSION_NO_NUMBER.
ENDTRY.
WHEN &apos;t&apos; OR &apos;T&apos;.
lc_value = zcl_excel_common=&gt;excel_string_to_time( ip_value = &lt;fs_sheet_content&gt;-cell_value ).
write lc_value to lv_time USING EDIT MASK &apos;__:__:__&apos;.
lc_value = lv_time.
WHEN OTHERS.
lc_value = &lt;fs_sheet_content&gt;-cell_value.
ENDCASE.
* REPLACE ALL OCCURRENCES OF &apos;&quot;&apos; in lc_value with &apos;&quot;&quot;&apos;.
CONCATENATE zcl_excel_writer_csv=&gt;enclosure zcl_excel_writer_csv=&gt;enclosure INTO lv_tmp.
CONDENSE lv_tmp.
REPLACE ALL OCCURRENCES OF zcl_excel_writer_csv=&gt;enclosure in lc_value with lv_tmp.
* FIND FIRST OCCURRENCE OF &apos;;&apos; IN lc_value.
FIND FIRST OCCURRENCE OF zcl_excel_writer_csv=&gt;delimiter IN lc_value.
IF sy-subrc = 0.
CONCATENATE lv_string zcl_excel_writer_csv=&gt;enclosure lc_value zcl_excel_writer_csv=&gt;enclosure INTO lv_string.
ELSE.
CONCATENATE lv_string lc_value INTO lv_string.
ENDIF.
ENDLOOP. &quot; AT lt_cell_data
CLEAR ep_content.
CALL FUNCTION &apos;SCMS_STRING_TO_XSTRING&apos;
EXPORTING
TEXT = lv_string
* MIMETYPE = &apos; &apos;
* ENCODING =
IMPORTING
BUFFER = ep_content
EXCEPTIONS
FAILED = 1
OTHERS = 2
.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ACTIVE_SHEET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Activate worksheet by index before the CSV file creation" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ACTIVE_SHEET_INDEX" SCONAME="I_ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
<source>method SET_ACTIVE_SHEET_INDEX.
CLEAR WORKSHEET_NAME.
WORKSHEET_INDEX = i_active_worksheet.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ACTIVE_SHEET_INDEX_BY_NAME" VERSION="1" LANGU="E" DESCRIPT="Activate worksheet by name before the CSV file creation" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ACTIVE_SHEET_INDEX_BY_NAME" SCONAME="I_WORKSHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME"/>
<source>method SET_ACTIVE_SHEET_INDEX_BY_NAME.
CLEAR WORKSHEET_INDEX.
WORKSHEET_NAME = i_worksheet_name.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_DELIMITER" VERSION="1" LANGU="E" DESCRIPT="Set Delimiter value" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_DELIMITER" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Delimiter Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="CHAR01" PARVALUE="&apos;;&apos;"/>
<source>method SET_DELIMITER.
delimiter = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENCLOSURE" VERSION="1" LANGU="E" DESCRIPT="Set Enclosure character" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENCLOSURE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Text field enclosure character" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="CHAR01" PARVALUE="&apos;&quot;&apos;"/>
<source>method SET_ENCLOSURE.
zcl_excel_writer_csv=&gt;enclosure = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENDOFLINE" VERSION="1" LANGU="E" DESCRIPT="Set End Of Line character" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_WRITER_CSV" CMPNAME="SET_ENDOFLINE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="End Of Line Character" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="ANY" PARVALUE="CL_ABAP_CHAR_UTILITIES=&gt;CR_LF"/>
<source>method SET_ENDOFLINE.
zcl_excel_writer_csv=&gt;eol = ip_value.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_WRITER_XLSM" VERSION="1" LANGU="E" DESCRIPT="Excel with macro writer" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_WRITER_2007">
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCL_EXCEL_WRITER_XLSM" CMPNAME="C_XL_VBAPROJECT" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;xl/vbaProject.bin&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<inheritance CLSNAME="ZCL_EXCEL_WRITER_XLSM" REFCLSNAME="ZCL_EXCEL_WRITER_2007" VERSION="1" STATE="1">
<redefinition CLSNAME="ZCL_EXCEL_WRITER_XLSM" REFCLSNAME="ZCL_EXCEL_WRITER_2007" VERSION="1" MTDNAME="CREATE" EXPOSURE="1"/>
<redefinition CLSNAME="ZCL_EXCEL_WRITER_XLSM" REFCLSNAME="ZCL_EXCEL_WRITER_2007" VERSION="1" MTDNAME="CREATE_CONTENT_TYPES" EXPOSURE="1"/>
<redefinition CLSNAME="ZCL_EXCEL_WRITER_XLSM" REFCLSNAME="ZCL_EXCEL_WRITER_2007" VERSION="1" MTDNAME="CREATE_XL_RELATIONSHIPS" EXPOSURE="1"/>
<redefinition CLSNAME="ZCL_EXCEL_WRITER_XLSM" REFCLSNAME="ZCL_EXCEL_WRITER_2007" VERSION="1" MTDNAME="CREATE_XL_SHEET" EXPOSURE="1"/>
<redefinition CLSNAME="ZCL_EXCEL_WRITER_XLSM" REFCLSNAME="ZCL_EXCEL_WRITER_2007" VERSION="1" MTDNAME="CREATE_XL_WORKBOOK" EXPOSURE="1"/>
</inheritance>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CREATE.
* Office 2007 file format is a cab of several xml files with extension .xlsx
DATA: lo_zip TYPE REF TO cl_abap_zip,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_active_worksheet TYPE REF TO zcl_excel_worksheet,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_nested_iterator TYPE REF TO cl_object_collection_iterator,
lo_table TYPE REF TO zcl_excel_table,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_drawings TYPE REF TO zcl_excel_drawings.
DATA: lv_content TYPE xstring,
lv_active TYPE flag,
lv_xl_sheet TYPE string,
lv_xl_sheet_rels TYPE string,
lv_xl_drawing TYPE string,
lv_xl_drawing_rels TYPE string,
lv_syindex TYPE string,
lv_value TYPE string,
lv_drawing_index TYPE i.
**********************************************************************
* Start of insertion # issue 139 - Dateretention of cellstyles
me-&gt;excel-&gt;add_static_styles( ).
* End of insertion # issue 139 - Dateretention of cellstyles
**********************************************************************
* STEP 1: Create archive object file (ZIP)
CREATE OBJECT lo_zip.
**********************************************************************
* STEP 2: Add [Content_Types].xml to zip
lv_content = me-&gt;create_content_types( ).
lo_zip-&gt;add( name = me-&gt;c_content_types
content = lv_content ).
**********************************************************************
* STEP 3: Add _rels/.rels to zip
lv_content = me-&gt;create_relationships( ).
lo_zip-&gt;add( name = me-&gt;c_relationships
content = lv_content ).
**********************************************************************
* STEP 4: Add docProps/app.xml to zip
lv_content = me-&gt;create_docprops_app( ).
lo_zip-&gt;add( name = me-&gt;c_docprops_app
content = lv_content ).
**********************************************************************
* STEP 5: Add docProps/core.xml to zip
lv_content = me-&gt;create_docprops_core( ).
lo_zip-&gt;add( name = me-&gt;c_docprops_core
content = lv_content ).
**********************************************************************
* STEP 6: Add xl/_rels/workbook.xml.rels to zip
lv_content = me-&gt;create_xl_relationships( ).
lo_zip-&gt;add( name = me-&gt;c_xl_relationships
content = lv_content ).
**********************************************************************
* STEP 6: Add xl/_rels/workbook.xml.rels to zip
lv_content = me-&gt;create_xl_theme( ).
lo_zip-&gt;add( name = me-&gt;c_xl_theme
content = lv_content ).
**********************************************************************
* STEP 7: Add xl/workbook.xml to zip
lv_content = me-&gt;create_xl_workbook( ).
lo_zip-&gt;add( name = me-&gt;c_xl_workbook
content = lv_content ).
**********************************************************************
* STEP 8: Add xl/workbook.xml to zip
* lv_content = me-&gt;create_xl_styles_static( ).
lv_content = me-&gt;create_xl_styles( ).
lo_zip-&gt;add( name = me-&gt;c_xl_styles
content = lv_content ).
**********************************************************************
* STEP 9: Add sharedStrings.xml to zip
lv_content = me-&gt;create_xl_sharedstrings( ).
lo_zip-&gt;add( name = me-&gt;c_xl_sharedstrings
content = lv_content ).
**********************************************************************
* STEP 10: Add sheet#.xml and drawing#.xml to zip
lo_iterator = me-&gt;excel-&gt;get_worksheets_iterator( ).
lo_active_worksheet = me-&gt;excel-&gt;get_active_worksheet( ).
lv_drawing_index = 1.
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
IF lo_active_worksheet-&gt;get_guid( ) EQ lo_worksheet-&gt;get_guid( ).
lv_active = abap_true.
ELSE.
lv_active = abap_false.
ENDIF.
lv_content = me-&gt;create_xl_sheet( io_worksheet = lo_worksheet
iv_active = lv_active ).
lv_xl_sheet = me-&gt;c_xl_sheet.
MOVE sy-index TO lv_syindex.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xl_sheet WITH lv_syindex.
lo_zip-&gt;add( name = lv_xl_sheet
content = lv_content ).
lv_xl_sheet_rels = me-&gt;c_xl_sheet_rels.
lv_content = me-&gt;create_xl_sheet_rels( io_worksheet = lo_worksheet
iv_drawing_index = lv_drawing_index ).
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xl_sheet_rels WITH lv_syindex.
lo_zip-&gt;add( name = lv_xl_sheet_rels
content = lv_content ).
lo_nested_iterator = lo_worksheet-&gt;get_tables_iterator( ).
WHILE lo_nested_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_table ?= lo_nested_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_content = me-&gt;create_xl_table( lo_table ).
lv_value = lo_table-&gt;get_name( ).
CONCATENATE &apos;xl/tables/&apos; lv_value &apos;.xml&apos; INTO lv_value.
lo_zip-&gt;add( name = lv_value
content = lv_content ).
ENDWHILE.
* Add drawings **********************************
lo_drawings = lo_worksheet-&gt;get_drawings( ).
IF lo_drawings-&gt;is_empty( ) = abap_false.
MOVE lv_drawing_index TO lv_syindex.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
lv_content = me-&gt;create_xl_drawings( lo_worksheet ).
lv_xl_drawing = me-&gt;c_xl_drawings.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xl_drawing WITH lv_syindex.
lo_zip-&gt;add( name = lv_xl_drawing
content = lv_content ).
lv_content = me-&gt;create_xl_drawings_rels( lo_worksheet ).
lv_xl_drawing_rels = me-&gt;c_xl_drawings_rels.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xl_drawing_rels WITH lv_syindex.
lo_zip-&gt;add( name = lv_xl_drawing_rels
content = lv_content ).
ADD 1 TO lv_drawing_index.
ENDIF.
ENDWHILE.
**********************************************************************
* STEP 11: Add media
lo_iterator = me-&gt;excel-&gt;get_drawings_iterator( zcl_excel_drawing=&gt;type_image ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_drawing ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_content = lo_drawing-&gt;get_media( ).
lv_value = lo_drawing-&gt;get_media_name( ).
CONCATENATE &apos;xl/media/&apos; lv_value INTO lv_value.
lo_zip-&gt;add( name = lv_value
content = lv_content ).
ENDWHILE.
**********************************************************************
* STEP 12: Add charts
lo_iterator = me-&gt;excel-&gt;get_drawings_iterator( zcl_excel_drawing=&gt;type_chart ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_drawing ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_content = lo_drawing-&gt;get_media( ).
lv_value = lo_drawing-&gt;get_media_name( ).
CONCATENATE &apos;xl/charts/&apos; lv_value INTO lv_value.
lo_zip-&gt;add( name = lv_value
content = lv_content ).
ENDWHILE.
**********************************************************************
* STEP 9: Add vbaProject.bin to zip
lo_zip-&gt;add( name = me-&gt;c_xl_vbaproject
content = me-&gt;excel-&gt;zif_excel_book_vba_project~vbaproject ).
**********************************************************************
* STEP 12: Create the final zip
ep_excel = lo_zip-&gt;save( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_CONTENT_TYPES" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CREATE_CONTENT_TYPES.
** Constant node name
DATA: lc_xml_node_workb_ct TYPE string VALUE &apos;application/vnd.ms-excel.sheet.macroEnabled.main+xml&apos;,
lc_xml_node_default TYPE string VALUE &apos;Default&apos;,
&quot; Node attributes
lc_xml_attr_partname TYPE string VALUE &apos;PartName&apos;,
lc_xml_attr_extension TYPE string VALUE &apos;Extension&apos;,
lc_xml_attr_contenttype TYPE string VALUE &apos;ContentType&apos;,
lc_xml_attr_codename TYPE string VALUE &apos;codeName&apos;,
lc_xml_node_workb_pn TYPE string VALUE &apos;/xl/workbook.xml&apos;,
lc_xml_node_bin_ext TYPE string VALUE &apos;bin&apos;,
lc_xml_node_bin_ct TYPE string VALUE &apos;application/vnd.ms-office.vbaProject&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_document_xml TYPE REF TO cl_xml_document,
lo_element_root TYPE REF TO if_ixml_node,
lo_element TYPE REF TO if_ixml_element,
lo_collection TYPE REF TO if_ixml_node_collection,
lo_iterator TYPE REF TO if_ixml_node_iterator,
lo_node TYPE REF TO if_ixml_node,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer.
DATA: lv_subrc TYPE sysubrc,
lv_contenttype TYPE string,
lv_syindex(2) TYPE c.
**********************************************************************
* STEP 3: Create standard contentType
ep_content = super-&gt;create_content_types( ).
**********************************************************************
* STEP 2: modify XML adding the extension bin definition
CREATE OBJECT lo_document_xml.
lv_subrc = lo_document_xml-&gt;parse_xstring( ep_content ).
lo_document ?= lo_document_xml-&gt;m_document.
lo_element_root = lo_document-&gt;if_ixml_node~get_first_child( ).
&quot; extension node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_default
parent = lo_document ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_extension
value = lc_xml_node_bin_ext ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_bin_ct ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 3: modify XML changing the contentType of node Override /xl/workbook.xml
lo_collection = lo_document-&gt;get_elements_by_tag_name( &apos;Override&apos; ).
lo_iterator = lo_collection-&gt;create_iterator( ).
lo_element ?= lo_iterator-&gt;get_next( ).
WHILE lo_element IS BOUND.
lv_contenttype = lo_element-&gt;get_attribute_ns( lc_xml_attr_partname ).
IF lv_contenttype EQ lc_xml_node_workb_pn.
lo_element-&gt;remove_attribute_ns( lc_xml_attr_contenttype ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_contenttype
value = lc_xml_node_workb_ct ).
EXIT.
ENDIF.
lo_element ?= lo_iterator-&gt;get_next( ).
ENDWHILE.
**********************************************************************
* STEP 3: Create xstring stream
CLEAR ep_content.
lo_ixml = cl_ixml=&gt;create( ).
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_RELATIONSHIPS" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CREATE_XL_RELATIONSHIPS.
** Constant node name
DATA: lc_xml_node_relationships TYPE string VALUE &apos;Relationships&apos;,
lc_xml_node_relationship TYPE string VALUE &apos;Relationship&apos;,
&quot; Node attributes
lc_xml_attr_id TYPE string VALUE &apos;Id&apos;,
lc_xml_attr_type TYPE string VALUE &apos;Type&apos;,
lc_xml_attr_target TYPE string VALUE &apos;Target&apos;,
&quot; Node id
lc_xml_node_ridx_id TYPE string VALUE &apos;rId#&apos;,
&quot; Node type
lc_xml_node_rid_vba_tp TYPE string VALUE &apos;http://schemas.microsoft.com/office/2006/relationships/vbaProject&apos;,
&quot; Node target
lc_xml_node_rid_vba_tg TYPE string VALUE &apos;vbaProject.bin&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_document_xml TYPE REF TO cl_xml_document,
lo_element_root TYPE REF TO if_ixml_node,
lo_element TYPE REF TO if_ixml_element,
lo_node TYPE REF TO if_ixml_node,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer.
DATA: lv_xml_node_ridx_tg TYPE string,
lv_xml_node_ridx_id TYPE string,
lv_size TYPE i,
lv_subrc TYPE sysubrc,
lv_syindex(2) TYPE c.
**********************************************************************
* STEP 3: Create standard relationship
ep_content = super-&gt;create_xl_relationships( ).
**********************************************************************
* STEP 2: modify XML adding the vbaProject relation
CREATE OBJECT lo_document_xml.
lv_subrc = lo_document_xml-&gt;parse_xstring( ep_content ).
lo_document ?= lo_document_xml-&gt;m_document.
lo_element_root = lo_document-&gt;if_ixml_node~get_first_child( ).
lv_size = excel-&gt;get_worksheets_size( ).
&quot; Relationship node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_relationship
parent = lo_document ).
ADD 4 TO lv_size.
lv_syindex = lv_size.
SHIFT lv_syindex RIGHT DELETING TRAILING space.
SHIFT lv_syindex LEFT DELETING LEADING space.
lv_xml_node_ridx_id = lc_xml_node_ridx_id.
REPLACE ALL OCCURRENCES OF &apos;#&apos; IN lv_xml_node_ridx_id WITH lv_syindex.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_id
value = lv_xml_node_ridx_id ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_vba_tp ).
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_target
value = lc_xml_node_rid_vba_tg ).
lo_element_root-&gt;append_child( new_child = lo_element ).
**********************************************************************
* STEP 3: Create xstring stream
CLEAR ep_content.
lo_ixml = cl_ixml=&gt;create( ).
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_SHEET" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CREATE_XL_SHEET.
** Constant node name
DATA: lc_xml_attr_codename TYPE string VALUE &apos;codeName&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_document_xml TYPE REF TO cl_xml_document,
lo_element_root TYPE REF TO if_ixml_node,
lo_element TYPE REF TO if_ixml_element,
lo_collection TYPE REF TO if_ixml_node_collection,
lo_iterator TYPE REF TO if_ixml_node_iterator,
lo_node TYPE REF TO if_ixml_node,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer.
DATA: lv_subrc TYPE sysubrc,
lv_syindex(2) TYPE c.
**********************************************************************
* STEP 3: Create standard relationship
ep_content = super-&gt;create_xl_sheet( io_worksheet = io_worksheet
iv_active = iv_active ).
**********************************************************************
* STEP 2: modify XML adding the vbaProject relation
CREATE OBJECT lo_document_xml.
lv_subrc = lo_document_xml-&gt;parse_xstring( ep_content ).
lo_document ?= lo_document_xml-&gt;m_document.
lo_element_root = lo_document-&gt;if_ixml_node~get_first_child( ).
* lo_collection = lo_document-&gt;get_elements_by_tag_name( &apos;fileVersion&apos; ).
* lo_iterator = lo_collection-&gt;create_iterator( ).
* lo_element ?= lo_iterator-&gt;get_next( ).
* WHILE lo_element IS BOUND.
* lo_element-&gt;set_attribute_ns( name = lc_xml_attr_codename
* value = me-&gt;excel-&gt;zif_excel_book_vba_project~codename ).
* lo_element ?= lo_iterator-&gt;get_next( ).
* ENDWHILE.
lo_collection = lo_document-&gt;get_elements_by_tag_name( &apos;sheetPr&apos; ).
lo_iterator = lo_collection-&gt;create_iterator( ).
lo_element ?= lo_iterator-&gt;get_next( ).
WHILE lo_element IS BOUND.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_codename
value = io_worksheet-&gt;zif_excel_sheet_vba_project~codename_pr ).
lo_element ?= lo_iterator-&gt;get_next( ).
ENDWHILE.
**********************************************************************
* STEP 3: Create xstring stream
CLEAR ep_content.
lo_ixml = cl_ixml=&gt;create( ).
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_WRITER_2007" CMPNAME="CREATE_XL_WORKBOOK" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CREATE_XL_WORKBOOK.
** Constant node name
DATA: lc_xml_attr_codename TYPE string VALUE &apos;codeName&apos;.
DATA: lo_ixml TYPE REF TO if_ixml,
lo_document TYPE REF TO if_ixml_document,
lo_document_xml TYPE REF TO cl_xml_document,
lo_element_root TYPE REF TO if_ixml_node,
lo_element TYPE REF TO if_ixml_element,
lo_collection TYPE REF TO if_ixml_node_collection,
lo_iterator TYPE REF TO if_ixml_node_iterator,
lo_node TYPE REF TO if_ixml_node,
lo_encoding TYPE REF TO if_ixml_encoding,
lo_streamfactory TYPE REF TO if_ixml_stream_factory,
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer.
DATA: lv_subrc TYPE sysubrc,
lv_syindex(2) TYPE c.
**********************************************************************
* STEP 3: Create standard relationship
ep_content = super-&gt;create_xl_workbook( ).
**********************************************************************
* STEP 2: modify XML adding the vbaProject relation
CREATE OBJECT lo_document_xml.
lv_subrc = lo_document_xml-&gt;parse_xstring( ep_content ).
lo_document ?= lo_document_xml-&gt;m_document.
lo_element_root = lo_document-&gt;if_ixml_node~get_first_child( ).
lo_collection = lo_document-&gt;get_elements_by_tag_name( &apos;fileVersion&apos; ).
lo_iterator = lo_collection-&gt;create_iterator( ).
lo_element ?= lo_iterator-&gt;get_next( ).
WHILE lo_element IS BOUND.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_codename
value = me-&gt;excel-&gt;zif_excel_book_vba_project~codename ).
lo_element ?= lo_iterator-&gt;get_next( ).
ENDWHILE.
lo_collection = lo_document-&gt;get_elements_by_tag_name( &apos;workbookPr&apos; ).
lo_iterator = lo_collection-&gt;create_iterator( ).
lo_element ?= lo_iterator-&gt;get_next( ).
WHILE lo_element IS BOUND.
lo_element-&gt;set_attribute_ns( name = lc_xml_attr_codename
value = me-&gt;excel-&gt;zif_excel_book_vba_project~codename_pr ).
lo_element ?= lo_iterator-&gt;get_next( ).
ENDWHILE.
**********************************************************************
* STEP 3: Create xstring stream
CLEAR ep_content.
lo_ixml = cl_ixml=&gt;create( ).
lo_streamfactory = lo_ixml-&gt;create_stream_factory( ).
lo_ostream = lo_streamfactory-&gt;create_ostream_xstring( string = ep_content ).
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" CATEGORY="40" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="CX_STATIC_CHECK">
<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>
<attribute CLSNAME="ZCX_EXCEL" CMPNAME="ERROR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCX_EXCEL" CMPNAME="SYST_AT_RAISE" VERSION="1" LANGU="E" DESCRIPT="ABAP System Fields" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SYST" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCX_EXCEL" CMPNAME="ZCX_EXCEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SOTR_CONC" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " LOCKED="X" TYPESRC_LENG="0 ">
<sotr PAKET="$TMP" CREA_LAN="E" TRALA_TYPE="1" LST_IMPORT="00000000" TRALA_VEC="00000000000000000000" CATGY_VEC="00000000000000000000" OBJID_VEC="08000000000000000000">
<sotrText LANGU="E" LFD_NUM="0001" FLAG_CNTXT="X" STATUS="R" VERSION="0002" LENGTH="255" TEXT="&amp;ERROR&amp;"/>
</sotr>
</attribute>
<inheritance CLSNAME="ZCX_EXCEL" REFCLSNAME="CX_STATIC_CHECK" VERSION="1" STATE="1">
<redefinition CLSNAME="ZCX_EXCEL" REFCLSNAME="CX_STATIC_CHECK" VERSION="1" MTDNAME="IF_MESSAGE~GET_LONGTEXT" EXPOSURE="0"/>
<redefinition CLSNAME="ZCX_EXCEL" REFCLSNAME="CX_STATIC_CHECK" VERSION="1" MTDNAME="IF_MESSAGE~GET_TEXT" EXPOSURE="0"/>
</inheritance>
<interfaceMethod CLSNAME="ZCX_EXCEL" CPDNAME="IF_MESSAGE~GET_LONGTEXT">
<source>method IF_MESSAGE~GET_LONGTEXT.
IF me-&gt;error IS NOT INITIAL
OR me-&gt;syst_at_raise IS NOT INITIAL.
*--------------------------------------------------------------------*
* If message was supplied explicitly use this as longtext as well
*--------------------------------------------------------------------*
result = me-&gt;get_text( ).
ELSE.
*--------------------------------------------------------------------*
* otherwise use standard method to derive text
*--------------------------------------------------------------------*
super-&gt;if_message~get_longtext( EXPORTING
preserve_newlines = preserve_newlines
RECEIVING
result = result ).
ENDIF.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCX_EXCEL" CPDNAME="IF_MESSAGE~GET_TEXT">
<source>method IF_MESSAGE~GET_TEXT.
IF me-&gt;error IS NOT INITIAL.
*--------------------------------------------------------------------*
* If message was supplied explicitly use this
*--------------------------------------------------------------------*
result = me-&gt;error .
ELSEIF me-&gt;syst_at_raise IS NOT INITIAL.
*--------------------------------------------------------------------*
* If message was supplied by syst create messagetext now
*--------------------------------------------------------------------*
MESSAGE ID syst_at_raise-msgid TYPE syst_at_raise-msgty NUMBER syst_at_raise-msgno
WITH syst_at_raise-msgv1 syst_at_raise-msgv2 syst_at_raise-msgv3 syst_at_raise-msgv4
INTO result.
ELSE.
*--------------------------------------------------------------------*
* otherwise use standard method to derive text
*--------------------------------------------------------------------*
CALL METHOD super-&gt;if_message~get_text
RECEIVING
result = result.
ENDIF.
endmethod.</source>
</interfaceMethod>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_RANGES" VERSION="1" LANGU="E" DESCRIPT="Ranges collection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="RANGES" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="ADD" SCONAME="IP_RANGE" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGE"/>
<source>method ADD.
ranges-&gt;add( ip_range ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="CLEAR" VERSION="1" LANGU="E" DESCRIPT="Initializes the Collection" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAR.
ranges-&gt;clear( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
CREATE OBJECT ranges.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="GET" VERSION="1" LANGU="E" DESCRIPT="Gets Element" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="GET" SCONAME="IP_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="GET" SCONAME="EO_RANGE" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGE"/>
<source>method GET.
eo_range ?= ranges-&gt;if_object_collection~get( ip_index ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="GET_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Returns an iterator" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="GET_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_ITERATOR.
eo_iterator ?= ranges-&gt;if_object_collection~get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="Checks whether elements are contained" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="IS_EMPTY" SCONAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>method IS_EMPTY.
is_empty = ranges-&gt;if_object_collection~is_empty( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="REMOVE" VERSION="1" LANGU="E" DESCRIPT="Deletes an Element from the Collection" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="REMOVE" SCONAME="IP_RANGE" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGE"/>
<source>method REMOVE.
ranges-&gt;remove( ip_range ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Specifies number of contained elements" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGES" CMPNAME="SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method SIZE.
ep_size = ranges-&gt;if_object_collection~size( ).
endmethod.</source>
</method>
</CLAS>
<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">
<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,
datatype type zexcel_cell_data_type,
value type zexcel_cell_value,
formula type zexcel_cell_formula,
style type zexcel_cell_style,
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,
row type zexcel_cell_row,
column type zexcel_cell_column_alpha,
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.
include type t_cell_coord as coord.
include type t_cell_content as content.
types: end of t_cell
"/>
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations
* Signal &quot;not found&quot;
class lcx_not_found implementation.
method constructor.
super-&gt;constructor( textid = textid previous = previous ).
me-&gt;error = error.
endmethod.
method if_message~get_text.
result = error.
endmethod.
endclass.</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section
* Signal for &quot;Not found&quot;
class lcx_not_found definition inheriting from cx_static_check.
public section.
data error type string.
methods constructor
importing error type string
textid type sotr_conc optional
previous type ref to cx_root optional.
methods if_message~get_text redefinition.
endclass.</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<localTestClasses>*&quot;* use this source file for your ABAP unit test classes
CLASS lcl_test DEFINITION DEFERRED.
CLASS zcl_excel_reader_huge_file DEFINITION LOCAL FRIENDS lcl_test.
*
CLASS lcl_test DEFINITION FOR TESTING &quot; #AU Risk_Level Harmless
INHERITING FROM cl_aunit_assert. &quot; #AU Duration Short
PRIVATE SECTION.
DATA:
out TYPE REF TO zcl_excel_reader_huge_file, &quot; object under test
excel TYPE REF TO zcl_excel,
worksheet TYPE REF TO zcl_excel_worksheet.
METHODS:
setup,
test_number FOR TESTING,
test_shared_string FOR TESTING,
test_shared_string_missing FOR TESTING,
test_inline_string FOR TESTING,
test_boolean FOR TESTING,
test_style FOR TESTING,
test_style_missing FOR TESTING,
test_formula FOR TESTING,
test_read_shared_strings 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,
assert_value_equals IMPORTING iv_row TYPE i DEFAULT 1 iv_col TYPE i DEFAULT 1 iv_value TYPE string,
assert_formula_equals IMPORTING iv_row TYPE i DEFAULT 1 iv_col TYPE i DEFAULT 1 iv_formula TYPE string,
assert_style_equals IMPORTING iv_row TYPE i DEFAULT 1 iv_col TYPE i DEFAULT 1 iv_style TYPE zexcel_cell_style,
assert_datatype_equals IMPORTING iv_row TYPE i DEFAULT 1 iv_col TYPE i DEFAULT 1 iv_datatype TYPE string.
ENDCLASS. &quot;lcl_test DEFINITION
*
CLASS lcl_test IMPLEMENTATION.
*
METHOD test_number.
DATA lo_reader TYPE REF TO if_sxml_reader.
lo_reader = get_reader(
`&lt;c r=&quot;A1&quot; t=&quot;n&quot;&gt;&lt;v&gt;17&lt;/v&gt;&lt;/c&gt;`
).
out-&gt;read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
assert_value_equals( `17` ).
assert_datatype_equals( `n` ).
ENDMETHOD. &quot;test_shared_string
*
METHOD test_shared_string.
DATA lo_reader TYPE REF TO if_sxml_reader.
APPEND `Test` TO out-&gt;shared_strings.
lo_reader = get_reader(
`&lt;c r=&quot;A1&quot; t=&quot;s&quot;&gt;&lt;v&gt;0&lt;/v&gt;&lt;/c&gt;`
).
out-&gt;read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
assert_value_equals( `Test` ).
assert_datatype_equals( `s` ).
ENDMETHOD. &quot;test_shared_string
*
METHOD test_shared_string_missing.
DATA: lo_reader TYPE REF TO if_sxml_reader,
lo_ex TYPE REF TO lcx_not_found,
lv_text TYPE string.
lo_reader = get_reader(
`&lt;c r=&quot;A1&quot; t=&quot;s&quot;&gt;&lt;v&gt;0&lt;/v&gt;&lt;/c&gt;`
).
TRY.
out-&gt;read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
fail(`Index to non-existent shared string should give an error`).
CATCH lcx_not_found INTO lo_ex.
lv_text = lo_ex-&gt;get_text( ). &quot; &gt;&gt;&gt; May inspect the message in the debugger
ENDTRY.
ENDMETHOD.
*
METHOD test_inline_string.
DATA lo_reader TYPE REF TO if_sxml_reader.
lo_reader = get_reader(
`&lt;c r=&quot;A1&quot; t=&quot;inlineStr&quot;&gt;&lt;is&gt;&lt;t&gt;Alpha&lt;/t&gt;&lt;/is&gt;&lt;/c&gt;`
).
out-&gt;read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
assert_value_equals( `Alpha` ).
assert_datatype_equals( `inlineStr` ).
ENDMETHOD. &quot;test_inline_string
*
METHOD test_boolean.
DATA lo_reader TYPE REF TO if_sxml_reader.
lo_reader = get_reader(
`&lt;c r=&quot;A1&quot; t=&quot;b&quot;&gt;&lt;v&gt;1&lt;/v&gt;&lt;/c&gt;`
).
out-&gt;read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
assert_value_equals( `1` ).
assert_datatype_equals( `b` ).
ENDMETHOD. &quot;test_boolean
*
METHOD test_formula.
DATA lo_reader TYPE REF TO if_sxml_reader.
lo_reader = get_reader(
`&lt;c r=&quot;A1&quot; t=&quot;n&quot;&gt;&lt;f&gt;A2*A2&lt;/f&gt;&lt;/c&gt;`
).
out-&gt;read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
assert_formula_equals( `A2*A2` ).
assert_datatype_equals( `n` ).
ENDMETHOD. &quot;test_formula
*
METHOD test_style.
DATA:
lo_reader TYPE REF TO if_sxml_reader,
lo_style TYPE REF TO zcl_excel_style,
lv_guid TYPE zexcel_cell_style.
CREATE OBJECT lo_style.
APPEND lo_style TO out-&gt;styles.
lv_guid = lo_style-&gt;get_guid( ).
lo_reader = get_reader(
`&lt;c r=&quot;A1&quot; s=&quot;0&quot;&gt;&lt;v&gt;18&lt;/v&gt;&lt;/c&gt;`
).
out-&gt;read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
assert_style_equals( lv_guid ).
ENDMETHOD. &quot;test_style
*
METHOD test_style_missing.
DATA:
lo_reader TYPE REF TO if_sxml_reader,
lo_ex TYPE REF TO lcx_not_found,
lv_text TYPE string.
lo_reader = get_reader(
`&lt;c r=&quot;A1&quot; s=&quot;0&quot;&gt;&lt;v&gt;18&lt;/v&gt;&lt;/c&gt;`
).
TRY.
out-&gt;read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
fail(`Reference to non-existent style should throw an lcx_not_found exception`).
CATCH lcx_not_found INTO lo_ex.
lv_text = lo_ex-&gt;get_text( ). &quot; &gt;&gt;&gt; May inspect the message in the debugger
ENDTRY.
ENDMETHOD. &quot;test_style
*
METHOD test_read_shared_strings.
DATA: lo_reader TYPE REF TO if_sxml_reader,
lt_act TYPE stringtab,
lt_exp TYPE stringtab.
lo_reader = cl_sxml_string_reader=&gt;create( cl_abap_codepage=&gt;convert_to(
`&lt;sst&gt;&lt;si&gt;&lt;t/&gt;&lt;/si&gt;&lt;si&gt;&lt;t&gt;Alpha&lt;/t&gt;&lt;/si&gt;&lt;si&gt;&lt;t&gt;Bravo&lt;/t&gt;&lt;/si&gt;&lt;/sst&gt;`
) ).
APPEND :
`` TO lt_exp,
`Alpha` TO lt_exp,
`Bravo` TO lt_exp.
lt_act = out-&gt;read_shared_strings( lo_reader ).
assert_equals( act = lt_act
exp = lt_exp ).
ENDMETHOD.
*
METHOD test_skip_to_inexistent.
DATA: lo_reader TYPE REF TO if_sxml_reader,
lo_ex TYPE REF TO lcx_not_found,
lv_text TYPE string.
lo_reader = cl_sxml_string_reader=&gt;create( cl_abap_codepage=&gt;convert_to(
`&lt;sst&gt;&lt;si&gt;&lt;t/&gt;&lt;/si&gt;&lt;si&gt;&lt;t&gt;Alpha&lt;/t&gt;&lt;/si&gt;&lt;si&gt;&lt;t&gt;Bravo&lt;/t&gt;&lt;/si&gt;&lt;/sst&gt;`
) ).
TRY.
out-&gt;skip_to( iv_element_name = `nonExistingElement` io_reader = lo_reader ).
fail(`Skipping to non-existing element must raise lcx_not_found exception`).
CATCH lcx_not_found INTO lo_ex.
lv_text = lo_ex-&gt;get_text( ). &quot; May inspect exception text in debugger
ENDTRY.
ENDMETHOD.
*
METHOD get_reader.
DATA: lv_full TYPE string.
CONCATENATE `&lt;root&gt;&lt;sheetData&gt;&lt;row&gt;` iv_xml `&lt;/row&gt;&lt;/sheetData&gt;&lt;/root&gt;` INTO lv_full.
eo_reader = cl_sxml_string_reader=&gt;create( cl_abap_codepage=&gt;convert_to( lv_full ) ).
ENDMETHOD. &quot;get_reader
*
METHOD assert_value_equals.
FIELD-SYMBOLS: &lt;ls_cell_data&gt; TYPE zexcel_s_cell_data.
READ TABLE worksheet-&gt;sheet_content ASSIGNING &lt;ls_cell_data&gt;
WITH TABLE KEY cell_row = iv_row cell_column = iv_col.
assert_subrc( sy-subrc ).
assert_equals( act = &lt;ls_cell_data&gt;-cell_value
exp = iv_value ).
ENDMETHOD. &quot;assert_value_equals
**
METHOD assert_formula_equals.
FIELD-SYMBOLS: &lt;ls_cell_data&gt; TYPE zexcel_s_cell_data.
READ TABLE worksheet-&gt;sheet_content ASSIGNING &lt;ls_cell_data&gt;
WITH TABLE KEY cell_row = iv_row cell_column = iv_col.
assert_subrc( sy-subrc ).
assert_equals( act = &lt;ls_cell_data&gt;-cell_formula
exp = iv_formula ).
ENDMETHOD. &quot;assert_formula_equals
*
METHOD assert_style_equals.
FIELD-SYMBOLS: &lt;ls_cell_data&gt; TYPE zexcel_s_cell_data.
READ TABLE worksheet-&gt;sheet_content ASSIGNING &lt;ls_cell_data&gt;
WITH TABLE KEY cell_row = iv_row cell_column = iv_col.
assert_subrc( sy-subrc ).
assert_equals( act = &lt;ls_cell_data&gt;-cell_style
exp = iv_style ).
ENDMETHOD.
*
METHOD assert_datatype_equals.
FIELD-SYMBOLS: &lt;ls_cell_data&gt; TYPE zexcel_s_cell_data.
READ TABLE worksheet-&gt;sheet_content ASSIGNING &lt;ls_cell_data&gt;
WITH TABLE KEY cell_row = iv_row cell_column = iv_col.
assert_subrc( sy-subrc ).
assert_equals( act = &lt;ls_cell_data&gt;-data_type
exp = iv_datatype ).
ENDMETHOD. &quot;assert_datatype_equals
METHOD setup.
CREATE OBJECT out.
CREATE OBJECT excel.
CREATE OBJECT worksheet
EXPORTING
ip_excel = excel.
ENDMETHOD. &quot;setup
ENDCLASS. &quot;lcl_test IMPLEMENTATION</localTestClasses>
<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=&gt;CO_NT_ATTRIBUTE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=&gt;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=&gt;CO_NT_ELEMENT_CLOSE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=&gt;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=&gt;CO_NT_ELEMENT_OPEN" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=&gt;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=&gt;CO_NT_FINAL" ATTEXPVIRT="0" TYPTYPE="1" TYPE="IF_SXML_NODE=&gt;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,
index type i value -1,
guid type zexcel_cell_style,
end of gs_buffer_style
"/>
<inheritance CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" REFCLSNAME="ZCL_EXCEL_READER_2007" VERSION="1" STATE="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"/>
</inheritance>
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="FILL_CELL_FROM_ATTRIBUTES" VERSION="1" LANGU="E" DESCRIPT="Fill some cell properties from &lt;c&gt; 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="ES_CELL" VERSION="1" LANGU="E" 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 "/>
<source>method FILL_CELL_FROM_ATTRIBUTES.
while io_reader-&gt;node_type ne c_end_of_stream.
io_reader-&gt;next_attribute( ).
if io_reader-&gt;node_type ne c_attribute.
exit.
endif.
case io_reader-&gt;name.
when `t`.
es_cell-datatype = io_reader-&gt;value.
when `s`.
if io_reader-&gt;value is not initial.
es_cell-style = get_style( io_reader-&gt;value ).
endif.
when `r`.
es_cell-coord = get_cell_coord( io_reader-&gt;value ).
endcase.
endwhile.
io_reader-&gt;current_node( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_CELL_COORD" VERSION="1" LANGU="E" DESCRIPT='Cell coordinates from expression (like &quot;B2&quot;)' 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="ES_COORD" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T_CELL_COORD"/>
<source>method GET_CELL_COORD.
zcl_excel_common=&gt;convert_columnrow2column_a_row(
exporting
i_columnrow = iv_coord
importing
e_column = es_coord-column
e_row = es_coord-row
).
endmethod.</source>
</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">
<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="EV_VALUE" VERSION="1" LANGU="E" 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 "/>
<source>method GET_SHARED_STRING.
data: lv_tabix type i.
lv_tabix = iv_index + 1.
read table shared_strings into ev_value index lv_tabix.
if sy-subrc ne 0.
raise exception type lcx_not_found
exporting
error = |Entry { iv_index } not found in Shared String Table|.
endif.
endmethod.</source>
</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">
<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="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"/>
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="GET_STYLE" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_STYLE.
data: lv_tabix type i,
lo_style type ref to zcl_excel_style.
if gs_buffer_style-index ne iv_index.
lv_tabix = iv_index + 1.
read table styles into lo_style index lv_tabix.
if sy-subrc ne 0.
raise exception type lcx_not_found
exporting
error = |Entry { iv_index } not found in Style Table|.
else.
gs_buffer_style-index = iv_index.
gs_buffer_style-guid = lo_style-&gt;get_guid( ).
endif.
endif.
ev_style_guid = gs_buffer_style-guid.
endmethod.</source>
</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">
<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="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"/>
<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 "/>
<source>method GET_SXML_READER.
data: lv_xml type xstring.
lv_xml = get_from_zip_archive( iv_path ).
eo_reader = cl_sxml_string_reader=&gt;create( lv_xml ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_SHARED_STRINGS" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method LOAD_SHARED_STRINGS.
data: lo_reader type ref to if_sxml_reader.
lo_reader = get_sxml_reader( ip_path ).
shared_strings = read_shared_strings( lo_reader ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_READER_2007" CMPNAME="LOAD_WORKSHEET" VERSION="0" EXPOSURE="0" STATE="0" EDITORDER="0 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method LOAD_WORKSHEET.
data: lo_reader type ref to if_sxml_reader.
lo_reader = get_sxml_reader( ip_path ).
read_worksheet_data( io_reader = lo_reader
io_worksheet = io_worksheet ).
endmethod.</source>
</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">
<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="IS_CELL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="T_CELL"/>
<source>method PUT_CELL_TO_WORKSHEET.
call method io_worksheet-&gt;set_cell
exporting
ip_column = is_cell-column
ip_row = is_cell-row
ip_value = is_cell-value
ip_formula = is_cell-formula
ip_data_type = is_cell-datatype
ip_style = is_cell-style.
endmethod.</source>
</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">
<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="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"/>
<source>method READ_SHARED_STRINGS.
while io_reader-&gt;node_type ne c_end_of_stream.
io_reader-&gt;next_node( ).
if io_reader-&gt;node_type eq c_element_close and
io_reader-&gt;name eq `t`.
append io_reader-&gt;value to et_shared_strings.
endif.
endwhile.
endmethod.</source>
</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&apos;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_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"/>
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="READ_WORKSHEET_DATA" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="1 "/>
<source>method READ_WORKSHEET_DATA.
data: ls_cell type t_cell.
* Skip to &lt;sheetData&gt; element
skip_to( iv_element_name = `sheetData` io_reader = io_reader ).
* Main loop: Evaluate the &lt;c&gt; elements and its children
while io_reader-&gt;node_type ne c_end_of_stream.
io_reader-&gt;next_node( ).
case io_reader-&gt;node_type.
when c_element_open.
if io_reader-&gt;name eq `c`.
ls_cell = fill_cell_from_attributes( io_reader ).
endif.
when c_element_close.
case io_reader-&gt;name.
when `c`.
put_cell_to_worksheet( is_cell = ls_cell io_worksheet = io_worksheet ).
when `f`.
ls_cell-formula = io_reader-&gt;value.
when `v`.
if ls_cell-datatype eq `s`.
ls_cell-value = get_shared_string( ls_cell-value ).
else.
ls_cell-value = io_reader-&gt;value.
endif.
when `is`.
ls_cell-value = io_reader-&gt;value.
when `sheetData`.
exit.
endcase.
endcase.
endwhile.
endmethod.</source>
</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">
<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="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"/>
<exception CLSNAME="ZCL_EXCEL_READER_HUGE_FILE" CMPNAME="SKIP_TO" SCONAME="LCX_NOT_FOUND" VERSION="1" LANGU="E" MTDTYPE="0" EDITORDER="1 "/>
<source>method SKIP_TO.
* Skip forward to given element
while io_reader-&gt;name ne iv_element_name or
io_reader-&gt;node_type ne c_element_open.
io_reader-&gt;next_node( ).
if io_reader-&gt;node_type = c_end_of_stream.
raise exception type lcx_not_found
exporting
error = |XML error: Didn&apos;t find element &lt;{ iv_element_name }&gt;|.
endif.
endwhile.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL" REFCLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<implementing CLSNAME="ZCL_EXCEL" REFCLSNAME="ZIF_EXCEL_BOOK_PROTECTION" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<implementing CLSNAME="ZCL_EXCEL" REFCLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<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>
<localTestClasses>CLASS zcl_tc_excel DEFINITION DEFERRED.
CLASS zcl_excel DEFINITION LOCAL FRIENDS zcl_tc_excel.
*----------------------------------------------------------------------*
* CLASS zcl_Tc_Excel DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_tc_excel DEFINITION FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS
.
*?&lt;asx:abap xmlns:asx=&quot;http://www.sap.com/abapxml&quot; version=&quot;1.0&quot;&gt;
*?&lt;asx:values&gt;
*?&lt;TESTCLASS_OPTIONS&gt;
*?&lt;TEST_CLASS&gt;zcl_Tc_Excel
*?&lt;/TEST_CLASS&gt;
*?&lt;TEST_MEMBER&gt;f_Cut
*?&lt;/TEST_MEMBER&gt;
*?&lt;OBJECT_UNDER_TEST&gt;ZCL_EXCEL
*?&lt;/OBJECT_UNDER_TEST&gt;
*?&lt;OBJECT_IS_LOCAL/&gt;
*?&lt;GENERATE_FIXTURE&gt;X
*?&lt;/GENERATE_FIXTURE&gt;
*?&lt;GENERATE_CLASS_FIXTURE&gt;X
*?&lt;/GENERATE_CLASS_FIXTURE&gt;
*?&lt;GENERATE_INVOCATION&gt;X
*?&lt;/GENERATE_INVOCATION&gt;
*?&lt;GENERATE_ASSERT_EQUAL&gt;X
*?&lt;/GENERATE_ASSERT_EQUAL&gt;
*?&lt;/TESTCLASS_OPTIONS&gt;
*?&lt;/asx:values&gt;
*?&lt;/asx:abap&gt;
PRIVATE SECTION.
* ================
DATA:
f_cut TYPE REF TO zcl_excel. &quot;class under test
CLASS-METHODS: class_setup.
CLASS-METHODS: class_teardown.
METHODS: setup.
METHODS: teardown.
METHODS: create_empty_excel FOR TESTING.
ENDCLASS. &quot;zcl_Tc_Excel
*----------------------------------------------------------------------*
* CLASS zcl_Tc_Excel IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_tc_excel IMPLEMENTATION.
* ==================================
METHOD class_setup.
* ===================
ENDMETHOD. &quot;class_Setup
METHOD class_teardown.
* ======================
ENDMETHOD. &quot;class_Teardown
METHOD setup.
* =============
CREATE OBJECT f_cut.
ENDMETHOD. &quot;setup
METHOD teardown.
* ================
ENDMETHOD. &quot;teardown
*// START TEST METHODS
METHOD create_empty_excel.
* ==================================
DATA: lv_count TYPE i.
lv_count = f_cut-&gt;get_worksheets_size( ).
cl_abap_unit_assert=&gt;assert_equals( act = lv_count
exp = 1
msg = &apos;Testing number of sheet&apos;
level = if_aunit_constants=&gt;tolerable ).
ENDMETHOD. &quot;create_empty_excel
*// END TEST METHODS
ENDCLASS. &quot;zcl_Tc_Excel</localTestClasses>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="Autofilters collection" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTERS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="CHARTS" VERSION="1" LANGU="E" DESCRIPT="Charts collection" EXPOSURE="0" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWINGS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="DEFAULT_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" EXPOSURE="0" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="DRAWINGS" VERSION="1" LANGU="E" DESCRIPT="Worksheets collection" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWINGS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="LEGACY_PALETTE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_LEGACY_PALETTE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="RANGES" VERSION="1" LANGU="E" DESCRIPT="Ranges collection" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="SECURITY" VERSION="1" LANGU="E" DESCRIPT="Security" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_SECURITY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="STYLES" VERSION="1" LANGU="E" DESCRIPT="Styles collection" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="T_STYLEMAPPING1" VERSION="1" LANGU="E" DESCRIPT="Stylemapping: Values -&gt; GUID" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLEMAPPING1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="T_STYLEMAPPING2" VERSION="1" LANGU="E" DESCRIPT="Stylemapping: GUID -&gt; Values" EXPOSURE="0" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLEMAPPING2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="USE_TEMPLATE" VERSION="1" LANGU="E" DESCRIPT="Checkbox" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XFELD" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="WORKSHEETS" VERSION="1" LANGU="E" DESCRIPT="Worksheets collection" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEETS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE">
<source>method ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.
DATA: lv_timestamp TYPE timestampl.
me-&gt;zif_excel_book_properties~application = &apos;Microsoft Excel&apos;.
me-&gt;zif_excel_book_properties~appversion = &apos;12.0000&apos;.
GET TIME STAMP FIELD lv_timestamp.
me-&gt;zif_excel_book_properties~created = lv_timestamp.
me-&gt;zif_excel_book_properties~creator = sy-uname.
me-&gt;zif_excel_book_properties~modified = lv_timestamp.
me-&gt;zif_excel_book_properties~lastmodifiedby = sy-uname.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE">
<source>method ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.
me-&gt;zif_excel_book_protection~protected = zif_excel_book_protection=&gt;c_unprotected.
me-&gt;zif_excel_book_protection~lockrevision = zif_excel_book_protection=&gt;c_unlocked.
me-&gt;zif_excel_book_protection~lockstructure = zif_excel_book_protection=&gt;c_unlocked.
me-&gt;zif_excel_book_protection~lockwindows = zif_excel_book_protection=&gt;c_unlocked.
CLEAR me-&gt;zif_excel_book_protection~workbookpassword.
CLEAR me-&gt;zif_excel_book_protection~revisionspassword.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME">
<source>method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.
me-&gt;zif_excel_book_vba_project~codename = ip_codename.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR">
<source>method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.
me-&gt;zif_excel_book_vba_project~codename_pr = ip_codename_pr.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT">
<source>method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.
me-&gt;zif_excel_book_vba_project~vbaproject = ip_vbaproject.
endmethod.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Create a new autofilter" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_AUTOFILTER" SCONAME="IO_SHEET" VERSION="1" LANGU="E" DESCRIPT="Sheet GUID for the OLTP System (RAW16)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_AUTOFILTER" SCONAME="RO_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTER"/>
<source>method ADD_NEW_AUTOFILTER.
* Check for autofilter reference: new or overwrite; only one per sheet
ro_autofilter = autofilters-&gt;add( io_sheet = io_sheet ) .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Create a new drawing" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_DRAWING" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" PARVALUE="ZCL_EXCEL_DRAWING=&gt;TYPE_IMAGE"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_DRAWING" SCONAME="IP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_DRAWING" SCONAME="EO_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Drawing" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
<source>method ADD_NEW_DRAWING.
DATA: lv_guid TYPE guid_16.
* Create default blank worksheet
CREATE OBJECT eo_drawing
EXPORTING
ip_type = ip_type
ip_title = ip_title.
CASE ip_type.
WHEN &apos;image&apos;.
drawings-&gt;add( eo_drawing ).
WHEN &apos;chart&apos;.
charts-&gt;add( eo_drawing ).
ENDCASE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_RANGE" VERSION="1" LANGU="E" DESCRIPT="Create a new range" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_RANGE" SCONAME="EO_RANGE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGE"/>
<source>method ADD_NEW_RANGE.
* Create default blank range
CREATE OBJECT eo_range.
ranges-&gt;add( eo_range ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_STYLE" VERSION="1" LANGU="E" DESCRIPT="Create a new style" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_STYLE" SCONAME="IP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_STYLE" SCONAME="EO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method ADD_NEW_STYLE.
* Start of deletion # issue 139 - Dateretention of cellstyles
* CREATE OBJECT eo_style.
* styles-&gt;add( eo_style ).
* End of deletion # issue 139 - Dateretention of cellstyles
* Start of insertion # issue 139 - Dateretention of cellstyles
* Create default style
CREATE OBJECT eo_style
EXPORTING
ip_guid = ip_guid.
styles-&gt;add( eo_style ).
DATA: style2 TYPE zexcel_s_stylemapping.
* Copy to new representations
style2 = stylemapping_dynamic_style( eo_style ).
INSERT style2 INTO TABLE t_stylemapping1.
INSERT style2 INTO TABLE t_stylemapping2.
* End of insertion # issue 139 - Dateretention of cellstyles
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Create a new worksheet" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_WORKSHEET" SCONAME="IP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_WORKSHEET" SCONAME="EO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<exception CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_WORKSHEET" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method ADD_NEW_WORKSHEET.
DATA: lv_guid TYPE guid_16.
* Create default blank worksheet
CREATE OBJECT eo_worksheet
EXPORTING
ip_excel = me
ip_title = ip_title.
worksheets-&gt;add( eo_worksheet ).
worksheets-&gt;active_worksheet = worksheets-&gt;size( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_STATIC_STYLES" VERSION="1" LANGU="E" DESCRIPT="Add static styles to styles iterator" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method ADD_STATIC_STYLES.
&quot; # issue 139
* sp#ÃÆÃƒâ€šÃ¤ter hier noch die Worksheets abklappern, welche Styles #ƒÂ#berhaupt noch ben#ƒÂ#tigt werden
* und nur diese dann auch hier zur Verf#ƒÂ#gung stellen
* Da muss ich noch mal nachfragen, ob die beiden ersten Styles, die scheinbar immer mit dem
* EXCEL-Objekt erzeugt werden evtl. immer ben#ƒÂ#tigt werden, egal ob verwendet oder nicht
* Aber als Start fange ich mal an einfach alle static styles der Reihe nach hinzuzuf#ƒÂ#gen
FIELD-SYMBOLS: &lt;style1&gt; LIKE LINE OF t_stylemapping1,
&lt;style2&gt; LIKE LINE OF t_stylemapping2.
DATA: style TYPE REF TO zcl_excel_style.
LOOP AT me-&gt;t_stylemapping1 ASSIGNING &lt;style1&gt; WHERE added_to_iterator IS INITIAL.
READ TABLE me-&gt;t_stylemapping2 ASSIGNING &lt;style2&gt; WITH TABLE KEY guid = &lt;style1&gt;-guid.
CHECK sy-subrc = 0. &quot; Should always be true since these tables are being filled parallel
style = me-&gt;add_new_style( &lt;style1&gt;-guid ).
zcl_excel_common=&gt;recursive_struct_to_class( EXPORTING i_source = &lt;style1&gt;-complete_style
i_sourcex = &lt;style1&gt;-complete_stylex
CHANGING e_target = style ).
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style TYPE REF TO zcl_excel_style.
* Inizialize instance objects
CREATE OBJECT security.
CREATE OBJECT worksheets.
CREATE OBJECT ranges.
CREATE OBJECT styles.
CREATE OBJECT drawings
EXPORTING
ip_type = zcl_excel_drawing=&gt;type_image.
CREATE OBJECT charts
EXPORTING
ip_type = zcl_excel_drawing=&gt;type_chart.
CREATE OBJECT legacy_palette.
CREATE OBJECT autofilters.
me-&gt;zif_excel_book_protection~initialize( ).
me-&gt;zif_excel_book_properties~initialize( ).
me-&gt;add_new_worksheet( ).
me-&gt;add_new_style( ). &quot; Standard style
lo_style = me-&gt;add_new_style( ). &quot; Standard style with fill gray125
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_pattern_gray125.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_ACTIVE_SHEET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Get active worksheet index" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_ACTIVE_SHEET_INDEX" SCONAME="R_ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
<source>method GET_ACTIVE_SHEET_INDEX.
r_active_worksheet = me-&gt;worksheets-&gt;active_worksheet.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Get active worksheet" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_ACTIVE_WORKSHEET" SCONAME="EO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<source>method GET_ACTIVE_WORKSHEET.
eo_worksheet = me-&gt;worksheets-&gt;get( me-&gt;worksheets-&gt;active_worksheet ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_AUTOFILTERS_REFERENCE" VERSION="1" LANGU="E" DESCRIPT="Get filter reference" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_AUTOFILTERS_REFERENCE" SCONAME="RO_AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="Autofilters collection" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTERS"/>
<source>method GET_AUTOFILTERS_REFERENCE.
ro_autofilters = autofilters.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_DEFAULT_STYLE" VERSION="1" LANGU="E" DESCRIPT="Get default style" EXPOSURE="2" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_DEFAULT_STYLE" SCONAME="EP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method GET_DEFAULT_STYLE.
ep_style = me-&gt;default_style.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_DRAWINGS_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get drawing iterator" EXPOSURE="2" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_DRAWINGS_ITERATOR" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_DRAWINGS_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_DRAWINGS_ITERATOR.
CASE ip_type.
WHEN zcl_excel_drawing=&gt;type_image.
eo_iterator = me-&gt;drawings-&gt;get_iterator( ).
WHEN zcl_excel_drawing=&gt;type_chart.
eo_iterator = me-&gt;charts-&gt;get_iterator( ).
WHEN OTHERS.
ENDCASE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_NEXT_TABLE_ID" VERSION="1" LANGU="E" DESCRIPT="Get table ID unique across sheets" EXPOSURE="2" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_NEXT_TABLE_ID" SCONAME="EP_ID" VERSION="1" LANGU="E" DESCRIPT="ID" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method GET_NEXT_TABLE_ID.
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lv_tables_count TYPE i.
lo_iterator = me-&gt;get_worksheets_iterator( ).
WHILE lo_iterator-&gt;if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator-&gt;if_object_collection_iterator~get_next( ).
lv_tables_count = lo_worksheet-&gt;get_tables_size( ).
ADD lv_tables_count TO ep_id.
ENDWHILE.
ADD 1 TO ep_id.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_RANGES_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get ranges iterator" EXPOSURE="2" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_RANGES_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_RANGES_ITERATOR.
eo_iterator = me-&gt;ranges-&gt;get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_STATIC_CELLSTYLE_GUID" VERSION="1" LANGU="E" DESCRIPT="Get GUID for static cellstyle" EXPOSURE="2" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STATIC_CELLSTYLE_GUID" SCONAME="IP_CSTYLE_COMPLETE" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles ( 1 structure holds all )" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_COMPLETE"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STATIC_CELLSTYLE_GUID" SCONAME="IP_CSTYLEX_COMPLETE" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cellstyles ( 1 structure holds all )" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_COMPLETE"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STATIC_CELLSTYLE_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method GET_STATIC_CELLSTYLE_GUID.
&quot; # issue 139
DATA: style LIKE LINE OF me-&gt;t_stylemapping1.
READ TABLE me-&gt;t_stylemapping1 INTO style
WITH TABLE KEY dynamic_style_guid = style-guid &quot; no dynamic style --&gt; look for initial guid here
complete_style = ip_cstyle_complete
complete_stylex = ip_cstylex_complete.
IF sy-subrc &lt;&gt; 0.
style-complete_style = ip_cstyle_complete.
style-complete_stylex = ip_cstylex_complete.
CALL FUNCTION &apos;GUID_CREATE&apos;
IMPORTING
ev_guid_16 = style-guid.
INSERT style INTO TABLE me-&gt;t_stylemapping1.
INSERT style INTO TABLE me-&gt;t_stylemapping2.
ENDIF.
ep_guid = style-guid.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLES_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get styles iterator" EXPOSURE="2" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLES_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_STYLES_ITERATOR.
eo_iterator = me-&gt;styles-&gt;get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_INDEX_IN_STYLES" VERSION="1" LANGU="E" DESCRIPT="Get index of style in styles" EXPOSURE="2" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_INDEX_IN_STYLES" SCONAME="IP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_INDEX_IN_STYLES" SCONAME="EP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Index of Internal Tables" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="SYTABIX"/>
<exception CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_INDEX_IN_STYLES" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_STYLE_INDEX_IN_STYLES.
DATA: index TYPE syindex.
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_style TYPE REF TO zcl_excel_style.
CHECK ip_guid IS NOT INITIAL.
lo_iterator = me-&gt;get_styles_iterator( ).
WHILE lo_iterator-&gt;has_next( ) = &apos;X&apos;.
ADD 1 TO index.
lo_style ?= lo_iterator-&gt;get_next( ).
IF lo_style-&gt;get_guid( ) = ip_guid.
ep_index = index.
EXIT.
ENDIF.
ENDWHILE.
IF ep_index IS INITIAL.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Index not found&apos;.
else.
SUBTRACT 1 from ep_index. &quot; In excel list starts with &quot;0&quot;
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_TO_GUID" VERSION="1" LANGU="E" DESCRIPT="Get style(structure) for guid" EXPOSURE="2" STATE="1" EDITORDER="18 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_TO_GUID" SCONAME="IP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_TO_GUID" SCONAME="EP_STYLEMAPPING" VERSION="1" LANGU="E" DESCRIPT="Stypemapping" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLEMAPPING"/>
<exception CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_TO_GUID" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_STYLE_TO_GUID.
&quot; # issue 139
READ TABLE me-&gt;t_stylemapping2 INTO ep_stylemapping WITH TABLE KEY guid = ip_guid.
IF sy-subrc &lt;&gt; 0.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;GUID not found&apos;.
ENDIF.
IF ep_stylemapping-dynamic_style_guid IS NOT INITIAL.
zcl_excel_common=&gt;recursive_class_to_struct( EXPORTING i_source = ep_stylemapping-cl_style
CHANGING e_target = ep_stylemapping-complete_style
e_targetx = ep_stylemapping-complete_stylex ).
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get worksheets iterator" EXPOSURE="2" STATE="1" EDITORDER="19 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_WORKSHEETS_ITERATOR.
eo_iterator = me-&gt;worksheets-&gt;get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_NAME" VERSION="1" LANGU="E" DESCRIPT="Returns the name of worksheets" EXPOSURE="2" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_NAME" SCONAME="EP_NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME"/>
<source>method GET_WORKSHEETS_NAME.
ep_name = me-&gt;worksheets-&gt;name.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_SIZE" VERSION="1" LANGU="E" DESCRIPT="Returns the number of worksheets" EXPOSURE="2" STATE="1" EDITORDER="21 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method GET_WORKSHEETS_SIZE.
ep_size = me-&gt;worksheets-&gt;size( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_NAME" VERSION="1" LANGU="E" DESCRIPT="Get worksheet by name" EXPOSURE="2" STATE="1" EDITORDER="22 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_NAME" SCONAME="IP_SHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_NAME" SCONAME="EO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<source>method GET_WORKSHEET_BY_NAME.
DATA: lv_index TYPE zexcel_active_worksheet,
l_size TYPE i.
l_size = get_worksheets_size( ).
DO l_size TIMES.
lv_index = sy-index.
eo_worksheet = me-&gt;worksheets-&gt;get( lv_index ).
IF eo_worksheet-&gt;get_title( ) = ip_sheet_name.
RETURN.
ENDIF.
ENDDO.
CLEAR eo_worksheet.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Set active worksheet index" EXPOSURE="2" STATE="1" EDITORDER="23 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX" SCONAME="I_ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
<source>method SET_ACTIVE_SHEET_INDEX.
me-&gt;worksheets-&gt;active_worksheet = i_active_worksheet.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX_BY_NAME" VERSION="1" LANGU="E" DESCRIPT="Set active worksheet index by name" EXPOSURE="2" STATE="1" EDITORDER="24 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX_BY_NAME" SCONAME="I_WORKSHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME"/>
<source>method SET_ACTIVE_SHEET_INDEX_BY_NAME.
DATA: ws_it TYPE REF TO cl_object_collection_iterator,
ws TYPE REF TO zcl_excel_worksheet,
lv_title TYPE ZEXCEL_SHEET_TITLE,
count TYPE i VALUE 1.
ws_it = me-&gt;worksheets-&gt;get_iterator( ).
WHILE ws_it-&gt;if_object_collection_iterator~has_next( ) = abap_true.
ws ?= ws_it-&gt;if_object_collection_iterator~get_next( ).
lv_title = ws-&gt;get_title( ).
IF lv_title = i_worksheet_name.
me-&gt;worksheets-&gt;active_worksheet = count.
EXIT.
ENDIF.
count = count + 1.
ENDWHILE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="SET_DEFAULT_STYLE" VERSION="1" LANGU="E" DESCRIPT="Set default style" EXPOSURE="2" STATE="1" EDITORDER="25 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="SET_DEFAULT_STYLE" SCONAME="IP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<exception CLSNAME="ZCL_EXCEL" CMPNAME="SET_DEFAULT_STYLE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_DEFAULT_STYLE.
me-&gt;default_style = ip_style.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL" CMPNAME="STYLEMAPPING_DYNAMIC_STYLE" VERSION="1" LANGU="E" DESCRIPT="Convert dynamic style to static stlyeentry" EXPOSURE="0" STATE="1" EDITORDER="26 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="STYLEMAPPING_DYNAMIC_STYLE" SCONAME="IP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="STYLEMAPPING_DYNAMIC_STYLE" SCONAME="EO_STYLE2" VERSION="1" LANGU="E" DESCRIPT="Stypemapping" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLEMAPPING"/>
<source>method STYLEMAPPING_DYNAMIC_STYLE.
&quot; # issue 139
eo_style2-dynamic_style_guid = ip_style-&gt;get_guid( ).
eo_style2-guid = eo_style2-dynamic_style_guid.
eo_style2-added_to_iterator = abap_true.
eo_style2-cl_style = ip_style.
* don&apos;t care about attributes here, since this data may change
* dynamically
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Autofilter" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="FILTER_AREA" VERSION="1" LANGU="E" DESCRIPT="Autofilter area ( rows and columns )" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_AUTOFILTER_AREA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="VALUES" VERSION="1" LANGU="E" DESCRIPT="Table with autofilter values" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_AUTOFILTER_VALUES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="CONSTRUCTOR" SCONAME="IO_SHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<source>method CONSTRUCTOR.
worksheet = io_sheet.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="GET_FILTER_AREA" VERSION="1" LANGU="E" DESCRIPT="Get filter area for filter" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="GET_FILTER_AREA" SCONAME="RS_AREA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_AUTOFILTER_AREA"/>
<source>method GET_FILTER_AREA.
validate_area( ).
rs_area = filter_area.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="GET_FILTER_RANGE" VERSION="1" LANGU="E" DESCRIPT="Get Filter range for filter" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="GET_FILTER_RANGE" SCONAME="R_RANGE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<source>method GET_FILTER_RANGE.
DATA: l_row_start_c TYPE string,
l_row_end_c TYPE string,
l_col_start_c TYPE string,
l_col_end_c TYPE string,
l_value TYPE string.
validate_area( ).
l_row_end_c = filter_area-row_end.
CONDENSE l_row_end_c NO-GAPS.
l_row_start_c = filter_area-row_start.
CONDENSE l_row_start_c NO-GAPS.
l_col_start_c = zcl_excel_common=&gt;convert_column2alpha( ip_column = filter_area-col_start ) .
l_col_end_c = zcl_excel_common=&gt;convert_column2alpha( ip_column = filter_area-col_end ) .
CONCATENATE l_col_start_c l_row_start_c &apos;:&apos; l_col_end_c l_row_end_c INTO r_range.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="GET_FILTER_REFERENCE" VERSION="1" LANGU="E" DESCRIPT="Get filter reference for filter" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="GET_FILTER_REFERENCE" SCONAME="R_REF" VERSION="1" LANGU="E" DESCRIPT="Full reference of a range" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE"/>
<source>method GET_FILTER_REFERENCE.
DATA: l_row_start_c TYPE string,
l_row_end_c TYPE string,
l_col_start_c TYPE string,
l_col_end_c TYPE string,
l_value TYPE string.
validate_area( ).
l_row_end_c = filter_area-row_end.
CONDENSE l_row_end_c NO-GAPS.
l_row_start_c = filter_area-row_start.
CONDENSE l_row_start_c NO-GAPS.
l_col_start_c = zcl_excel_common=&gt;convert_column2alpha( ip_column = filter_area-col_start ) .
l_col_end_c = zcl_excel_common=&gt;convert_column2alpha( ip_column = filter_area-col_end ) .
l_value = worksheet-&gt;get_title( ) .
r_ref = zcl_excel_common=&gt;escape_string( ip_value = l_value ).
CONCATENATE r_ref &apos;!$&apos; l_col_start_c &apos;$&apos; l_row_start_c &apos;:$&apos; l_col_end_c &apos;$&apos; l_row_end_c INTO r_ref.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="GET_VALUES" VERSION="1" LANGU="E" DESCRIPT="Get filter values table" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="GET_VALUES" SCONAME="RT_FILTER" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_T_AUTOFILTER_VALUES"/>
<source>method GET_VALUES.
rt_filter = values.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="SET_FILTER_AREA" VERSION="1" LANGU="E" DESCRIPT="Set filter area for filter" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="SET_FILTER_AREA" SCONAME="IS_AREA" VERSION="1" LANGU="E" DESCRIPT="Autofilter area ( rows and columns )" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_AUTOFILTER_AREA"/>
<source>method SET_FILTER_AREA.
filter_area = is_area.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="SET_VALUE" VERSION="1" LANGU="E" DESCRIPT="Set Filter value" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="SET_VALUE" SCONAME="I_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="SET_VALUE" SCONAME="I_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<source>method SET_VALUE.
DATA: ls_values TYPE zexcel_s_autofilter_values.
* Checks a re missing.
ls_values-column = i_column.
ls_values-value = i_value.
INSERT ls_values INTO TABLE values.
* Now we need to be sure we don&apos;t get the same value again.
DELETE ADJACENT DUPLICATES FROM values COMPARING column value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="SET_VALUES" VERSION="1" LANGU="E" DESCRIPT="Set Filter values with table" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="SET_VALUES" SCONAME="IT_VALUES" VERSION="1" LANGU="E" DESCRIPT="Table with autofilter values" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_AUTOFILTER_VALUES"/>
<source>method SET_VALUES.
* Checks are missing.
values = it_values.
DELETE ADJACENT DUPLICATES FROM values COMPARING column value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTER" CMPNAME="VALIDATE_AREA" VERSION="1" LANGU="E" DESCRIPT="Validates filter area" EXPOSURE="0" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method VALIDATE_AREA.
DATA: l_col TYPE zexcel_cell_column,
l_row TYPE zexcel_cell_row.
l_row = worksheet-&gt;get_highest_row( ) .
l_col = worksheet-&gt;get_highest_column( ) .
IF filter_area IS INITIAL.
filter_area-row_start = 1.
filter_area-col_start = 1.
filter_area-row_end = l_row .
filter_area-col_end = l_col .
ENDIF.
IF filter_area-row_start &lt; 1.
filter_area-row_start = 1.
ENDIF.
IF filter_area-col_start &lt; 1.
filter_area-col_start = 1.
ENDIF.
IF filter_area-row_end &gt; l_row OR
filter_area-row_end &lt; 1.
filter_area-row_end = l_row.
ENDIF.
IF filter_area-col_end &gt; l_col OR
filter_area-col_end &lt; 1.
filter_area-col_end = l_col.
ENDIF.
IF filter_area-row_start &gt;= filter_area-row_end.
filter_area-row_start = filter_area-row_end - 1.
IF filter_area-row_start &lt; 1.
filter_area-row_start = 1.
filter_area-row_end = 2.
ENDIF.
ENDIF.
IF filter_area-col_start &gt; filter_area-col_end.
filter_area-col_start = filter_area-col_end.
ENDIF.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="Autofilters collection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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
TYPES: BEGIN OF ts_objects,
sheet_guid TYPE uuid,
autofilter TYPE REF TO zcl_excel_autofilter,
END OF ts_objects,
tt_objects TYPE HASHED TABLE OF ts_objects WITH UNIQUE KEY sheet_guid.</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_AUTOFILTERS" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="AUTOFILTERS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_OBJECTS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="C_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Excel Autofilter range name" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;_xlnm._FilterDatabase&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="ADD" SCONAME="IO_SHEET" 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_AUTOFILTERS" CMPNAME="ADD" SCONAME="RO_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Autofilter" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTER"/>
<source>method ADD.
DATA: ls_autofilters TYPE ts_objects,
l_guid TYPE uuid.
l_guid = io_sheet-&gt;get_guid( ) .
READ TABLE autofilters INTO ls_autofilters WITH TABLE KEY sheet_guid = l_guid.
IF sy-subrc = 0.
ro_autofilter = ls_autofilters-autofilter.
ELSE.
CREATE OBJECT ro_autofilter
EXPORTING
io_sheet = io_sheet.
ls_autofilters-autofilter = ro_autofilter.
ls_autofilters-sheet_guid = l_guid.
INSERT ls_autofilters INTO TABLE autofilters .
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="CLEAR" VERSION="1" LANGU="E" DESCRIPT="Initializes the Collection" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAR.
REFRESH autofilters.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" VERSION="1" LANGU="E" DESCRIPT="Gets Element" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" SCONAME="I_SHEET_GUID" VERSION="1" LANGU="E" DESCRIPT="GUID for the OLTP System (RAW16)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="UUID"/>
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" SCONAME="RO_AUTOFILTER" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTER"/>
<source>method GET.
DATA: ls_autofilters TYPE ts_objects.
READ TABLE autofilters INTO ls_autofilters WITH TABLE KEY sheet_guid = i_sheet_guid.
IF sy-subrc = 0.
ro_autofilter = ls_autofilters-autofilter.
ELSE.
CLEAR ro_autofilter.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="Checks whether elements are contained" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="IS_EMPTY" SCONAME="R_EMPTY" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>method IS_EMPTY.
IF autofilters IS INITIAL.
r_empty = abap_true.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="REMOVE" VERSION="1" LANGU="E" DESCRIPT="Deletes an Element from the Collection" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="REMOVE" SCONAME="I_SHEET_GUID" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="UUID"/>
<source>method REMOVE.
DATA: ls_autofilters TYPE ts_objects.
DELETE autofilters WHERE sheet_guid = i_sheet_guid.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Specifies number of contained elements" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="SIZE" SCONAME="R_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method SIZE.
DESCRIBE TABLE autofilters LINES r_size.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_COMMON" VERSION="1" LANGU="E" DESCRIPT="Static common methods" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" WITH_UNIT_TESTS="X" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<localTestClasses>*&quot;* use this source file for your ABAP unit test classes</localTestClasses>
<textPool>
<language SPRAS="D">
<textElement ID="I" KEY="001" ENTRY="Unerlaubter Bereich" LENGTH="60 "/>
<textElement ID="I" KEY="002" ENTRY="Eingabe nicht korrekt ?escaped? - &amp; Wie zum Geier heißt das" LENGTH="61 "/>
<textElement ID="I" KEY="003" ENTRY="Eingabe konnte nicht als Spaltenname interpretiert werden" LENGTH="60 "/>
<textElement ID="I" KEY="004" ENTRY="Index nicht im erlaubten Bereich" LENGTH="60 "/>
</language>
<language SPRAS="E">
<textElement ID="I" KEY="001" ENTRY="Invalid range" LENGTH="60 "/>
<textElement ID="I" KEY="002" ENTRY="Input not properly escaped - &amp;" LENGTH="60 "/>
<textElement ID="I" KEY="003" ENTRY="Unable to interpret input as column" LENGTH="60 "/>
<textElement ID="I" KEY="004" ENTRY="Index out of bounds" LENGTH="60 "/>
</language>
</textPool>
<typeUsage CLSNAME="ZCL_EXCEL_COMMON" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" IMPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_EXCEL_1900_LEAP_YEAR" VERSION="1" LANGU="E" DESCRIPT="Excel baseline date" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;19000228&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="D" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_EXCEL_BASELINE_DATE" VERSION="1" LANGU="E" DESCRIPT="Excel baseline date" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;19000101&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="D" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_EXCEL_COL_MODULE" VERSION="1" LANGU="E" DESCRIPT="2 byte integer (signed)" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="1" ATTVALUE="64" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_EXCEL_NUMFMT_OFFSET" VERSION="1" LANGU="E" DESCRIPT="2 byte integer (signed)" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="1" ATTVALUE="164" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_EXCEL_SHEET_MAX_COL" VERSION="1" LANGU="E" DESCRIPT="2 byte integer (signed)" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="16384" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_EXCEL_SHEET_MIN_COL" VERSION="1" LANGU="E" DESCRIPT="2 byte integer (signed)" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_SPRAS_EN" VERSION="1" LANGU="E" DESCRIPT="Language Key" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="1" ATTVALUE="&apos;E&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SPRAS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_XLSX_FILE_FILTER" VERSION="1" LANGU="E" DESCRIPT="File filter" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;Excel Workbook (*.xlsx)|*.xlsx|&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="O_CONV" VERSION="1" LANGU="E" DESCRIPT="Code Page and Endian Conversion (System Format -&gt; External)" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_ABAP_CONV_OUT_CE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_DIFFERS" VERSION="1" LANGU="E" DESCRIPT="Ensure Difference Between 2 (Elementary) data Objects" EXPOSURE="2" STATE="1" EDITORDER="19 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_DIFFERS" SCONAME="EXP" VERSION="1" LANGU="E" DESCRIPT="Compare Object with Unexpected Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_DIFFERS" SCONAME="ACT" VERSION="1" LANGU="E" DESCRIPT="Data Object with Current Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_DIFFERS" SCONAME="MSG" VERSION="1" LANGU="E" DESCRIPT="Message in Case of Error" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_DIFFERS" SCONAME="LEVEL" VERSION="1" LANGU="E" DESCRIPT="Error Severity" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="AUNIT_LEVEL" PARVALUE="IF_AUNIT_CONSTANTS=&gt;CRITICAL"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_DIFFERS" SCONAME="TOL" VERSION="1" LANGU="E" DESCRIPT="Tolerance Range for Floating Point Numbers" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="F" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_DIFFERS" SCONAME="QUIT" VERSION="1" LANGU="E" DESCRIPT="Flow Control in Case of Error" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="AUNIT_FLOWCTRL" PARVALUE="IF_AUNIT_CONSTANTS=&gt;METHOD"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_DIFFERS" SCONAME="ASSERTION_FAILED" VERSION="1" LANGU="E" DESCRIPT="Condition not met" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<source>method ASSERT_DIFFERS.
DATA: ls_seoclass TYPE seoclass.
&quot; Let see &gt;=7.02
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = &apos;CL_ABAP_UNIT_ASSERT&apos;.
IF sy-subrc = 0.
CALL METHOD (ls_seoclass-clsname)=&gt;assert_differs
EXPORTING
exp = exp
act = act
msg = msg
level = level
tol = tol
quit = quit
RECEIVING
assertion_failed = assertion_failed.
ELSE.
&quot; Let see &gt;=7.00 or even lower
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = &apos;CL_AUNIT_ASSERT&apos;.
IF sy-subrc = 0.
CALL METHOD (ls_seoclass-clsname)=&gt;assert_differs
EXPORTING
exp = exp
act = act
msg = msg
level = level
tol = tol
quit = quit
RECEIVING
assertion_failed = assertion_failed.
ELSE.
* We do nothing for now not supported
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" VERSION="1" LANGU="E" DESCRIPT="Ensure Equality of Two Data Objects" EXPOSURE="2" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" SCONAME="EXP" VERSION="1" LANGU="E" DESCRIPT="Data Object with Expected Type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" SCONAME="ACT" VERSION="1" LANGU="E" DESCRIPT="Data Object with Current Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" SCONAME="MSG" VERSION="1" LANGU="E" DESCRIPT="Message in Case of Error" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" SCONAME="LEVEL" VERSION="1" LANGU="E" DESCRIPT="Error Severity" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="AUNIT_LEVEL" PARVALUE="IF_AUNIT_CONSTANTS=&gt;CRITICAL"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" SCONAME="TOL" VERSION="1" LANGU="E" DESCRIPT="Tolerance Range for Floating Point Numbers" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="F" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" SCONAME="QUIT" VERSION="1" LANGU="E" DESCRIPT="Flow Control in Case of Error" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="AUNIT_FLOWCTRL" PARVALUE="IF_AUNIT_CONSTANTS=&gt;METHOD"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" SCONAME="IGNORE_HASH_SEQUENCE" VERSION="1" LANGU="E" DESCRIPT="Ignore change sequence in hash tables" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_BOOL" PARVALUE="ABAP_FALSE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ASSERT_EQUALS" SCONAME="ASSERTION_FAILED" VERSION="1" LANGU="E" DESCRIPT="Condition not met" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<source>method ASSERT_EQUALS.
DATA: ls_seoclass TYPE seoclass.
&quot; Let see &gt;=7.02
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = &apos;CL_ABAP_UNIT_ASSERT&apos;.
IF sy-subrc = 0.
CALL METHOD (ls_seoclass-clsname)=&gt;assert_equals
EXPORTING
exp = exp
act = act
msg = msg
level = level
tol = tol
quit = quit
ignore_hash_sequence = ignore_hash_sequence
RECEIVING
assertion_failed = assertion_failed.
ELSE.
&quot; Let see &gt;=7.00 or even lower
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = &apos;CL_AUNIT_ASSERT&apos;.
IF sy-subrc = 0.
CALL METHOD (ls_seoclass-clsname)=&gt;assert_equals
EXPORTING
exp = exp
act = act
msg = msg
level = level
tol = tol
quit = quit
ignore_hash_sequence = ignore_hash_sequence
RECEIVING
assertion_failed = assertion_failed.
ELSE.
* We do nothing for now not supported
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CALCULATE_CELL_DISTANCE" VERSION="1" LANGU="E" DESCRIPT="Give distance between two cells" EXPOSURE="2" STATE="1" EDITORDER="21 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CALCULATE_CELL_DISTANCE" SCONAME="IV_REFERENCE_CELL" VERSION="1" LANGU="E" DESCRIPT="Reference Cell" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CALCULATE_CELL_DISTANCE" SCONAME="IV_CURRENT_CELL" VERSION="1" LANGU="E" DESCRIPT="Current Cell" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CALCULATE_CELL_DISTANCE" SCONAME="EV_ROW_DIFFERENCE" VERSION="1" LANGU="E" DESCRIPT="Number of rows current cell is below reference cell" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CALCULATE_CELL_DISTANCE" SCONAME="EV_COL_DIFFERENCE" VERSION="1" LANGU="E" DESCRIPT="Number of columns current cell is right of reference cell" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CALCULATE_CELL_DISTANCE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method CALCULATE_CELL_DISTANCE.
DATA: lv_reference_row TYPE i,
lv_reference_col_alpha TYPE zexcel_cell_column_alpha,
lv_reference_col TYPE i,
lv_current_row TYPE i,
lv_current_col_alpha TYPE zexcel_cell_column_alpha,
lv_current_col TYPE i.
*--------------------------------------------------------------------*
* Split reference cell into numerical row/column representation
*--------------------------------------------------------------------*
convert_columnrow2column_a_row( EXPORTING
i_columnrow = iv_reference_cell
IMPORTING
e_column = lv_reference_col_alpha
e_row = lv_reference_row ).
lv_reference_col = convert_column2int( lv_reference_col_alpha ).
*--------------------------------------------------------------------*
* Split current cell into numerical row/column representation
*--------------------------------------------------------------------*
convert_columnrow2column_a_row( EXPORTING
i_columnrow = iv_current_cell
IMPORTING
e_column = lv_current_col_alpha
e_row = lv_current_row ).
lv_current_col = convert_column2int( lv_current_col_alpha ).
*--------------------------------------------------------------------*
* Calculate row and column difference
* Positive: Current cell below reference cell
* or Current cell right of reference cell
* Negative: Current cell above reference cell
* or Current cell left of reference cell
*--------------------------------------------------------------------*
ev_row_difference = lv_current_row - lv_reference_row.
ev_col_difference = lv_current_col - lv_reference_col.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CHAR2HEX" VERSION="1" LANGU="E" DESCRIPT="Character to Hexadecimal" EXPOSURE="0" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CHAR2HEX" SCONAME="I_CHAR" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CHAR1"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CHAR2HEX" SCONAME="R_HEX" VERSION="1" LANGU="E" DESCRIPT="Password hash" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<source>method CHAR2HEX.
IF o_conv IS NOT BOUND.
o_conv = cl_abap_conv_out_ce=&gt;create( endian = &apos;L&apos;
ignore_cerr = abap_true
replacement = &apos;#&apos; ).
ENDIF.
CALL METHOD o_conv-&gt;reset( ).
CALL METHOD o_conv-&gt;write( data = i_char ).
r_hex+1 = o_conv-&gt;get_buffer( ). &quot; x&apos;65&apos; must be x&apos;0065&apos;
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2ALPHA" VERSION="1" LANGU="E" DESCRIPT="Convert column indicator to Alpha" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2ALPHA" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2ALPHA" SCONAME="EP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2ALPHA" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method CONVERT_COLUMN2ALPHA.
DATA: lv_uccpi TYPE i,
lv_text TYPE sychar02,
lv_module TYPE int4,
lv_column TYPE zexcel_cell_column.
* Propagate zcx_excel if error occurs &quot; issue #155 - less restrictive typing for ip_column
lv_column = convert_column2int( ip_column ). &quot; issue #155 - less restrictive typing for ip_column
*--------------------------------------------------------------------*
* Check whether column is in allowed range for EXCEL to handle ( 1-16384 )
*--------------------------------------------------------------------*
IF lv_column &gt; 16384
OR lv_column &lt; 1.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Index out of bounds&apos;.
ENDIF.
*--------------------------------------------------------------------*
* Build alpha representation of column
*--------------------------------------------------------------------*
WHILE lv_column GT 0.
lv_module = ( lv_column - 1 ) MOD 26.
lv_uccpi = 65 + lv_module.
lv_column = ( lv_column - lv_module ) / 26.
lv_text = cl_abap_conv_in_ce=&gt;uccpi( lv_uccpi ).
CONCATENATE lv_text ep_column INTO ep_column.
ENDWHILE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2INT" VERSION="1" LANGU="E" DESCRIPT="Convert column indicator to Integer" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2INT" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2INT" SCONAME="EP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2INT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method CONVERT_COLUMN2INT.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-12-29
* - ...
* changes: renaming variables to naming conventions
* removing unused variables
* removing commented out code that is inactive for more then half a year
* message made to support multilinguality
* adding comments to explain what we are trying to achieve
*--------------------------------------------------------------------*
* issue#246 - error converting lower case column names
* - Stefan Schmöcker, 2012-12-29
* changes: translating the correct variable to upper dase
* adding missing exception if input is a number
* that is out of bounds
* adding missing exception if input contains
* illegal characters like german umlauts
*--------------------------------------------------------------------*
DATA: lv_column TYPE zexcel_cell_column_alpha,
lv_column_c TYPE char10,
lv_column_s TYPE string,
lv_errormessage TYPE string, &quot; Can&apos;t pass &apos;...&apos;(abc) to exception-class
lv_modulo TYPE i.
*--------------------------------------------------------------------*
* This module tries to identify which column a user wants to access
* Numbers as input are just passed back, anything else will be converted
* using EXCEL nomenclatura A = 1, AA = 27, ..., XFD = 16384
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* Normalize input ( upper case , no gaps )
*--------------------------------------------------------------------*
lv_column_c = ip_column.
* TRANSLATE lv_column TO UPPER CASE. &quot; Fix #246
TRANSLATE lv_column_c TO UPPER CASE. &quot; Fix #246
CONDENSE lv_column_c NO-GAPS.
IF lv_column_c EQ &apos;&apos;.
* lv_errormessage = &apos;Unable to interpret input as column&apos;(003).
* RAISE EXCEPTION TYPE zcx_excel
* EXPORTING
* error = lv_errormessage.
MESSAGE e800(zabap2xlsx) INTO lv_errormessage.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
syst_at_raise = syst.
ENDIF.
*--------------------------------------------------------------------*
* If a number gets passed, just convert it to an integer and return
* the converted value
*--------------------------------------------------------------------*
TRY.
IF lv_column_c CO &apos;1234567890 &apos;. &quot; Fix #164
ep_column = lv_column_c. &quot; Fix #164
*--------------------------------------------------------------------*
* Maximum column for EXCEL: XFD = 16384 &quot; if anyone has a reference for this information - please add here instead of this comment
*--------------------------------------------------------------------*
IF ep_column &gt; 16384 OR ep_column &lt; 1.
lv_errormessage = &apos;Index out of bounds&apos;(004).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
EXIT.
ENDIF.
CATCH cx_sy_conversion_no_number. &quot;#EC NO_HANDLER
&quot; Try the character-approach if approach via number has failed
ENDTRY.
*--------------------------------------------------------------------*
* Raise error if unexpected characters turns up
*--------------------------------------------------------------------*
lv_column_s = lv_column_c.
IF lv_column_s CN sy-abcde.
* lv_errormessage = &apos;Unable to interpret input as column&apos;(003).
* RAISE EXCEPTION TYPE zcx_excel
* EXPORTING
* error = lv_errormessage.
MESSAGE e800(zabap2xlsx) INTO lv_errormessage.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
syst_at_raise = syst.
ENDIF.
*--------------------------------------------------------------------*
* Interpret input as number to base 26 with A=1, ... Z=26
* Raise error if unexpected character turns up
*--------------------------------------------------------------------*
* 1st character
*--------------------------------------------------------------------*
lv_column = lv_column_c.
lv_modulo = cl_abap_conv_out_ce=&gt;uccpi( lv_column+0(1) ) MOD zcl_excel_common=&gt;c_excel_col_module.
IF lv_modulo &lt; 1 OR lv_modulo &gt; 26.
* lv_errormessage = &apos;Unable to interpret input as column&apos;(003).
* RAISE EXCEPTION TYPE zcx_excel
* EXPORTING
* error = lv_errormessage.
MESSAGE e800(zabap2xlsx) INTO lv_errormessage.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
syst_at_raise = syst.
ENDIF.
ep_column = lv_modulo. &quot; Leftmost digit
*--------------------------------------------------------------------*
* 2nd character if present
*--------------------------------------------------------------------*
CHECK lv_column+1(1) IS NOT INITIAL. &quot; No need to continue if string ended
lv_modulo = cl_abap_conv_out_ce=&gt;uccpi( lv_column+1(1) ) MOD zcl_excel_common=&gt;c_excel_col_module.
IF lv_modulo &lt; 1 OR lv_modulo &gt; 26.
* lv_errormessage = &apos;Unable to interpret input as column&apos;(003).
* RAISE EXCEPTION TYPE zcx_excel
* EXPORTING
* error = lv_errormessage.
MESSAGE e800(zabap2xlsx) INTO lv_errormessage.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
syst_at_raise = syst.
ENDIF.
ep_column = 26 * ep_column + lv_modulo. &quot; if second digit is present first digit is for 26^1
*--------------------------------------------------------------------*
* 3rd character if present
*--------------------------------------------------------------------*
CHECK lv_column+2(1) IS NOT INITIAL. &quot; No need to continue if string ended
lv_modulo = cl_abap_conv_out_ce=&gt;uccpi( lv_column+2(1) ) MOD zcl_excel_common=&gt;c_excel_col_module.
IF lv_modulo &lt; 1 OR lv_modulo &gt; 26.
* lv_errormessage = &apos;Unable to interpret input as column&apos;(003).
* RAISE EXCEPTION TYPE zcx_excel
* EXPORTING
* error = lv_errormessage.
MESSAGE e800(zabap2xlsx) INTO lv_errormessage.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
syst_at_raise = syst.
ENDIF.
ep_column = 26 * ep_column + lv_modulo. &quot; if third digit is present first digit is for 26^2 and second digit for 26^1
*--------------------------------------------------------------------*
* Maximum column for EXCEL: XFD = 16384 &quot; if anyone has a reference for this information - please add here instead of this comment
*--------------------------------------------------------------------*
IF ep_column &gt; 16384 OR ep_column &lt; 1.
lv_errormessage = &apos;Index out of bounds&apos;(004).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMNROW2COLUMN_A_ROW" VERSION="1" LANGU="E" DESCRIPT="Convert ColumnRow i.e. AB34 to AB and 34" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMNROW2COLUMN_A_ROW" SCONAME="I_COLUMNROW" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMNROW2COLUMN_A_ROW" SCONAME="E_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMNROW2COLUMN_A_ROW" SCONAME="E_ROW" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<source>method CONVERT_COLUMNROW2COLUMN_A_ROW.
*--------------------------------------------------------------------*
&quot;issue #256 - replacing char processing with regex
*--------------------------------------------------------------------*
* Stefan Schmöcker, 2013-08-11
* Allow input to be CLIKE instead of STRING
*--------------------------------------------------------------------*
DATA: pane_cell_row_a TYPE string,
lv_columnrow type string.
lv_columnrow = i_columnrow. &quot; Get rid of trailing blanks
FIND REGEX &apos;^(\D+)(\d+)$&apos; IN lv_columnrow SUBMATCHES e_column
pane_cell_row_a.
e_row = pane_cell_row_a.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_RANGE2COLUMN_A_ROW" VERSION="1" LANGU="E" DESCRIPT="Converts Sheet1!AB34:CD56 to Sheet1, AB, 34, CD, 56" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_RANGE2COLUMN_A_ROW" SCONAME="I_RANGE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_RANGE2COLUMN_A_ROW" SCONAME="E_COLUMN_START" VERSION="1" LANGU="E" DESCRIPT="Cell Column Start" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_RANGE2COLUMN_A_ROW" SCONAME="E_COLUMN_END" VERSION="1" LANGU="E" DESCRIPT="Cell Column End" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_RANGE2COLUMN_A_ROW" SCONAME="E_ROW_START" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_RANGE2COLUMN_A_ROW" SCONAME="E_ROW_END" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_RANGE2COLUMN_A_ROW" SCONAME="E_SHEET" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_RANGE2COLUMN_A_ROW" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method CONVERT_RANGE2COLUMN_A_ROW.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-12-07
* - ...
* changes: renaming variables to naming conventions
* aligning code
* added exceptionclass
* added errorhandling for invalid range
* adding comments to explain what we are trying to achieve
*--------------------------------------------------------------------*
* issue#241 - error when sheetname contains &quot;!&quot;
* - sheetname should be returned unescaped
* - Stefan Schmöcker, 2012-12-07
* changes: changed coding to support sheetnames with &quot;!&quot;
* unescaping sheetname
*--------------------------------------------------------------------*
* issue#155 - lessening restrictions of input parameters
* - Stefan Schmöcker, 2012-12-07
* changes: i_range changed to clike
* e_sheet changed to clike
*--------------------------------------------------------------------*
DATA: lv_sheet TYPE string,
lv_range TYPE string,
lv_columnrow_start TYPE string,
lv_columnrow_end TYPE string,
lv_errormessage TYPE string. &quot; Can&apos;t pass &apos;...&apos;(abc) to exception-class
*--------------------------------------------------------------------*
* Split input range into sheetname and Area
* 4 cases - a) input empty --&gt; nothing to do
* - b) sheetname existing - starts with &apos; example &apos;Sheet 1&apos;!$B$6:$D$13
* - c) sheetname existing - does not start with &apos; example Sheet1!$B$6:$D$13
* - d) no sheetname - just area example $B$6:$D$13
*--------------------------------------------------------------------*
* Initialize output parameters
CLEAR: e_column_start,
e_column_end,
e_row_start,
e_row_end,
e_sheet.
IF i_range IS INITIAL. &quot; a) input empty --&gt; nothing to do
EXIT.
ELSEIF i_range(1) = `&apos;`. &quot; b) sheetname existing - starts with &apos;
FIND REGEX &apos;\![^\!]*$&apos; IN i_range MATCH OFFSET sy-fdpos. &quot; Find last !
IF sy-subrc = 0.
lv_sheet = i_range(sy-fdpos).
ADD 1 TO sy-fdpos.
lv_range = i_range.
SHIFT lv_range LEFT BY sy-fdpos PLACES.
ELSE.
lv_errormessage = &apos;Invalid range&apos;(001).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
ELSEIF i_range CS &apos;!&apos;. &quot; c) sheetname existing - does not start with &apos;
SPLIT i_range AT &apos;!&apos; INTO lv_sheet lv_range.
ELSE. &quot; d) no sheetname - just area
lv_range = i_range.
ENDIF.
REPLACE ALL OCCURRENCES OF &apos;$&apos; IN lv_range WITH &apos;&apos;.
SPLIT lv_range AT &apos;:&apos; INTO lv_columnrow_start lv_columnrow_end.
convert_columnrow2column_a_row( EXPORTING
i_columnrow = lv_columnrow_start
IMPORTING
e_column = e_column_start
e_row = e_row_start ).
convert_columnrow2column_a_row( EXPORTING
i_columnrow = lv_columnrow_end
IMPORTING
e_column = e_column_end
e_row = e_row_end ).
e_sheet = unescape_string( lv_sheet ). &quot; Return in unescaped form
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DATE_TO_EXCEL_STRING" VERSION="1" LANGU="E" DESCRIPT="Convert date from SAP format to Excel" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DATE_TO_EXCEL_STRING" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="D"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DATE_TO_EXCEL_STRING" SCONAME="EP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<source>method DATE_TO_EXCEL_STRING.
DATA: lv_date_diff TYPE i.
CHECK ip_value IS NOT INITIAL.
&quot; Needed hack caused by the problem that:
&quot; Excel 2000 incorrectly assumes that the year 1900 is a leap year
&quot; http://support.microsoft.com/kb/214326/en-us
IF ip_value &gt; c_excel_1900_leap_year.
lv_date_diff = ip_value - c_excel_baseline_date + 2.
ELSE.
lv_date_diff = ip_value - c_excel_baseline_date + 1.
ENDIF.
ep_value = zcl_excel_common=&gt;number_to_excel_string( ip_value = lv_date_diff ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DESCRIBE_STRUCTURE" VERSION="1" LANGU="E" DESCRIPT="Describe database info of structure" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DESCRIBE_STRUCTURE" SCONAME="IO_STRUCT" VERSION="1" LANGU="E" DESCRIPT="Runtime Type Services" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="CL_ABAP_STRUCTDESCR"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DESCRIBE_STRUCTURE" SCONAME="RT_DFIES" VERSION="1" LANGU="E" DESCRIPT="DD Interface: Table Fields for DDIF_FIELDINFO_GET" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="DDFIELDS"/>
<source>method DESCRIBE_STRUCTURE.
DATA: lt_components TYPE abap_component_tab,
lt_comps TYPE abap_component_tab,
lo_struct TYPE REF TO cl_abap_structdescr,
ls_component TYPE abap_componentdescr,
lo_elemdescr TYPE REF TO cl_abap_elemdescr,
ls_dfies TYPE dfies,
l_position TYPE tabfdpos.
&quot;for DDIC structure get the info directly
IF io_struct-&gt;is_ddic_type( ) = abap_true.
rt_dfies = io_struct-&gt;get_ddic_field_list( ).
ELSE.
lt_components = io_struct-&gt;get_components( ).
LOOP AT lt_components INTO ls_component.
structure_case( EXPORTING is_component = ls_component
CHANGING xt_components = lt_comps ) .
ENDLOOP.
LOOP AT lt_comps INTO ls_component.
CLEAR ls_dfies.
IF ls_component-type-&gt;kind = cl_abap_typedescr=&gt;kind_elem. &quot;E Elementary Type
ADD 1 TO l_position.
lo_elemdescr ?= ls_component-type.
IF lo_elemdescr-&gt;is_ddic_type( ) = abap_true.
ls_dfies = lo_elemdescr-&gt;get_ddic_field( ).
ls_dfies-fieldname = ls_component-name.
ls_dfies-position = l_position.
ELSE.
ls_dfies-fieldname = ls_component-name.
ls_dfies-position = l_position.
ls_dfies-inttype = lo_elemdescr-&gt;type_kind.
ls_dfies-leng = lo_elemdescr-&gt;length.
ls_dfies-outputlen = lo_elemdescr-&gt;length.
ls_dfies-decimals = lo_elemdescr-&gt;decimals.
ls_dfies-fieldtext = ls_component-name.
ls_dfies-reptext = ls_component-name.
ls_dfies-scrtext_s = ls_component-name.
ls_dfies-scrtext_m = ls_component-name.
ls_dfies-scrtext_l = ls_component-name.
ls_dfies-dynpfld = abap_true.
ENDIF.
INSERT ls_dfies INTO TABLE rt_dfies.
ENDIF.
ENDLOOP.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DETERMINE_RESULTING_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Determine formula if copied to another cell" EXPOSURE="2" STATE="1" EDITORDER="22 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DETERMINE_RESULTING_FORMULA" SCONAME="IV_REFERENCE_CELL" VERSION="1" LANGU="E" DESCRIPT="Reference cell" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DETERMINE_RESULTING_FORMULA" SCONAME="IV_REFERENCE_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Reference formula" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DETERMINE_RESULTING_FORMULA" SCONAME="IV_CURRENT_CELL" VERSION="1" LANGU="E" DESCRIPT="Current cell" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DETERMINE_RESULTING_FORMULA" SCONAME="EV_RESULTING_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Resulting formula" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="DETERMINE_RESULTING_FORMULA" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method DETERMINE_RESULTING_FORMULA.
DATA: lv_row_difference TYPE i,
lv_col_difference TYPE i.
*--------------------------------------------------------------------*
* Calculate distance of reference and current cell
*--------------------------------------------------------------------*
calculate_cell_distance( EXPORTING
iv_reference_cell = iv_reference_cell
iv_current_cell = iv_current_cell
IMPORTING
ev_row_difference = lv_row_difference
ev_col_difference = lv_col_difference ).
*--------------------------------------------------------------------*
* and shift formula by using the row- and columndistance
*--------------------------------------------------------------------*
ev_resulting_formula = shift_formula( iv_reference_formula = iv_reference_formula
iv_shift_rows = lv_row_difference
iv_shift_cols = lv_col_difference ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ENCRYPT_PASSWORD" VERSION="1" LANGU="E" DESCRIPT="Encrypt password" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ENCRYPT_PASSWORD" SCONAME="I_PWD" VERSION="1" LANGU="E" DESCRIPT="AES Password" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_AES_PASSWORD"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ENCRYPT_PASSWORD" SCONAME="R_ENCRYPTED_PWD" VERSION="1" LANGU="E" DESCRIPT="AES Password" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_AES_PASSWORD"/>
<source>method ENCRYPT_PASSWORD.
DATA lv_curr_offset TYPE i.
DATA lv_curr_char TYPE c LENGTH 1.
DATA lv_curr_hex TYPE zexcel_pwd_hash.
DATA lv_pwd_len TYPE zexcel_pwd_hash.
DATA lv_pwd_hash TYPE zexcel_pwd_hash.
CONSTANTS:
lv_0x7fff TYPE zexcel_pwd_hash VALUE &apos;7FFF&apos;,
lv_0x0001 TYPE zexcel_pwd_hash VALUE &apos;0001&apos;,
lv_0xce4b TYPE zexcel_pwd_hash VALUE &apos;CE4B&apos;.
DATA lv_pwd TYPE zexcel_aes_password.
lv_pwd = i_pwd(15).
lv_pwd_len = STRLEN( lv_pwd ).
lv_curr_offset = lv_pwd_len - 1.
WHILE lv_curr_offset GE 0.
lv_curr_char = lv_pwd+lv_curr_offset(1).
lv_curr_hex = char2hex( lv_curr_char ).
lv_pwd_hash = ( shr14( lv_pwd_hash ) BIT-AND lv_0x0001 ) BIT-OR ( shl01( lv_pwd_hash ) BIT-AND lv_0x7fff ).
lv_pwd_hash = lv_pwd_hash BIT-XOR lv_curr_hex.
SUBTRACT 1 FROM lv_curr_offset.
ENDWHILE.
lv_pwd_hash = ( shr14( lv_pwd_hash ) BIT-AND lv_0x0001 ) BIT-OR ( shl01( lv_pwd_hash ) BIT-AND lv_0x7fff ).
lv_pwd_hash = lv_pwd_hash BIT-XOR lv_0xce4b.
lv_pwd_hash = lv_pwd_hash BIT-XOR lv_pwd_len.
WRITE lv_pwd_hash TO r_encrypted_pwd.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ESCAPE_STRING" VERSION="1" LANGU="E" DESCRIPT="Escape a string" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ESCAPE_STRING" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ESCAPE_STRING" SCONAME="EP_ESCAPED_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method ESCAPE_STRING.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (done) 2012-12-08
* - ...
* changes: aligning code
* adding comments to explain what we are trying to achieve
*--------------------------------------------------------------------*
* issue#242 - Support escaping for white-spaces
* - Escaping also necessary when &apos; encountered in input
* - Stefan Schmöcker, 2012-12-08
* changes: switched check if escaping is necessary to regular expression
* and moved the &quot;REPLACE&quot;
*--------------------------------------------------------------------*
* issue#155 - lessening restrictions of input parameters
* - Stefan Schmöcker, 2012-12-08
* changes: ip_value changed to clike
*--------------------------------------------------------------------*
DATA: lv_value TYPE string.
*--------------------------------------------------------------------*
* There exist various situations when a space will be used to separate
* different parts of a string. When we have a string consisting spaces
* that will cause errors unless we &quot;escape&quot; the string by putting &apos; at
* the beginning and at the end of the string.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* When allowing clike-input parameters we might encounter trailing
* &quot;real&quot; blanks . These are automatically eliminated when moving
* the input parameter to a string.
* Now any remaining spaces ( white-spaces or normal spaces ) should
* trigger the escaping as well as any &apos;
*--------------------------------------------------------------------*
lv_value = ip_value.
FIND REGEX `\s|&apos;` IN lv_value. &quot; \s finds regular and white spaces
IF sy-subrc = 0.
REPLACE ALL OCCURRENCES OF `&apos;` IN lv_value WITH `&apos;&apos;`.
CONCATENATE `&apos;` lv_value `&apos;` INTO lv_value .
ENDIF.
ep_escaped_value = lv_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="EXCEL_STRING_TO_DATE" VERSION="1" LANGU="E" DESCRIPT="Convert date from Excel format to SAP" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="EXCEL_STRING_TO_DATE" SCONAME="IP_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_COMMON" CMPNAME="EXCEL_STRING_TO_DATE" SCONAME="EP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Date" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="D"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="EXCEL_STRING_TO_DATE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method EXCEL_STRING_TO_DATE.
DATA: lv_date_int TYPE i.
TRY.
lv_date_int = ip_value.
ep_value = lv_date_int + c_excel_baseline_date - 2.
&quot; Needed hack caused by the problem that:
&quot; Excel 2000 incorrectly assumes that the year 1900 is a leap year
&quot; http://support.microsoft.com/kb/214326/en-us
IF ep_value &lt; c_excel_1900_leap_year.
ep_value = ep_value + 1.
ENDIF.
CATCH cx_sy_conversion_error.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Index out of bounds&apos;.
ENDTRY.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="EXCEL_STRING_TO_TIME" VERSION="1" LANGU="E" DESCRIPT="Convert time from Excel format to SAP" EXPOSURE="2" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="EXCEL_STRING_TO_TIME" SCONAME="IP_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_COMMON" CMPNAME="EXCEL_STRING_TO_TIME" SCONAME="EP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Time" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="EXCEL_STRING_TO_TIME" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method EXCEL_STRING_TO_TIME.
DATA: lv_seconds_in_day TYPE i,
lv_day_fraction TYPE f,
lc_seconds_in_day TYPE i VALUE 86400.
TRY.
lv_day_fraction = ip_value.
lv_seconds_in_day = lv_day_fraction * lc_seconds_in_day.
ep_value = lv_seconds_in_day.
CATCH cx_sy_conversion_error.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Unable to interpret time&apos;.
ENDTRY.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="FAIL" VERSION="1" LANGU="E" DESCRIPT="Report Unconditional Error" EXPOSURE="2" STATE="1" EDITORDER="18 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="FAIL" SCONAME="MSG" VERSION="1" LANGU="E" DESCRIPT="Error Message" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="FAIL" SCONAME="LEVEL" VERSION="1" LANGU="E" DESCRIPT="Error Severity" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="AUNIT_LEVEL" PARVALUE="IF_AUNIT_CONSTANTS=&gt;CRITICAL"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="FAIL" SCONAME="QUIT" VERSION="1" LANGU="E" DESCRIPT="Flow Control in Case of Error" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="AUNIT_FLOWCTRL" PARVALUE="IF_AUNIT_CONSTANTS=&gt;METHOD"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="FAIL" SCONAME="DETAIL" VERSION="1" LANGU="E" DESCRIPT="Detailed Message" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE" PAROPTIONL="X"/>
<source>method FAIL.
DATA: ls_seoclass TYPE seoclass.
&quot; Let see &gt;=7.02
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = &apos;CL_ABAP_UNIT_ASSERT&apos;.
IF sy-subrc = 0.
CALL METHOD (ls_seoclass-clsname)=&gt;fail
EXPORTING
msg = msg
level = level
quit = quit
detail = detail.
ELSE.
&quot; Let see &gt;=7.00 or even lower
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = &apos;CL_AUNIT_ASSERT&apos;.
IF sy-subrc = 0.
CALL METHOD (ls_seoclass-clsname)=&gt;fail
EXPORTING
msg = msg
level = level
quit = quit
detail = detail.
ELSE.
* We do nothing for now not supported
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="GET_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Creates field catalog for BIND_TABLE based on internal table" EXPOSURE="2" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="GET_FIELDCATALOG" SCONAME="IP_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="GET_FIELDCATALOG" SCONAME="EP_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Table binding field catalog" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_T_FIELDCATALOG"/>
<source>method GET_FIELDCATALOG.
DATA: lr_dref_tab TYPE REF TO data,
lo_salv_table TYPE REF TO cl_salv_table,
lo_salv_columns_table TYPE REF TO cl_salv_columns_table,
lt_salv_t_column_ref TYPE salv_t_column_ref,
ls_salv_t_column_ref LIKE LINE OF lt_salv_t_column_ref,
lo_salv_column_table TYPE REF TO cl_salv_column_table.
FIELD-SYMBOLS: &lt;tab&gt; TYPE STANDARD TABLE.
FIELD-SYMBOLS: &lt;fcat&gt; LIKE LINE OF ep_fieldcatalog.
* Get copy of IP_TABLE-structure &lt;-- must be changeable to create salv
CREATE DATA lr_dref_tab LIKE ip_table.
ASSIGN lr_dref_tab-&gt;* TO &lt;tab&gt;.
* Create salv --&gt; implicitly create fieldcat
TRY.
cl_salv_table=&gt;factory( IMPORTING
r_salv_table = lo_salv_table
CHANGING
t_table = &lt;tab&gt; ).
lo_salv_columns_table = lo_salv_table-&gt;get_columns( ).
lt_salv_t_column_ref = lo_salv_columns_table-&gt;get( ).
CATCH cx_root.
* maybe some errorhandling here - just haven&apos;t made up my mind yet
ENDTRY.
* Loop through columns and set relevant fields ( fieldname, texts )
LOOP AT lt_salv_t_column_ref INTO ls_salv_t_column_ref.
lo_salv_column_table ?= ls_salv_t_column_ref-r_column.
APPEND INITIAL LINE TO ep_fieldcatalog ASSIGNING &lt;fcat&gt;.
&lt;fcat&gt;-position = sy-tabix.
&lt;fcat&gt;-fieldname = ls_salv_t_column_ref-columnname.
&lt;fcat&gt;-scrtext_s = ls_salv_t_column_ref-r_column-&gt;get_short_text( ).
&lt;fcat&gt;-scrtext_m = ls_salv_t_column_ref-r_column-&gt;get_medium_text( ).
&lt;fcat&gt;-scrtext_l = ls_salv_t_column_ref-r_column-&gt;get_long_text( ).
&lt;fcat&gt;-dynpfld = &apos;X&apos;. &quot; What in the world would we exclude here?
IF &lt;fcat&gt;-position = 1. &quot; except for the MANDT-field of most tables ( 1st column that is )
IF lo_salv_column_table-&gt;get_ddic_datatype( ) = &apos;CLNT&apos;.
CLEAR &lt;fcat&gt;-dynpfld.
ENDIF.
ENDIF.
* For fields that don&apos;t a description ( i.e. defined by &quot;field type i,&quot; )
* just use the fieldname as description - that is better than nothing
IF &lt;fcat&gt;-scrtext_s IS INITIAL
AND &lt;fcat&gt;-scrtext_m IS INITIAL
AND &lt;fcat&gt;-scrtext_l IS INITIAL.
CONCATENATE &apos;Col:&apos; &lt;fcat&gt;-fieldname INTO &lt;fcat&gt;-scrtext_l SEPARATED BY space.
&lt;fcat&gt;-scrtext_m = &lt;fcat&gt;-scrtext_l.
&lt;fcat&gt;-scrtext_s = &lt;fcat&gt;-scrtext_l.
ENDIF.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="NUMBER_TO_EXCEL_STRING" VERSION="1" LANGU="E" DESCRIPT="Converts number to string representation in Excel format" EXPOSURE="2" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="NUMBER_TO_EXCEL_STRING" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="NUMERIC"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="NUMBER_TO_EXCEL_STRING" SCONAME="EP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<source>method NUMBER_TO_EXCEL_STRING.
DATA: lv_value_c TYPE c LENGTH 100.
WRITE ip_value TO lv_value_c EXPONENT 0 NO-GROUPING NO-SIGN.
REPLACE ALL OCCURRENCES OF &apos;,&apos; IN lv_value_c WITH &apos;.&apos;.
ep_value = lv_value_c.
CONDENSE ep_value.
IF ip_value &lt; 0.
CONCATENATE &apos;-&apos; ep_value INTO ep_value.
ELSEIF ip_value EQ 0.
ep_value = &apos;0&apos;.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="RECURSIVE_CLASS_TO_STRUCT" VERSION="1" LANGU="E" DESCRIPT="Move class to structure" EXPOSURE="2" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="RECURSIVE_CLASS_TO_STRUCT" SCONAME="I_SOURCE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="RECURSIVE_CLASS_TO_STRUCT" SCONAME="E_TARGET" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="DATA"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="RECURSIVE_CLASS_TO_STRUCT" SCONAME="E_TARGETX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="DATA"/>
<source>method RECURSIVE_CLASS_TO_STRUCT.
&quot; # issue 139
* is working for me - but after looking through this coding I guess
* I&apos;ll rewrite this to a version w/o recursion
* This is private an no one using it so far except me, so no need to hurry
DATA: descr TYPE REF TO cl_abap_structdescr,
wa_component LIKE LINE OF descr-&gt;components,
attribute_name TYPE fieldname,
flag_class TYPE flag,
o_border TYPE REF TO zcl_excel_style_border.
FIELD-SYMBOLS: &lt;field&gt; TYPE any,
&lt;fieldx&gt; TYPE any,
&lt;class&gt; TYPE REF TO object,
&lt;attribute&gt; TYPE any.
descr ?= cl_abap_structdescr=&gt;describe_by_data( e_target ).
LOOP AT descr-&gt;components INTO wa_component.
* Assign structure and X-structure
ASSIGN COMPONENT wa_component-name OF STRUCTURE e_target TO &lt;field&gt;.
ASSIGN COMPONENT wa_component-name OF STRUCTURE e_targetx TO &lt;fieldx&gt;.
* At least one field in the structure should be marked - otherwise continue with next field
CLEAR flag_class.
* maybe source is just a structure - try assign component...
ASSIGN COMPONENT wa_component-name OF STRUCTURE i_source TO &lt;attribute&gt;.
IF sy-subrc &lt;&gt; 0.
* not - then it is an attribute of the class - use different assign then
CONCATENATE &apos;i_source-&gt;&apos; wa_component-name INTO attribute_name.
ASSIGN (attribute_name) TO &lt;attribute&gt;.
IF sy-subrc &lt;&gt; 0.
EXIT.
ENDIF. &quot; Should not happen if structure is built properly - otherwise just exit to create no dumps
flag_class = abap_true.
ENDIF.
CASE wa_component-type_kind.
WHEN cl_abap_structdescr=&gt;typekind_struct1 OR cl_abap_structdescr=&gt;typekind_struct2. &quot; Structure --&gt; use recursio
* IF flag_class = abap_true.
** Only borders will be passed as unbound references. But since we want to set a value we have to create an instance
* ENDIF.
zcl_excel_common=&gt;recursive_class_to_struct( EXPORTING i_source = &lt;attribute&gt;
CHANGING e_target = &lt;field&gt;
e_targetx = &lt;fieldx&gt; ).
WHEN OTHERS.
&lt;field&gt; = &lt;attribute&gt;.
&lt;fieldx&gt; = abap_true.
ENDCASE.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="RECURSIVE_STRUCT_TO_CLASS" VERSION="1" LANGU="E" DESCRIPT="Move structure to class" EXPOSURE="2" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="RECURSIVE_STRUCT_TO_CLASS" SCONAME="I_SOURCE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="DATA"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="RECURSIVE_STRUCT_TO_CLASS" SCONAME="I_SOURCEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="DATA"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="RECURSIVE_STRUCT_TO_CLASS" SCONAME="E_TARGET" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
<source>method RECURSIVE_STRUCT_TO_CLASS.
&quot; # issue 139
* is working for me - but after looking through this coding I guess
* I&apos;ll rewrite this to a version w/o recursion
* This is private an no one using it so far except me, so no need to hurry
DATA: descr TYPE REF TO cl_abap_structdescr,
wa_component LIKE LINE OF descr-&gt;components,
attribute_name TYPE fieldname,
flag_class TYPE flag,
o_border TYPE REF TO zcl_excel_style_border.
FIELD-SYMBOLS: &lt;field&gt; TYPE any,
&lt;fieldx&gt; TYPE any,
&lt;class&gt; TYPE REF TO object,
&lt;attribute&gt; TYPE any,
&lt;attribute_s&gt; TYPE ANY TABLE.
descr ?= cl_abap_structdescr=&gt;describe_by_data( i_source ).
LOOP AT descr-&gt;components INTO wa_component.
* Assign structure and X-structure
ASSIGN COMPONENT wa_component-name OF STRUCTURE i_source TO &lt;field&gt;.
ASSIGN COMPONENT wa_component-name OF STRUCTURE i_sourcex TO &lt;fieldx&gt;.
* At least one field in the structure should be marked - otherwise continue with next field
CHECK &lt;fieldx&gt; CA abap_true.
CLEAR flag_class.
* maybe target is just a structure - try assign component...
ASSIGN COMPONENT wa_component-name OF STRUCTURE e_target TO &lt;attribute&gt;.
IF sy-subrc &lt;&gt; 0.
* not - then it is an attribute of the class - use different assign then
CONCATENATE &apos;E_TARGET-&gt;&apos; wa_component-name INTO attribute_name.
ASSIGN (attribute_name) TO &lt;attribute&gt;.
IF sy-subrc &lt;&gt; 0.EXIT.ENDIF. &quot; Should not happen if structure is built properly - otherwise just exit to create no dumps
flag_class = abap_true.
ENDIF.
CASE wa_component-type_kind.
WHEN cl_abap_structdescr=&gt;typekind_struct1 OR cl_abap_structdescr=&gt;typekind_struct2. &quot; Structure --&gt; use recursion
IF flag_class = abap_true AND &lt;attribute&gt; IS INITIAL.
* Only borders will be passed as unbound references. But since we want to set a value we have to create an instance
CREATE OBJECT o_border.
&lt;attribute&gt; = o_border.
ENDIF.
zcl_excel_common=&gt;recursive_struct_to_class( EXPORTING i_source = &lt;field&gt;
i_sourcex = &lt;fieldx&gt;
CHANGING e_target = &lt;attribute&gt; ).
* WHEN cl_abap_structdescr=&gt;typekind_struct2. &quot; String
* CHECK &lt;fieldx&gt; = abap_true. &quot; Marked for change
* &lt;attribute_s&gt; = &lt;field&gt;.
WHEN OTHERS.
CHECK &lt;fieldx&gt; = abap_true. &quot; Marked for change
&lt;attribute&gt; = &lt;field&gt;.
ENDCASE.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHIFT_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Shift formula from one cell to another" EXPOSURE="2" STATE="1" EDITORDER="23 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHIFT_FORMULA" SCONAME="IV_REFERENCE_FORMULA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHIFT_FORMULA" SCONAME="IV_SHIFT_COLS" VERSION="1" LANGU="E" DESCRIPT="Shift formula right by this many columns" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHIFT_FORMULA" SCONAME="IV_SHIFT_ROWS" VERSION="1" LANGU="E" DESCRIPT="Shift formula down by this many rows" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHIFT_FORMULA" SCONAME="EV_RESULTING_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Resulting formula" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHIFT_FORMULA" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SHIFT_FORMULA.
CONSTANTS: lcv_operators TYPE string VALUE &apos;+-/*^%=&lt;&gt;&amp;, !&apos;,
lcv_letters TYPE string VALUE &apos;ABCDEFGHIJKLMNOPQRSTUVWXYZ$&apos;,
lcv_digits TYPE string VALUE &apos;0123456789&apos;,
lcv_cell_reference_error TYPE string VALUE &apos;#REF!&apos;.
DATA: lv_tcnt TYPE i, &quot; Counter variable
lv_tlen TYPE i, &quot; Temp variable length
lv_cnt TYPE i, &quot; Counter variable
lv_cnt2 TYPE i, &quot; Counter variable
lv_offset1 TYPE i, &quot; Character offset
lv_numchars TYPE i, &quot; Number of characters counter
lv_tchar(1) TYPE c, &quot; Temp character
lv_tchar2(1) TYPE c, &quot; Temp character
lv_cur_form(132) TYPE c, &quot; Formula for current cell
lv_ref_cell_addr TYPE string, &quot; Reference cell address
lv_tcol1 TYPE string, &quot; Temp column letter
lv_tcol2 TYPE string, &quot; Temp column letter
lv_tcoln TYPE i, &quot; Temp column number
lv_trow1 TYPE string, &quot; Temp row number
lv_trow2 TYPE string, &quot; Temp row number
lv_flen TYPE i, &quot; Length of reference formula
lv_tlen2 TYPE i, &quot; Temp variable length
lv_substr1 TYPE string, &quot; Substring variable
lv_abscol TYPE string, &quot; Absolute column symbol
lv_absrow TYPE string, &quot; Absolute row symbol
lv_errormessage TYPE string.
FIELD-SYMBOLS: &lt;find_my_include&gt; TYPE ANY.
*--------------------------------------------------------------------*
* When copying a cell in EXCEL to another cell any inherent formulas
* are copied as well. Cell-references in the formula are being adjusted
* by the distance of the new cell to the original one
*--------------------------------------------------------------------*
* §1 Parse reference formula character by character
* §2 Identify Cell-references
* §3 Shift cell-reference
* §4 Build resulting formula
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* No distance --&gt; Reference = resulting cell/formula
*--------------------------------------------------------------------*
IF iv_shift_cols = 0
AND iv_shift_rows = 0.
ev_resulting_formula = iv_reference_formula.
EXIT. &quot; done
ENDIF.
lv_flen = STRLEN( iv_reference_formula ).
lv_numchars = 1.
*--------------------------------------------------------------------*
* §1 Parse reference formula character by character
*--------------------------------------------------------------------*
DO lv_flen TIMES.
CLEAR: lv_tchar,
lv_substr1,
lv_ref_cell_addr.
lv_cnt2 = lv_cnt + 1.
IF lv_cnt2 &gt; lv_flen.
EXIT. &quot; Done
ENDIF.
*--------------------------------------------------------------------*
* Here we have the current character in the formula
*--------------------------------------------------------------------*
lv_tchar = iv_reference_formula+lv_cnt(1).
*--------------------------------------------------------------------*
* Operators or opening parenthesis will separate possible cellreferences
*--------------------------------------------------------------------*
IF ( lv_tchar CA lcv_operators
OR lv_tchar CA &apos;(&apos; )
AND lv_cnt2 = 1.
lv_substr1 = iv_reference_formula+lv_offset1(1).
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
lv_offset1 = lv_cnt.
lv_numchars = 1.
CONTINUE. &quot; --&gt; next character in formula can be analyzed
ENDIF.
*--------------------------------------------------------------------*
* Quoted literal text holds no cell reference --&gt; advance to end of text
*--------------------------------------------------------------------*
IF lv_tchar EQ &apos;&quot;&apos;.
lv_cnt = lv_cnt + 1.
lv_numchars = lv_numchars + 1.
lv_tchar = iv_reference_formula+lv_cnt(1).
WHILE lv_tchar NE &apos;&quot;&apos;.
lv_cnt = lv_cnt + 1.
lv_numchars = lv_numchars + 1.
lv_tchar = iv_reference_formula+lv_cnt(1).
ENDWHILE.
lv_cnt2 = lv_cnt + 1.
lv_substr1 = iv_reference_formula+lv_offset1(lv_numchars).
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
IF lv_cnt = lv_flen.
EXIT.
ENDIF.
lv_offset1 = lv_cnt.
lv_numchars = 1.
lv_tchar = iv_reference_formula+lv_cnt(1).
lv_cnt2 = lv_cnt + 1.
CONTINUE. &quot; --&gt; next character in formula can be analyzed
ENDIF.
*--------------------------------------------------------------------*
* Operators or parenthesis or last character in formula will separate possible cellreferences
*--------------------------------------------------------------------*
IF lv_tchar CA lcv_operators
OR lv_tchar CA &apos;():&apos;
OR lv_cnt2 = lv_flen.
IF lv_cnt &gt; 0.
lv_substr1 = iv_reference_formula+lv_offset1(lv_numchars).
*--------------------------------------------------------------------*
* Check for text concatenation and functions
*--------------------------------------------------------------------*
IF ( lv_tchar CA lcv_operators AND lv_tchar EQ lv_substr1 ) OR lv_tchar EQ &apos;(&apos;.
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
lv_offset1 = lv_cnt.
lv_cnt2 = lv_cnt + 1.
lv_numchars = 1.
CONTINUE. &quot; --&gt; next character in formula can be analyzed
ENDIF.
lv_tlen = lv_cnt2 - lv_offset1.
*--------------------------------------------------------------------*
* Exclude mathematical operators and closing parentheses
*--------------------------------------------------------------------*
IF lv_tchar CA lcv_operators
OR lv_tchar CA &apos;:)&apos;.
IF lv_cnt2 = lv_flen
AND lv_numchars = 1.
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
lv_offset1 = lv_cnt.
lv_cnt2 = lv_cnt + 1.
lv_numchars = 1.
CONTINUE. &quot; --&gt; next character in formula can be analyzed
ELSE.
lv_tlen = lv_tlen - 1.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
* Capture reference cell address
*--------------------------------------------------------------------*
TRY.
MOVE: iv_reference_formula+lv_offset1(lv_tlen) TO lv_ref_cell_addr. &quot;Ref cell address
CATCH cx_root.
lv_errormessage = &apos;Internal error in Class ZCL_EXCEL_COMMON Method SHIFT_FORMULA Spot 1 &apos;. &quot; Change to messageclass if possible
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDTRY.
*--------------------------------------------------------------------*
* Split cell address into characters and numbers
*--------------------------------------------------------------------*
CLEAR: lv_tlen,
lv_tcnt,
lv_tcol1,
lv_trow1.
lv_tlen = STRLEN( lv_ref_cell_addr ).
IF lv_tlen &lt;&gt; 0.
CLEAR: lv_tcnt.
DO lv_tlen TIMES.
CLEAR: lv_tchar2.
lv_tchar2 = lv_ref_cell_addr+lv_tcnt(1).
IF lv_tchar2 CA lcv_letters.
CONCATENATE lv_tcol1 lv_tchar2 INTO lv_tcol1.
ELSEIF lv_tchar2 CA lcv_digits.
CONCATENATE lv_trow1 lv_tchar2 INTO lv_trow1.
ENDIF.
lv_tcnt = lv_tcnt + 1.
ENDDO.
ENDIF.
*--------------------------------------------------------------------*
* Check for invalid cell address
*--------------------------------------------------------------------*
IF lv_tcol1 IS INITIAL OR lv_trow1 IS INITIAL.
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
lv_offset1 = lv_cnt.
lv_cnt2 = lv_cnt + 1.
lv_numchars = 1.
CONTINUE.
ENDIF.
*--------------------------------------------------------------------*
* Check for range names
*--------------------------------------------------------------------*
CLEAR: lv_tlen.
lv_tlen = STRLEN( lv_tcol1 ).
IF lv_tlen GT 3.
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
lv_offset1 = lv_cnt.
lv_cnt2 = lv_cnt + 1.
lv_numchars = 1.
CONTINUE.
ENDIF.
*--------------------------------------------------------------------*
* Check for valid row
*--------------------------------------------------------------------*
IF lv_trow1 GT 1048576.
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
lv_offset1 = lv_cnt.
lv_cnt2 = lv_cnt + 1.
lv_numchars = 1.
CONTINUE.
ENDIF.
*--------------------------------------------------------------------*
* Check for absolute column or row reference
*--------------------------------------------------------------------*
CLEAR: lv_tcol2,
lv_trow2,
lv_abscol,
lv_absrow.
lv_tlen2 = STRLEN( lv_tcol1 ) - 1.
IF lv_tcol1 IS NOT INITIAL.
lv_abscol = lv_tcol1(1).
ENDIF.
IF lv_tlen2 GE 0.
lv_absrow = lv_tcol1+lv_tlen2(1).
ENDIF.
IF lv_abscol EQ &apos;$&apos; AND lv_absrow EQ &apos;$&apos;.
lv_tlen2 = lv_tlen2 - 1.
IF lv_tlen2 &gt; 0.
lv_tcol1 = lv_tcol1+1(lv_tlen2).
ENDIF.
lv_tlen2 = lv_tlen2 + 1.
ELSEIF lv_abscol EQ &apos;$&apos;.
lv_tcol1 = lv_tcol1+1(lv_tlen2).
ELSEIF lv_absrow EQ &apos;$&apos;.
lv_tcol1 = lv_tcol1(lv_tlen2).
ENDIF.
*--------------------------------------------------------------------*
* Check for valid column
*--------------------------------------------------------------------*
TRY.
lv_tcoln = zcl_excel_common=&gt;convert_column2int( lv_tcol1 ) + iv_shift_cols.
CATCH zcx_excel.
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
lv_offset1 = lv_cnt.
lv_cnt2 = lv_cnt + 1.
lv_numchars = 1.
CONTINUE.
ENDTRY.
*--------------------------------------------------------------------*
* Check whether there is a referencing problem
*--------------------------------------------------------------------*
lv_trow2 = lv_trow1 + iv_shift_rows.
IF ( lv_tcoln &lt; 1 AND lv_abscol &lt;&gt; &apos;$&apos; ) &quot; Maybe we should add here max-column and max row-tests as well.
OR ( lv_trow2 &lt; 1 AND lv_absrow &lt;&gt; &apos;$&apos; ). &quot; Check how EXCEL behaves in this case
*--------------------------------------------------------------------*
* Referencing problem encountered --&gt; set error
*--------------------------------------------------------------------*
CONCATENATE lv_cur_form lcv_cell_reference_error INTO lv_cur_form.
ELSE.
*--------------------------------------------------------------------*
* No referencing problems --&gt; adjust row and column
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* Adjust column
*--------------------------------------------------------------------*
IF lv_abscol EQ &apos;$&apos;.
CONCATENATE lv_cur_form lv_abscol lv_tcol1 INTO lv_cur_form.
ELSEIF iv_shift_cols EQ 0.
CONCATENATE lv_cur_form lv_tcol1 INTO lv_cur_form.
ELSE.
TRY.
lv_tcol2 = zcl_excel_common=&gt;convert_column2alpha( lv_tcoln ).
CONCATENATE lv_cur_form lv_tcol2 INTO lv_cur_form.
CATCH zcx_excel.
CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form.
lv_cnt = lv_cnt + 1.
lv_offset1 = lv_cnt.
lv_cnt2 = lv_cnt + 1.
lv_numchars = 1.
CONTINUE.
ENDTRY.
ENDIF.
*--------------------------------------------------------------------*
* Adjust row
*--------------------------------------------------------------------*
IF lv_absrow EQ &apos;$&apos;.
CONCATENATE lv_cur_form lv_absrow lv_trow1 INTO lv_cur_form.
ELSEIF iv_shift_rows = 0.
CONCATENATE lv_cur_form lv_trow1 INTO lv_cur_form.
* elseif lv_trow2 &lt; 1.
* CONCATENATE lv_cur_form lc_cell_reference_error INTO lv_cur_form.
ELSE.
CONCATENATE lv_cur_form lv_trow2 INTO lv_cur_form.
ENDIF.
ENDIF.
lv_numchars = 0.
IF lv_tchar CA lcv_operators
OR lv_tchar CA &apos;:)&apos;.
CONCATENATE lv_cur_form lv_tchar INTO lv_cur_form.
ENDIF.
lv_offset1 = lv_cnt2.
ENDIF.
ENDIF.
lv_numchars = lv_numchars + 1.
lv_cnt = lv_cnt + 1.
lv_cnt2 = lv_cnt + 1.
ENDDO.
*--------------------------------------------------------------------*
* Return resulting formula
*--------------------------------------------------------------------*
IF lv_cur_form IS NOT INITIAL.
MOVE lv_cur_form TO ev_resulting_formula.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHL01" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHL01" SCONAME="I_PWD_HASH" VERSION="1" LANGU="E" DESCRIPT="Password hash" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHL01" SCONAME="R_PWD_HASH" VERSION="1" LANGU="E" DESCRIPT="Password hash" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<source>method SHL01.
DATA:
lv_bit TYPE i,
lv_curr_pos TYPE i VALUE 2,
lv_prev_pos TYPE i VALUE 1.
DO 15 TIMES.
GET BIT lv_curr_pos OF i_pwd_hash INTO lv_bit.
SET BIT lv_prev_pos OF r_pwd_hash TO lv_bit.
ADD 1 TO lv_curr_pos.
ADD 1 TO lv_prev_pos.
ENDDO.
SET BIT 16 OF r_pwd_hash TO 0.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHR14" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHR14" SCONAME="I_PWD_HASH" VERSION="1" LANGU="E" DESCRIPT="Password hash" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHR14" SCONAME="R_PWD_HASH" VERSION="1" LANGU="E" DESCRIPT="Password hash" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<source>method SHR14.
DATA:
lv_bit TYPE i,
lv_curr_pos TYPE i,
lv_next_pos TYPE i.
r_pwd_hash = i_pwd_hash.
DO 14 TIMES.
lv_curr_pos = 15.
lv_next_pos = 16.
DO 15 TIMES.
GET BIT lv_curr_pos OF r_pwd_hash INTO lv_bit.
SET BIT lv_next_pos OF r_pwd_hash TO lv_bit.
SUBTRACT 1 FROM lv_curr_pos.
SUBTRACT 1 FROM lv_next_pos.
ENDDO.
SET BIT 1 OF r_pwd_hash TO 0.
ENDDO.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SPLIT_FILE" VERSION="1" LANGU="E" DESCRIPT="File &amp; Extension disconnect (clone of FM CV120_SPLIT_FILE)" EXPOSURE="2" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SPLIT_FILE" SCONAME="IP_FILE" VERSION="1" LANGU="E" DESCRIPT="Original of document" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="TEXT255"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SPLIT_FILE" SCONAME="EP_FILE" VERSION="1" LANGU="E" DESCRIPT="Dateiname ohne Extension" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="TEXT255"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SPLIT_FILE" SCONAME="EP_EXTENSION" VERSION="1" LANGU="E" DESCRIPT="Dateiextension (ohne .)" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="CHAR10"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SPLIT_FILE" SCONAME="EP_DOTEXTENSION" VERSION="1" LANGU="E" DESCRIPT="Dateiextension (mit .)" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="CHAR10"/>
<source>method SPLIT_FILE.
DATA: lt_hlp TYPE TABLE OF text255,
ls_hlp TYPE text255.
DATA: lf_ext(10) TYPE c,
lf_dot_ext(10) TYPE c.
DATA: lf_str TYPE text255,
lf_anz TYPE i,
lf_len TYPE i.
** ---------------------------------------------------------------------
CLEAR: lt_hlp,
ep_file,
ep_extension,
ep_dotextension.
** Split the whole file at &apos;.&apos;
SPLIT ip_file AT &apos;.&apos; INTO TABLE lt_hlp.
** get the extenstion from the last line of table
DESCRIBE TABLE lt_hlp LINES lf_anz.
IF lf_anz &lt;= 1.
ep_file = ip_file.
EXIT.
ENDIF.
READ TABLE lt_hlp INTO ls_hlp INDEX lf_anz.
ep_extension = ls_hlp.
lf_ext = ls_hlp.
IF NOT lf_ext IS INITIAL.
CONCATENATE &apos;.&apos; lf_ext INTO lf_dot_ext.
ENDIF.
ep_dotextension = lf_dot_ext.
** get only the filename
lf_len = strlen( ip_file ) - strlen( lf_dot_ext ).
IF lf_len &gt; 0.
ep_file = ip_file(lf_len).
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="STRUCTURE_CASE" VERSION="1" LANGU="E" DESCRIPT="Case stement for recursive" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="STRUCTURE_CASE" SCONAME="IS_COMPONENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_COMPONENTDESCR"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="STRUCTURE_CASE" SCONAME="XT_COMPONENTS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_COMPONENT_TAB"/>
<source>method STRUCTURE_CASE.
DATA: lt_comp_str TYPE abap_component_tab.
CASE is_component-type-&gt;kind.
WHEN cl_abap_typedescr=&gt;kind_elem. &quot;E Elementary Type
INSERT is_component INTO TABLE xt_components.
WHEN cl_abap_typedescr=&gt;kind_table. &quot;T Table
INSERT is_component INTO TABLE xt_components.
WHEN cl_abap_typedescr=&gt;kind_struct. &quot;S Structure
lt_comp_str = structure_recursive( is_component = is_component ).
INSERT LINES OF lt_comp_str INTO TABLE xt_components.
WHEN OTHERS. &quot;cl_abap_typedescr=&gt;kind_ref or cl_abap_typedescr=&gt;kind_class or cl_abap_typedescr=&gt;kind_intf.
* We skip it. for now.
ENDCASE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="STRUCTURE_RECURSIVE" VERSION="1" LANGU="E" DESCRIPT="Get structure details" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="STRUCTURE_RECURSIVE" SCONAME="IS_COMPONENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_COMPONENTDESCR"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="STRUCTURE_RECURSIVE" SCONAME="RT_COMPONENTS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_COMPONENT_TAB"/>
<source>method STRUCTURE_RECURSIVE.
DATA: lo_struct TYPE REF TO cl_abap_structdescr,
lt_components TYPE abap_component_tab,
ls_components TYPE abap_componentdescr.
REFRESH rt_components.
lo_struct ?= is_component-type.
lt_components = lo_struct-&gt;get_components( ).
LOOP AT lt_components INTO ls_components.
structure_case( EXPORTING is_component = ls_components
CHANGING xt_components = rt_components ) .
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="TIME_TO_EXCEL_STRING" VERSION="1" LANGU="E" DESCRIPT="Convert time from SAP format to Excel" EXPOSURE="2" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="TIME_TO_EXCEL_STRING" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="T"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="TIME_TO_EXCEL_STRING" SCONAME="EP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<source>method TIME_TO_EXCEL_STRING.
DATA: lv_seconds_in_day TYPE i,
lv_day_fraction TYPE f,
lc_time_baseline TYPE t VALUE &apos;000000&apos;,
lc_seconds_in_day TYPE i VALUE 86400.
lv_seconds_in_day = ip_value - lc_time_baseline.
lv_day_fraction = lv_seconds_in_day / lc_seconds_in_day.
ep_value = zcl_excel_common=&gt;number_to_excel_string( ip_value = lv_day_fraction ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="UNESCAPE_STRING" VERSION="1" LANGU="E" DESCRIPT="Unescape" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="UNESCAPE_STRING" SCONAME="IV_ESCAPED" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="UNESCAPE_STRING" SCONAME="EV_UNESCAPED_STRING" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<exception CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="UNESCAPE_STRING" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method UNESCAPE_STRING.
CONSTANTS lcv_regex TYPE string VALUE `^&apos;[^&apos;]` &amp; `|` &amp; &quot; Beginning single &apos; OR
`[^&apos;]&apos;$` &amp; `|` &amp; &quot; Trailing single &apos; OR
`[^&apos;]&apos;[^&apos;]`. &quot; Single &apos; somewhere in between
DATA: lv_errormessage TYPE string. &quot; Can&apos;t pass &apos;...&apos;(abc) to exception-class
*--------------------------------------------------------------------*
* This method is used to extract the &quot;real&quot; string from an escaped string.
* An escaped string can be identified by a beginning &apos; which must be
* accompanied by a trailing &apos;
* All &apos;&apos; in between beginning and trailing &apos; are treated as single &apos;
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
* When allowing clike-input parameters we might encounter trailing
* &quot;real&quot; blanks . These are automatically eliminated when moving
* the input parameter to a string.
*--------------------------------------------------------------------*
ev_unescaped_string = iv_escaped. &quot; Pass through if not escaped
CHECK ev_unescaped_string IS NOT INITIAL. &quot; Nothing to do if empty
CHECK ev_unescaped_string(1) = `&apos;`. &quot; Nothing to do if not escaped
*--------------------------------------------------------------------*
* Remove leading and trailing &apos;
*--------------------------------------------------------------------*
REPLACE REGEX `^&apos;(.*)&apos;$` IN ev_unescaped_string WITH &apos;$1&apos;.
IF sy-subrc &lt;&gt; 0.
lv_errormessage = &apos;Input not properly escaped - &amp;&apos;(002).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
*--------------------------------------------------------------------*
* Any remaining single &apos; should not be here
*--------------------------------------------------------------------*
FIND REGEX lcv_regex IN ev_unescaped_string.
IF sy-subrc = 0.
lv_errormessage = &apos;Input not properly escaped - &amp;&apos;(002).
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = lv_errormessage.
ENDIF.
*--------------------------------------------------------------------*
* Replace &apos;&apos; with &apos;
*--------------------------------------------------------------------*
REPLACE ALL OCCURRENCES OF `&apos;&apos;` IN ev_unescaped_string WITH `&apos;`.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER" VERSION="1" LANGU="E" DESCRIPT="Salv converter" 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_CONVERTER" CMPNAME="T_RELATIONSHIP" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="6 " SRCCOLUMN1="4 " SRCROW2="10 " SRCCOLUMN2="29 " TYPESRC_LENG="149 " TYPESRC="BEGIN OF t_relationship,
id TYPE string,
type TYPE string,
target TYPE string,
END OF t_relationship
"/>
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_FILEVERSION" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="12 " SRCCOLUMN1="4 " SRCROW2="18 " SRCCOLUMN2="26 " TYPESRC_LENG="247 " TYPESRC="BEGIN OF t_fileversion,
appname TYPE string,
lastedited TYPE string,
lowestedited TYPE string,
rupbuild TYPE string,
codename TYPE string,
END OF t_fileversion
"/>
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_SHEET" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="20 " SRCCOLUMN1="4 " SRCROW2="24 " SRCCOLUMN2="22 " TYPESRC_LENG="147 " TYPESRC="BEGIN OF t_sheet,
name TYPE string,
sheetid TYPE string,
id TYPE string,
END OF t_sheet
"/>
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_WORKBOOKPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="4 " TYPTYPE="4" SRCROW1="26 " SRCCOLUMN1="4 " SRCROW2="29 " SRCCOLUMN2="27 " TYPESRC_LENG="146 " TYPESRC="BEGIN OF t_workbookpr,
codename TYPE string,
defaultthemeversion TYPE string,
END OF t_workbookpr
"/>
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_SHEETPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="5 " TYPTYPE="4" SRCROW1="31 " SRCCOLUMN1="4 " SRCROW2="33 " SRCCOLUMN2="24 " TYPESRC_LENG="93 " TYPESRC="BEGIN OF t_sheetpr,
codename TYPE string,
END OF t_sheetpr
"/>
<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
TYPES: BEGIN OF ts_alv_types,
seoclass TYPE seoclsname,
clsname TYPE seoclsname,
END OF ts_alv_types,
tt_alv_types TYPE HASHED TABLE OF ts_alv_types WITH UNIQUE KEY seoclass.
TYPES: BEGIN OF ts_sort_values,
fieldname TYPE fieldname,
row_int TYPE zexcel_cell_row,
value TYPE REF TO data,
new TYPE flag,
sort_level TYPE int4,
is_collapsed type flag,
END OF ts_sort_values,
tt_sort_values TYPE HASHED TABLE OF ts_sort_values WITH UNIQUE KEY fieldname.
TYPES: BEGIN OF ts_subtotal_rows,
row_int TYPE zexcel_cell_row,
row_int_start TYPE zexcel_cell_row,
columnname TYPE fieldname,
END OF ts_subtotal_rows,
tt_subtotal_rows TYPE HASHED TABLE OF ts_subtotal_rows WITH UNIQUE KEY row_int.
TYPES: BEGIN OF ts_styles,
type TYPE char1,
alignment TYPE zexcel_alignment,
inttype TYPE inttype,
decimals TYPE int1,
style TYPE REF TO zcl_excel_style,
guid TYPE zexcel_cell_style,
END OF ts_styles,
tt_styles TYPE HASHED TABLE OF ts_styles WITH UNIQUE KEY type alignment inttype decimals.
TYPES: BEGIN OF ts_color_styles,
guid_old TYPE zexcel_cell_style,
fontcolor TYPE zexcel_style_color_argb,
fillcolor TYPE zexcel_style_color_argb,
style_new TYPE REF TO zcl_excel_style,
END OF ts_color_styles,
tt_color_styles TYPE HASHED TABLE OF ts_color_styles WITH UNIQUE KEY guid_old fontcolor fillcolor.</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<textPool>
<language SPRAS="1">
<textElement ID="I" KEY="001" ENTRY="Sheet1" LENGTH="15 "/>
<textElement ID="I" KEY="002" ENTRY="Grand" LENGTH="10 "/>
<textElement ID="I" KEY="003" ENTRY="Total" LENGTH="10 "/>
<textElement ID="I" KEY="004" ENTRY="Minimum" LENGTH="10 "/>
<textElement ID="I" KEY="005" ENTRY="Maximum" LENGTH="10 "/>
<textElement ID="I" KEY="006" ENTRY="Average" LENGTH="10 "/>
<textElement ID="I" KEY="007" ENTRY="Count" LENGTH="10 "/>
</language>
<language SPRAS="E">
<textElement ID="I" KEY="001" ENTRY="Sheet1" LENGTH="15 "/>
<textElement ID="I" KEY="002" ENTRY="Grand" LENGTH="10 "/>
<textElement ID="I" KEY="003" ENTRY="Total" LENGTH="10 "/>
<textElement ID="I" KEY="004" ENTRY="Minimum" LENGTH="10 "/>
<textElement ID="I" KEY="005" ENTRY="Maximum" LENGTH="10 "/>
<textElement ID="I" KEY="006" ENTRY="Average" LENGTH="10 "/>
<textElement ID="I" KEY="007" ENTRY="Count" LENGTH="10 "/>
<textElement ID="I" KEY="008" ENTRY="Excel creation options" LENGTH="30 "/>
</language>
</textPool>
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER" TYPEGROUP="SLIS" VERSION="1" TPUTYPE="0" IMPLICIT="X"/>
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER" TYPEGROUP="SOI" VERSION="1" TPUTYPE="0" IMPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<forwardDeclaration>SLIS</forwardDeclaration>
<forwardDeclaration>SOI</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="C_TYPE_HDR" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="0" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;H&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="C_TYPE_NOR" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="0" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;N&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="C_TYPE_STR" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="0" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;P&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="C_TYPE_SUB" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="0" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="&apos;S&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="C_TYPE_TOT" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="0" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="&apos;T&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WO_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Autofilter" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WO_DATA" VERSION="1" LANGU="E" DESCRIPT="Excel data without unwanted columns" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WO_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WO_TABLE" VERSION="1" LANGU="E" DESCRIPT="Table sorted but not reduced" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WS_INDX" VERSION="1" LANGU="E" DESCRIPT="System Table INDX" EXPOSURE="0" STATE="1" EDITORDER="22 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INDX" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WS_LAYOUT" VERSION="1" LANGU="E" DESCRIPT="Converter settings for table" EXPOSURE="0" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_LAYO" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WS_OPTION" VERSION="1" LANGU="E" DESCRIPT="Converter options for grid configuration" EXPOSURE="0" STATE="1" EDITORDER="21 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_OPTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_COLORS" VERSION="1" LANGU="E" DESCRIPT="Table type for color information of cells for converter" EXPOSURE="0" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_COL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_COLOR_STYLES" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="20 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_COLOR_STYLES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Conter table for tabel fields" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FCAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_FILTER" VERSION="1" LANGU="E" DESCRIPT="Table type for filter information of cells for converter" EXPOSURE="0" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FIL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_OBJECTS" VERSION="1" LANGU="E" DESCRIPT="ALV object list" EXPOSURE="0" STATE="1" EDITORDER="10 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_ALV_TYPES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_SORT_VALUES" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_SORT_VALUES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_STYLES" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_STYLES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_SUBTOTAL_ROWS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_SUBTOTAL_ROWS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="W_COL_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="1" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="W_FCOUNT" VERSION="1" LANGU="E" DESCRIPT="Three digit number" EXPOSURE="0" STATE="1" EDITORDER="11 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="NUMC3" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="W_ROW_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="1" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="ASK_OPTION" VERSION="1" LANGU="E" DESCRIPT="Ask for user option data" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="ASK_OPTION" SCONAME="RS_OPTION" VERSION="1" LANGU="E" DESCRIPT="Converter options for grid configuration" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_OPTION"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="ASK_OPTION" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method ASK_OPTION.
DATA: ls_sval TYPE sval,
lt_sval TYPE STANDARD TABLE OF sval,
l_returncode TYPE string,
lt_fields TYPE ddfields,
ls_fields TYPE dfies.
FIELD-SYMBOLS: &lt;fs&gt; TYPE ANY.
rs_option = ws_option.
CALL FUNCTION &apos;DDIF_FIELDINFO_GET&apos;
EXPORTING
tabname = &apos;ZEXCEL_S_CONVERTER_OPTION&apos;
* FIELDNAME = &apos; &apos;
* LANGU = sy-langu
* LFIELDNAME = &apos; &apos;
* ALL_TYPES = &apos; &apos;
* GROUP_NAMES = &apos; &apos;
* UCLEN =
* IMPORTING
* X030L_WA =
* DDOBJTYPE =
* DFIES_WA =
* LINES_DESCR =
TABLES
dfies_tab = lt_fields
* FIXED_VALUES =
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3
.
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT lt_fields INTO ls_fields.
ASSIGN COMPONENT ls_fields-fieldname OF STRUCTURE ws_option TO &lt;fs&gt;.
IF sy-subrc = 0.
CLEAR ls_sval.
ls_sval-tabname = ls_fields-tabname.
ls_sval-fieldname = ls_fields-fieldname.
ls_sval-value = &lt;fs&gt;.
ls_sval-field_attr = space.
ls_sval-field_obl = space.
ls_sval-comp_code = space.
ls_sval-fieldtext = ls_fields-scrtext_m.
ls_sval-comp_tab = space.
ls_sval-comp_field = space.
ls_sval-novaluehlp = space.
INSERT ls_sval INTO TABLE lt_sval.
ENDIF.
ENDLOOP.
CALL FUNCTION &apos;POPUP_GET_VALUES&apos;
EXPORTING
* NO_VALUE_CHECK = space
popup_title = &apos;Excel creation options&apos;(008)
* START_COLUMN = &apos;5&apos;
* START_ROW = &apos;5&apos;
IMPORTING
returncode = l_returncode
TABLES
fields = lt_sval
EXCEPTIONS
error_in_fields = 1
OTHERS = 2
.
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF l_returncode = &apos;A&apos;.
RAISE EXCEPTION TYPE zcx_excel.
ELSE.
LOOP AT lt_sval INTO ls_sval.
ASSIGN COMPONENT ls_sval-fieldname OF STRUCTURE ws_option TO &lt;fs&gt;.
IF sy-subrc = 0.
&lt;fs&gt; = ls_sval-value.
ENDIF.
ENDLOOP.
set_option( is_option = ws_option ) .
rs_option = ws_option.
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_CELLS" VERSION="1" LANGU="E" DESCRIPT="Create table with set cell method" EXPOSURE="0" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_CELLS" SCONAME="R_FREEZE_COL" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT1"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_CELLS" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method BIND_CELLS.
* Do we need subtotals with grouping
READ TABLE wt_fieldcatalog TRANSPORTING NO FIELDS WITH KEY is_subtotalled = abap_true.
IF sy-subrc = 0 .
r_freeze_col = loop_subtotal( i_row_int = w_row_int
i_col_int = w_col_int ) .
ELSE.
r_freeze_col = loop_normal( i_row_int = w_row_int
i_col_int = w_col_int ) .
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create table with bind table method" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_TABLE" SCONAME="I_STYLE_TABLE" VERSION="1" LANGU="E" DESCRIPT="Name of the table style" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_TABLE" SCONAME="R_FREEZE_COL" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT1"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_TABLE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method BIND_TABLE.
data: lt_field_catalog type zexcel_t_fieldcatalog,
ls_field_catalog type zexcel_s_fieldcatalog,
ls_fcat type zexcel_s_converter_fcat,
lo_col_dim type ref to zcl_excel_worksheet_columndime,
lo_row_dim type ref to zcl_excel_worksheet_rowdimensi,
l_col_int type zexcel_cell_column,
l_col_alpha type zexcel_cell_column_alpha,
ls_settings type zexcel_s_table_settings,
l_line type i.
field-symbols: &lt;fs_tab&gt; type any table.
assign wo_data-&gt;* to &lt;fs_tab&gt; .
ls_settings-table_style = i_style_table.
ls_settings-top_left_column = zcl_excel_common=&gt;convert_column2alpha( ip_column = w_col_int ).
ls_settings-top_left_row = w_row_int.
ls_settings-show_row_stripes = ws_layout-is_stripped.
describe table wt_fieldcatalog lines l_line.
l_line = l_line + 1 + w_col_int.
ls_settings-bottom_right_column = zcl_excel_common=&gt;convert_column2alpha( ip_column = l_line ).
describe table &lt;fs_tab&gt; lines l_line.
ls_settings-bottom_right_row = l_line + 1 + w_row_int.
sort wt_fieldcatalog by position.
loop at wt_fieldcatalog into ls_fcat.
move-corresponding ls_fcat to ls_field_catalog.
ls_field_catalog-dynpfld = abap_true.
insert ls_field_catalog into table lt_field_catalog.
endloop.
wo_worksheet-&gt;bind_table(
exporting
ip_table = &lt;fs_tab&gt;
it_field_catalog = lt_field_catalog
is_table_settings = ls_settings
importing
es_table_settings = ls_settings
).
loop at wt_fieldcatalog into ls_fcat.
l_col_int = w_col_int + ls_fcat-position - 1.
l_col_alpha = zcl_excel_common=&gt;convert_column2alpha( l_col_int ).
* Freeze panes
if ls_fcat-fix_column = abap_true.
add 1 to r_freeze_col.
endif.
* Now let&apos;s check for optimized
if ls_fcat-is_optimized = abap_true.
lo_col_dim = wo_worksheet-&gt;get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim-&gt;set_auto_size( ip_auto_size = abap_true ) .
endif.
* Now let&apos;s check for visible
if ls_fcat-is_hidden = abap_true.
lo_col_dim = wo_worksheet-&gt;get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim-&gt;set_visible( ip_visible = abap_false ) .
endif.
endloop.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CLASS_CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CLASS_CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLASS_CONSTRUCTOR.
DATA: ls_objects TYPE ts_alv_types.
DATA: ls_option TYPE zexcel_s_converter_option,
l_uname TYPE sy-uname.
GET PARAMETER ID &apos;ZUS&apos; FIELD l_uname.
IF l_uname IS INITIAL OR l_uname = space.
l_uname = sy-uname.
ENDIF.
* Object CL_GUI_ALV_GRID
ls_objects-seoclass = &apos;CL_GUI_ALV_GRID&apos;.
ls_objects-clsname = &apos;ZCL_EXCEL_CONVERTER_ALV_GRID&apos;.
INSERT ls_objects INTO TABLE wt_objects.
* Object CL_SALV_TABLE
ls_objects-seoclass = &apos;CL_SALV_TABLE&apos;.
ls_objects-clsname = &apos;ZCL_EXCEL_CONVERTER_SALV_TABLE&apos;.
INSERT ls_objects INTO TABLE wt_objects.
* Object CL_SALV_RESULT
ls_objects-seoclass = &apos;CL_SALV_EX_RESULT_DATA_TABLE &apos;.
ls_objects-clsname = &apos;ZCL_EXCEL_CONVERTER_RESULT_EX&apos;.
INSERT ls_objects INTO TABLE wt_objects.
* Object CL_SALV_WD_RESULT
ls_objects-seoclass = &apos;CL_SALV_WD_RESULT_DATA_TABLE &apos;.
ls_objects-clsname = &apos;ZCL_EXCEL_CONVERTER_RESULT_WD&apos;.
INSERT ls_objects INTO TABLE wt_objects.
CONCATENATE &apos;EXCEL_&apos; sy-uname INTO ws_indx-srtfd.
IMPORT p1 = ls_option FROM DATABASE indx(xl) TO ws_indx ID ws_indx-srtfd.
IF sy-subrc = 0.
ws_option = ls_option.
ELSE.
init_option( ) .
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CLEAN_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Sort and check on fieldcatalog" EXPOSURE="0" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAN_FIELDCATALOG.
DATA: l_position TYPE int1.
FIELD-SYMBOLS: &lt;fs_sfcat&gt; TYPE zexcel_s_converter_fcat.
SORT wt_fieldcatalog BY position col_id.
CLEAR l_position.
LOOP AT wt_fieldcatalog ASSIGNING &lt;fs_sfcat&gt;.
ADD 1 TO l_position.
&lt;fs_sfcat&gt;-position = l_position.
* Default stype with alignment and format
&lt;fs_sfcat&gt;-style_hdr = get_style( i_type = c_type_hdr
i_alignment = &lt;fs_sfcat&gt;-alignment ).
IF ws_layout-is_stripped = abap_true.
&lt;fs_sfcat&gt;-style_stripped = get_style( i_type = c_type_str
i_alignment = &lt;fs_sfcat&gt;-alignment
i_inttype = &lt;fs_sfcat&gt;-inttype
i_decimals = &lt;fs_sfcat&gt;-decimals ).
ENDIF.
&lt;fs_sfcat&gt;-style_normal = get_style( i_type = c_type_nor
i_alignment = &lt;fs_sfcat&gt;-alignment
i_inttype = &lt;fs_sfcat&gt;-inttype
i_decimals = &lt;fs_sfcat&gt;-decimals ).
&lt;fs_sfcat&gt;-style_subtotal = get_style( i_type = c_type_sub
i_alignment = &lt;fs_sfcat&gt;-alignment
i_inttype = &lt;fs_sfcat&gt;-inttype
i_decimals = &lt;fs_sfcat&gt;-decimals ).
&lt;fs_sfcat&gt;-style_total = get_style( i_type = c_type_tot
i_alignment = &lt;fs_sfcat&gt;-alignment
i_inttype = &lt;fs_sfcat&gt;-inttype
i_decimals = &lt;fs_sfcat&gt;-decimals ).
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" VERSION="1" LANGU="E" DESCRIPT="Convert" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="IS_OPTION" VERSION="1" LANGU="E" DESCRIPT="Converter options for grid configuration" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_OPTION" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="IO_ALV" VERSION="1" LANGU="E" DESCRIPT="ALV List Viewer" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="IT_TABLE" VERSION="1" LANGU="E" DESCRIPT="Data table" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="I_ROW_INT" VERSION="1" LANGU="E" DESCRIPT="Top edge of data block" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PARVALUE="1" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="I_COLUMN_INT" VERSION="1" LANGU="E" DESCRIPT="Left-hand edge of data block" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PARVALUE="1" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="I_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create as TABLE in workbook" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="I_STYLE_TABLE" VERSION="1" LANGU="E" DESCRIPT="Name of the table style" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="CO_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="9 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method CONVERT.
IF is_option IS SUPPLIED.
ws_option = is_option.
ENDIF.
TRY.
execute_converter( EXPORTING io_object = io_alv
it_table = it_table ) .
ENDTRY.
IF io_worksheet IS SUPPLIED AND io_worksheet IS BOUND.
wo_worksheet = io_worksheet.
ENDIF.
IF co_excel IS SUPPLIED.
IF co_excel IS NOT BOUND.
CREATE OBJECT co_excel.
co_excel-&gt;zif_excel_book_properties~creator = sy-uname.
ENDIF.
wo_excel = co_excel.
ENDIF.
* Move table to data object and clean it up
IF wt_fieldcatalog IS NOT INITIAL.
create_table( ).
ELSE.
wo_data = wo_table .
ENDIF.
IF wo_excel IS NOT BOUND.
CREATE OBJECT wo_excel.
wo_excel-&gt;zif_excel_book_properties~creator = sy-uname.
ENDIF.
IF wo_worksheet IS NOT BOUND.
&quot; Get active sheet
wo_worksheet = wo_excel-&gt;get_active_worksheet( ).
wo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos;(001) ).
ENDIF.
IF i_row_int &lt;= 0.
w_row_int = 1.
ELSE.
w_row_int = i_row_int.
ENDIF.
IF i_column_int &lt;= 0.
w_col_int = 1.
ELSE.
w_col_int = i_column_int.
ENDIF.
create_worksheet( i_table = i_table
i_style_table = i_style_table ) .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_COLOR_STYLE" VERSION="1" LANGU="E" DESCRIPT="Create new color style based on cell style" EXPOSURE="0" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_COLOR_STYLE" SCONAME="I_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_COLOR_STYLE" SCONAME="IS_COLORS" VERSION="1" LANGU="E" DESCRIPT="Color information for cells" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_COL"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_COLOR_STYLE" SCONAME="RO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method CREATE_COLOR_STYLE.
DATA: ls_styles TYPE ts_styles.
DATA: lo_style TYPE REF TO zcl_excel_style.
READ TABLE wt_styles INTO ls_styles WITH KEY guid = i_style.
IF sy-subrc = 0.
lo_style = wo_excel-&gt;add_new_style( ).
* lo_style-&gt;borders = ls_styles-style-&gt;borders.
* lo_style-&gt;protection = ls_styles-style-&gt;protection.
lo_style-&gt;font-&gt;bold = ls_styles-style-&gt;font-&gt;bold.
lo_style-&gt;alignment-&gt;horizontal = ls_styles-style-&gt;alignment-&gt;horizontal.
lo_style-&gt;number_format-&gt;format_code = ls_styles-style-&gt;number_format-&gt;format_code.
lo_style-&gt;font-&gt;color-rgb = is_colors-fontcolor.
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style-&gt;fill-&gt;fgcolor-rgb = is_colors-fillcolor.
ro_style = lo_style.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_SUBTOTAL" VERSION="1" LANGU="E" DESCRIPT="Create formular for subtotal" EXPOSURE="0" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_SUBTOTAL" SCONAME="I_ROW_INT_START" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_SUBTOTAL" SCONAME="I_ROW_INT_END" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_SUBTOTAL" SCONAME="I_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_SUBTOTAL" SCONAME="I_TOTALS_FUNCTION" VERSION="1" LANGU="E" DESCRIPT="Totals function for table column (xml ST_TotalsRowFunction)" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_SUBTOTAL" SCONAME="R_FORMULA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method CREATE_FORMULAR_SUBTOTAL.
data: l_row_alpha_start type string,
l_row_alpha_end type string,
l_func_num type string.
l_row_alpha_start = i_row_int_start.
l_row_alpha_end = i_row_int_end.
l_func_num = get_function_number( i_totals_function = i_totals_function ).
concatenate &apos;SUBTOTAL(&apos; l_func_num &apos;,&apos; i_column l_row_alpha_start &apos;:&apos; i_column l_row_alpha_end &apos;)&apos; into r_formula.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" VERSION="1" LANGU="E" DESCRIPT="Create formular for column total" EXPOSURE="0" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" SCONAME="I_ROW_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" SCONAME="I_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" SCONAME="I_TOTALS_FUNCTION" VERSION="1" LANGU="E" DESCRIPT="Totals function for table column (xml ST_TotalsRowFunction)" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" SCONAME="R_FORMULA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method CREATE_FORMULAR_TOTAL.
data: l_row_alpha type string,
l_row_e_alpha type string.
l_row_alpha = w_row_int + 1.
l_row_e_alpha = i_row_int.
concatenate i_totals_function &apos;(&apos; i_column l_row_alpha &apos;:&apos; i_column l_row_e_alpha &apos;)&apos; into r_formula.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_PATH" VERSION="1" LANGU="E" DESCRIPT="Create file path for download" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_PATH" SCONAME="R_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method CREATE_PATH.
DATA: l_sep TYPE c ,
l_path TYPE string,
l_return TYPE i .
CLEAR r_path.
&quot; Save the file
cl_gui_frontend_services=&gt;get_sapgui_workdir(
CHANGING
sapworkdir = l_path
EXCEPTIONS
get_sapworkdir_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
).
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
CONCATENATE &apos;Excel_&apos; w_fcount &apos;.xlsx&apos; INTO r_path.
ELSE.
DO.
ADD 1 TO w_fcount.
*-obtain file separator character---------------------------------------
CALL METHOD cl_gui_frontend_services=&gt;get_file_separator
CHANGING
file_separator = l_sep
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc &lt;&gt; 0.
l_sep = &apos;&apos;.
ENDIF.
CONCATENATE l_path l_sep &apos;Excel_&apos; w_fcount &apos;.xlsx&apos; INTO r_path.
IF cl_gui_frontend_services=&gt;file_exist( file = r_path ) = abap_true.
cl_gui_frontend_services=&gt;file_delete( EXPORTING filename = r_path
CHANGING rc = l_return
EXCEPTIONS OTHERS = 1 ).
IF sy-subrc = 0 .
RETURN.
ENDIF.
ELSE.
RETURN.
ENDIF.
ENDDO.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_HDR" VERSION="1" LANGU="E" DESCRIPT="Create header style" EXPOSURE="0" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_HDR" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_HDR" SCONAME="RO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method CREATE_STYLE_HDR.
data: lo_style type ref to zcl_excel_style.
lo_style = wo_excel-&gt;add_new_style( ).
lo_style-&gt;font-&gt;bold = abap_true.
lo_style-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_white.
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style-&gt;fill-&gt;fgcolor-rgb = &apos;FF4F81BD&apos;.
if i_alignment is supplied and i_alignment is not initial.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
endif.
ro_style = lo_style .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" VERSION="1" LANGU="E" DESCRIPT="Create line style for stripped" EXPOSURE="0" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" SCONAME="I_DECIMALS" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT1" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" SCONAME="RO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method CREATE_STYLE_NORMAL.
DATA: lo_style TYPE REF TO zcl_excel_style,
l_format TYPE zexcel_number_format.
IF i_inttype IS SUPPLIED AND i_inttype IS NOT INITIAL.
l_format = set_cell_format( i_inttype = i_inttype
i_decimals = i_decimals ) .
ENDIF.
IF l_format IS NOT INITIAL OR
( i_alignment IS SUPPLIED AND i_alignment IS NOT INITIAL ) .
lo_style = wo_excel-&gt;add_new_style( ).
IF i_alignment IS SUPPLIED AND i_alignment IS NOT INITIAL.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
ENDIF.
IF l_format IS NOT INITIAL.
lo_style-&gt;number_format-&gt;format_code = l_format.
ENDIF.
ro_style = lo_style .
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" VERSION="1" LANGU="E" DESCRIPT="Create line style for stripped" EXPOSURE="0" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" SCONAME="I_DECIMALS" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT1" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" SCONAME="RO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method CREATE_STYLE_STRIPPED.
data: lo_style type ref to zcl_excel_style.
data: l_format type zexcel_number_format.
lo_style = wo_excel-&gt;add_new_style( ).
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style-&gt;fill-&gt;fgcolor-rgb = &apos;FFDBE5F1&apos;.
if i_alignment is supplied and i_alignment is not initial.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
endif.
if i_inttype is supplied and i_inttype is not initial.
l_format = set_cell_format( i_inttype = i_inttype
i_decimals = i_decimals ) .
if l_format is not initial.
lo_style-&gt;number_format-&gt;format_code = l_format.
endif.
endif.
ro_style = lo_style.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_SUBTOTAL" VERSION="1" LANGU="E" DESCRIPT="Create subtotals style" EXPOSURE="0" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_SUBTOTAL" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_SUBTOTAL" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_SUBTOTAL" SCONAME="I_DECIMALS" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT1" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_SUBTOTAL" SCONAME="RO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Globally Unique Identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method CREATE_STYLE_SUBTOTAL.
data: lo_style type ref to zcl_excel_style.
data: l_format type zexcel_number_format.
lo_style = wo_excel-&gt;add_new_style( ).
lo_style-&gt;font-&gt;bold = abap_true.
if i_alignment is supplied and i_alignment is not initial.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
endif.
if i_inttype is supplied and i_inttype is not initial.
l_format = set_cell_format( i_inttype = i_inttype
i_decimals = i_decimals ) .
if l_format is not initial.
lo_style-&gt;number_format-&gt;format_code = l_format.
endif.
endif.
ro_style = lo_style .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" VERSION="1" LANGU="E" DESCRIPT="Create totals style" EXPOSURE="0" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" SCONAME="I_DECIMALS" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT1" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" SCONAME="RO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Globally Unique Identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
<source>method CREATE_STYLE_TOTAL.
DATA: lo_style TYPE REF TO zcl_excel_style.
DATA: l_format TYPE zexcel_number_format.
lo_style = wo_excel-&gt;add_new_style( ).
lo_style-&gt;font-&gt;bold = abap_true.
CREATE OBJECT lo_style-&gt;borders-&gt;top.
lo_style-&gt;borders-&gt;top-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
lo_style-&gt;borders-&gt;top-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
CREATE OBJECT lo_style-&gt;borders-&gt;right.
lo_style-&gt;borders-&gt;right-&gt;border_style = zcl_excel_style_border=&gt;c_border_none.
lo_style-&gt;borders-&gt;right-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
CREATE OBJECT lo_style-&gt;borders-&gt;down.
lo_style-&gt;borders-&gt;down-&gt;border_style = zcl_excel_style_border=&gt;c_border_double.
lo_style-&gt;borders-&gt;down-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
CREATE OBJECT lo_style-&gt;borders-&gt;left.
lo_style-&gt;borders-&gt;left-&gt;border_style = zcl_excel_style_border=&gt;c_border_none.
lo_style-&gt;borders-&gt;left-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
IF i_alignment IS SUPPLIED AND i_alignment IS NOT INITIAL.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
ENDIF.
IF i_inttype IS SUPPLIED AND i_inttype IS NOT INITIAL.
l_format = set_cell_format( i_inttype = i_inttype
i_decimals = i_decimals ) .
IF l_format IS NOT INITIAL.
lo_style-&gt;number_format-&gt;format_code = l_format.
ENDIF.
ENDIF.
ro_style = lo_style .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create table based on fieldcatalog" EXPOSURE="0" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CREATE_TABLE.
TYPES: BEGIN OF ts_output,
fieldname TYPE fieldname,
function TYPE funcname,
END OF ts_output.
DATA: lo_data TYPE REF TO data.
DATA: lo_addit TYPE REF TO cl_abap_elemdescr,
lt_components_tab TYPE cl_abap_structdescr=&gt;component_table,
ls_components TYPE abap_componentdescr,
lo_table TYPE REF TO cl_abap_tabledescr,
lo_struc TYPE REF TO cl_abap_structdescr,
lt_fieldcatalog TYPE zexcel_t_converter_fcat.
FIELD-SYMBOLS: &lt;fs_scat&gt; TYPE zexcel_s_converter_fcat,
&lt;fs_stab&gt; TYPE ANY,
&lt;fs_ttab&gt; TYPE STANDARD TABLE,
&lt;fs&gt; TYPE ANY,
&lt;fs_table&gt; TYPE STANDARD TABLE.
SORT wt_fieldcatalog BY position.
ASSIGN wo_table-&gt;* TO &lt;fs_table&gt;.
READ TABLE &lt;fs_table&gt; ASSIGNING &lt;fs_stab&gt; INDEX 1.
IF sy-subrc EQ 0 .
LOOP AT wt_fieldcatalog ASSIGNING &lt;fs_scat&gt;.
ASSIGN COMPONENT &lt;fs_scat&gt;-columnname OF STRUCTURE &lt;fs_stab&gt; TO &lt;fs&gt;.
IF sy-subrc = 0.
ls_components-name = &lt;fs_scat&gt;-columnname.
TRY.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_data( &lt;fs&gt; ).
CATCH cx_sy_move_cast_error.
CLEAR lo_addit.
DELETE TABLE wt_fieldcatalog FROM &lt;fs_scat&gt;.
ENDTRY.
IF lo_addit IS BOUND.
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
ENDIF.
ENDIF.
ENDLOOP.
IF lt_components_tab IS NOT INITIAL.
&quot;create new line type
TRY.
lo_struc = cl_abap_structdescr=&gt;create( P_COMPONENTS = lt_components_tab
P_STRICT = abap_false ).
CATCH cx_sy_struct_creation.
RETURN. &quot; We can not do anything in this case.
ENDTRY.
lo_table = cl_abap_tabledescr=&gt;create( lo_struc ).
CREATE DATA wo_data TYPE HANDLE lo_table.
CREATE DATA lo_data TYPE HANDLE lo_struc.
ASSIGN wo_data-&gt;* TO &lt;fs_ttab&gt;.
ASSIGN lo_data-&gt;* TO &lt;fs_stab&gt;.
LOOP AT &lt;fs_table&gt; ASSIGNING &lt;fs&gt;.
CLEAR &lt;fs_stab&gt;.
MOVE-CORRESPONDING &lt;fs&gt; TO &lt;fs_stab&gt;.
APPEND &lt;fs_stab&gt; TO &lt;fs_ttab&gt;.
ENDLOOP.
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_TEXT_SUBTOTAL" VERSION="1" LANGU="E" DESCRIPT="Create subtoal text for column" EXPOSURE="0" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_TEXT_SUBTOTAL" SCONAME="I_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_TEXT_SUBTOTAL" SCONAME="I_TOTALS_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_CONVERTER" CMPNAME="CREATE_TEXT_SUBTOTAL" SCONAME="R_TEXT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>METHOD create_text_subtotal.
DATA: l_string(256) TYPE c,
l_func TYPE string.
CASE i_totals_function.
WHEN zcl_excel_table=&gt;totals_function_sum. &quot; Total
l_func = &apos;Total&apos;(003).
WHEN zcl_excel_table=&gt;totals_function_min. &quot; Minimum
l_func = &apos;Minimum&apos;(004).
WHEN zcl_excel_table=&gt;totals_function_max. &quot; Maximum
l_func = &apos;Maximum&apos;(005).
WHEN zcl_excel_table=&gt;totals_function_average. &quot; Mean Value
l_func = &apos;Average&apos;(006).
WHEN zcl_excel_table=&gt;totals_function_count. &quot; Count
l_func = &apos;Count&apos;(007).
WHEN OTHERS.
CLEAR l_func.
ENDCASE.
MOVE i_value TO l_string.
CONCATENATE l_string l_func INTO r_text SEPARATED BY space.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Create table in worksheet" EXPOSURE="0" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_WORKSHEET" SCONAME="I_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create as TABLE in workbook" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PARVALUE="&apos;X&apos;" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_WORKSHEET" SCONAME="I_STYLE_TABLE" VERSION="1" LANGU="E" DESCRIPT="Name of the table style" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_WORKSHEET" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method CREATE_WORKSHEET.
DATA: l_freeze_col TYPE i.
DATA: l_guid TYPE oltpguid16.
IF wo_data IS BOUND AND wo_worksheet IS BOUND.
wo_worksheet-&gt;zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=&gt;c_below_on. &quot; By default is on
IF wt_fieldcatalog IS INITIAL.
set_fieldcatalog( ) .
ELSE.
clean_fieldcatalog( ) .
ENDIF.
IF i_table = abap_true.
l_freeze_col = bind_table( i_style_table = i_style_table ) .
ELSE.
* Let&apos;s check for filter.
IF wt_filter IS NOT INITIAL.
wo_autofilter = wo_excel-&gt;add_new_autofilter( io_sheet = wo_worksheet ).
l_freeze_col = bind_cells( ) .
set_autofilter_area( ) .
ELSE.
l_freeze_col = bind_cells( ) .
ENDIF.
ENDIF.
* Check for freeze panes
IF ws_layout-is_fixed = abap_true.
IF l_freeze_col = 0.
l_freeze_col = w_col_int.
ENDIF.
wo_worksheet-&gt;freeze_panes( EXPORTING ip_num_columns = l_freeze_col
ip_num_rows = w_row_int ) .
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="EXECUTE_CONVERTER" VERSION="1" LANGU="E" DESCRIPT="Execute the converter based on object provided" EXPOSURE="0" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="EXECUTE_CONVERTER" SCONAME="IO_OBJECT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="EXECUTE_CONVERTER" SCONAME="IT_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="EXECUTE_CONVERTER" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method EXECUTE_CONVERTER.
DATA: lt_fieldcatalog TYPE zexcel_t_fieldcatalog,
ls_fieldcatalog TYPE zexcel_s_converter_fcat,
lo_if TYPE REF TO zif_excel_converter,
ls_types TYPE ts_alv_types,
lo_addit TYPE REF TO cl_abap_classdescr.
IF io_object IS BOUND.
TRY.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_object_ref( io_object ).
CATCH cx_sy_move_cast_error.
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ls_types-seoclass = lo_addit-&gt;get_relative_name( ).
READ TABLE wt_objects INTO ls_types WITH TABLE KEY seoclass = ls_types-seoclass.
IF sy-subrc = 0.
CREATE OBJECT lo_if TYPE (ls_types-clsname).
TRY.
lo_if-&gt;create_fieldcatalog(
EXPORTING
is_option = ws_option
io_object = io_object
it_table = it_table
IMPORTING
es_layout = ws_layout
et_fieldcatalog = wt_fieldcatalog
eo_table = wo_table
et_colors = wt_colors
et_filter = wt_filter
).
ENDTRY.
* data lines of highest level.
IF ws_layout-max_subtotal_level &gt; 0.
ADD 1 TO ws_layout-max_subtotal_level.
ENDIF.
ELSE.
RAISE EXCEPTION TYPE zcx_excel.
ENDIF.
ELSE.
REFRESH wt_fieldcatalog.
GET REFERENCE OF it_table INTO wo_table.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_COLOR_STYLE" VERSION="1" LANGU="E" DESCRIPT="Look up color style and create if needed" EXPOSURE="0" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_COLOR_STYLE" SCONAME="I_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_COLOR_STYLE" SCONAME="I_FIELDNAME" VERSION="1" LANGU="E" DESCRIPT="Field Name" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FIELDNAME"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_COLOR_STYLE" SCONAME="I_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_COLOR_STYLE" SCONAME="R_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method GET_COLOR_STYLE.
DATA: ls_colors TYPE zexcel_s_converter_col,
ls_color_styles TYPE ts_color_styles,
lo_style TYPE REF TO zcl_excel_style.
r_style = i_style. &quot; Default we change nothing
IF wt_colors IS NOT INITIAL.
* Full line has color
READ TABLE wt_colors INTO ls_colors WITH KEY rownumber = i_row
columnname = space.
IF sy-subrc = 0.
READ TABLE wt_color_styles INTO ls_color_styles WITH KEY guid_old = i_style
fontcolor = ls_colors-fontcolor
fillcolor = ls_colors-fillcolor.
IF sy-subrc = 0.
r_style = ls_color_styles-style_new-&gt;get_guid( ).
ELSE.
lo_style = create_color_style( i_style = i_style
is_colors = ls_colors ) .
r_style = lo_style-&gt;get_guid( ) .
ls_color_styles-guid_old = i_style.
ls_color_styles-fontcolor = ls_colors-fontcolor.
ls_color_styles-fillcolor = ls_colors-fillcolor.
ls_color_styles-style_new = lo_style.
INSERT ls_color_styles INTO TABLE wt_color_styles.
ENDIF.
ELSE.
* Only field has color
READ TABLE wt_colors INTO ls_colors WITH KEY rownumber = i_row
columnname = i_fieldname.
IF sy-subrc = 0.
READ TABLE wt_color_styles INTO ls_color_styles WITH KEY guid_old = i_style
fontcolor = ls_colors-fontcolor
fillcolor = ls_colors-fillcolor.
IF sy-subrc = 0.
r_style = ls_color_styles-style_new-&gt;get_guid( ).
ELSE.
lo_style = create_color_style( i_style = i_style
is_colors = ls_colors ) .
ls_color_styles-guid_old = i_style.
ls_color_styles-fontcolor = ls_colors-fontcolor.
ls_color_styles-fillcolor = ls_colors-fillcolor.
ls_color_styles-style_new = lo_style.
INSERT ls_color_styles INTO TABLE wt_color_styles.
r_style = ls_color_styles-style_new-&gt;get_guid( ).
ENDIF.
ELSE.
r_style = i_style.
ENDIF.
ENDIF.
ELSE.
r_style = i_style.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FILE" VERSION="1" LANGU="E" DESCRIPT="Create excel file" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FILE" SCONAME="E_BYTECOUNT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FILE" SCONAME="ET_FILE" VERSION="1" LANGU="E" DESCRIPT="GBT: SOLIX as Table Type" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="SOLIX_TAB"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FILE" SCONAME="E_FILE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="XSTRING"/>
<source>method GET_FILE.
data: lo_excel_writer type ref to zif_excel_writer,
lo_excel type ref to zcl_excel.
data: ls_seoclass type seoclass.
if wo_excel is bound.
create object lo_excel_writer type zcl_excel_writer_2007.
e_file = lo_excel_writer-&gt;write_file( wo_excel ).
select single * into ls_seoclass
from seoclass
where clsname = &apos;CL_BCS_CONVERT&apos;.
if sy-subrc = 0.
call method (ls_seoclass-clsname)=&gt;xstring_to_solix
exporting
iv_xstring = e_file
receiving
et_solix = et_file.
e_bytecount = xstrlen( e_file ).
else.
&quot; Convert to binary
call function &apos;SCMS_XSTRING_TO_BINARY&apos;
exporting
buffer = e_file
importing
output_length = e_bytecount
tables
binary_tab = et_file.
endif.
endif.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FUNCTION_NUMBER" VERSION="1" LANGU="E" DESCRIPT="Convert function name into internal number" EXPOSURE="0" STATE="1" EDITORDER="18 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FUNCTION_NUMBER" SCONAME="I_TOTALS_FUNCTION" VERSION="1" LANGU="E" DESCRIPT="Totals function for table column (xml ST_TotalsRowFunction)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FUNCTION_NUMBER" SCONAME="R_FUNCTION_NUMBER" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT1"/>
<source>method GET_FUNCTION_NUMBER.
*Number Function
*1 AVERAGE
*2 COUNT
*3 COUNTA
*4 MAX
*5 MIN
*6 PRODUCT
*7 STDEV
*8 STDEVP
*9 SUM
*10 VAR
*11 VARP
case i_totals_function.
when ZCL_EXCEL_TABLE=&gt;TOTALS_FUNCTION_SUM. &quot; Total
r_function_number = 9.
when ZCL_EXCEL_TABLE=&gt;TOTALS_FUNCTION_MIN. &quot; Minimum
r_function_number = 5.
when ZCL_EXCEL_TABLE=&gt;TOTALS_FUNCTION_MAX. &quot; Maximum
r_function_number = 4.
when ZCL_EXCEL_TABLE=&gt;TOTALS_FUNCTION_AVERAGE. &quot; Mean Value
r_function_number = 1.
when ZCL_EXCEL_TABLE=&gt;TOTALS_FUNCTION_count. &quot; Count
r_function_number = 2.
when others.
clear r_function_number.
endcase.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_OPTION" VERSION="1" LANGU="E" DESCRIPT="Get user option data" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_OPTION" SCONAME="RS_OPTION" VERSION="1" LANGU="E" DESCRIPT="Converter options for grid configuration" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_OPTION"/>
<source>method GET_OPTION.
rs_option = ws_option.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_STYLE" VERSION="1" LANGU="E" DESCRIPT="Get style for cell" EXPOSURE="0" STATE="1" EDITORDER="19 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_STYLE" SCONAME="I_TYPE" VERSION="1" LANGU="E" DESCRIPT="Cell type for converter" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CHAR1"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_STYLE" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PARVALUE="SPACE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_STYLE" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE" PARVALUE="SPACE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_STYLE" SCONAME="I_DECIMALS" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT1" PARVALUE="0" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_STYLE" SCONAME="R_STYLE" VERSION="1" LANGU="E" DESCRIPT="Globally Unique Identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method GET_STYLE.
DATA: ls_styles TYPE ts_styles,
lo_style TYPE REF TO zcl_excel_style.
CLEAR r_style.
READ TABLE wt_styles INTO ls_styles WITH TABLE KEY type = i_type
alignment = i_alignment
inttype = i_inttype
decimals = i_decimals.
IF sy-subrc = 0.
r_style = ls_styles-guid.
ELSE.
CASE i_type.
WHEN c_type_hdr. &quot; Header
lo_style = create_style_hdr( i_alignment = i_alignment ).
WHEN c_type_str. &quot;Stripped
lo_style = create_style_stripped( i_alignment = i_alignment
i_inttype = i_inttype
i_decimals = i_decimals ).
WHEN c_type_nor. &quot;Normal
lo_style = create_style_normal( i_alignment = i_alignment
i_inttype = i_inttype
i_decimals = i_decimals ).
WHEN c_type_sub. &quot;Subtotals
lo_style = create_style_subtotal( i_alignment = i_alignment
i_inttype = i_inttype
i_decimals = i_decimals ).
WHEN c_type_tot. &quot;Totals
lo_style = create_style_total( i_alignment = i_alignment
i_inttype = i_inttype
i_decimals = i_decimals ).
ENDCASE.
IF lo_style IS NOT INITIAL.
r_style = lo_style-&gt;get_guid( ).
ls_styles-type = i_type.
ls_styles-alignment = i_alignment.
ls_styles-inttype = i_inttype.
ls_styles-decimals = i_decimals.
ls_styles-guid = r_style.
ls_styles-style = lo_style.
INSERT ls_styles INTO TABLE wt_styles.
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="INIT_OPTION" VERSION="1" LANGU="E" DESCRIPT="Init option structure" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<source>method INIT_OPTION.
ws_option-filter = abap_true.
ws_option-hidenc = abap_true.
ws_option-subtot = abap_true.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_NORMAL" VERSION="1" LANGU="E" DESCRIPT="Bind cells with normal loop" EXPOSURE="0" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_NORMAL" SCONAME="I_ROW_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_NORMAL" SCONAME="I_COL_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_NORMAL" SCONAME="R_FREEZE_COL" VERSION="1" LANGU="E" DESCRIPT="Natural Number" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT1"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_NORMAL" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method LOOP_NORMAL.
DATA: lo_data TYPE REF TO data,
l_row_header TYPE zexcel_cell_row VALUE 2,
l_col_header TYPE zexcel_cell_column_alpha VALUE &apos;B&apos;,
l_row_int_start TYPE zexcel_cell_row,
l_row_int_end TYPE zexcel_cell_row,
l_row_int TYPE zexcel_cell_row,
l_col_int TYPE zexcel_cell_column,
l_col_alpha TYPE zexcel_cell_column_alpha,
l_col_alpha_start TYPE zexcel_cell_column_alpha,
l_cell_value TYPE zexcel_cell_value,
l_s_color TYPE abap_bool,
lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
l_formula TYPE zexcel_cell_formula,
l_style TYPE zexcel_cell_style,
l_cells TYPE i,
l_count TYPE i,
l_table_row TYPE i.
FIELD-SYMBOLS: &lt;fs_stab&gt; TYPE ANY,
&lt;fs_tab&gt; TYPE STANDARD TABLE,
&lt;fs_sfcat&gt; TYPE zexcel_s_converter_fcat,
&lt;fs_fldval&gt; TYPE ANY,
&lt;fs_cell_value&gt; TYPE zexcel_cell_value.
ASSIGN wo_data-&gt;* TO &lt;fs_tab&gt; .
DESCRIBE TABLE wt_fieldcatalog LINES l_cells.
DESCRIBE TABLE &lt;fs_tab&gt; LINES l_count.
l_cells = l_cells * l_count.
* It is better to loop column by column
LOOP AT wt_fieldcatalog ASSIGNING &lt;fs_sfcat&gt;.
l_row_int = i_row_int.
l_col_int = i_col_int + &lt;fs_sfcat&gt;-position - 1.
* Freeze panes
IF &lt;fs_sfcat&gt;-fix_column = abap_true.
ADD 1 TO r_freeze_col.
ENDIF.
l_s_color = abap_true.
l_col_alpha = zcl_excel_common=&gt;convert_column2alpha( l_col_int ).
* Only if the Header is required create it.
IF ws_option-hidehd IS INITIAL.
&quot; First of all write column header
l_cell_value = &lt;fs_sfcat&gt;-scrtext_m.
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = l_cell_value
ip_style = &lt;fs_sfcat&gt;-style_hdr ).
ADD 1 TO l_row_int.
ENDIF.
LOOP AT &lt;fs_tab&gt; ASSIGNING &lt;fs_stab&gt;.
l_table_row = sy-tabix.
* Now the cell values
ASSIGN COMPONENT &lt;fs_sfcat&gt;-columnname OF STRUCTURE &lt;fs_stab&gt; TO &lt;fs_fldval&gt;.
* Now let&apos;s write the cell values
IF ws_layout-is_stripped = abap_true AND l_s_color = abap_true.
l_style = get_color_style( i_row = l_table_row
i_fieldname = &lt;fs_sfcat&gt;-columnname
i_style = &lt;fs_sfcat&gt;-style_stripped ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = &lt;fs_fldval&gt;
ip_style = l_style ).
CLEAR l_s_color.
ELSE.
l_style = get_color_style( i_row = l_table_row
i_fieldname = &lt;fs_sfcat&gt;-columnname
i_style = &lt;fs_sfcat&gt;-style_normal ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = &lt;fs_fldval&gt;
ip_style = l_style ).
l_s_color = abap_true.
ENDIF.
READ TABLE wt_filter TRANSPORTING NO FIELDS WITH TABLE KEY rownumber = l_table_row
columnname = &lt;fs_sfcat&gt;-columnname.
IF sy-subrc = 0.
wo_worksheet-&gt;get_cell( EXPORTING
ip_column = l_col_alpha
ip_row = l_row_int
IMPORTING
ep_value = l_cell_value ).
wo_autofilter-&gt;set_value( i_column = l_col_int
i_value = l_cell_value ).
ENDIF.
ADD 1 TO l_row_int.
ENDLOOP.
* Now let&apos;s check for optimized
IF &lt;fs_sfcat&gt;-is_optimized = abap_true .
lo_col_dim = wo_worksheet-&gt;get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim-&gt;set_auto_size( ip_auto_size = abap_true ) .
ENDIF.
* Now let&apos;s check for visible
IF &lt;fs_sfcat&gt;-is_hidden = abap_true.
lo_col_dim = wo_worksheet-&gt;get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim-&gt;set_visible( ip_visible = abap_false ) .
ENDIF.
* Now let&apos;s check for total versus subtotal.
IF &lt;fs_sfcat&gt;-totals_function IS NOT INITIAL.
l_row_int_end = l_row_int - 1.
l_formula = create_formular_total( i_row_int = l_row_int_end
i_column = l_col_alpha
i_totals_function = &lt;fs_sfcat&gt;-totals_function ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_formula = l_formula
ip_style = &lt;fs_sfcat&gt;-style_total ).
ENDIF.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_SUBTOTAL" VERSION="1" LANGU="E" DESCRIPT="Bind cells with subtotal loop" EXPOSURE="0" STATE="1" EDITORDER="21 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_SUBTOTAL" SCONAME="I_ROW_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_SUBTOTAL" SCONAME="I_COL_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_SUBTOTAL" SCONAME="R_FREEZE_COL" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="INT1"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="LOOP_SUBTOTAL" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method LOOP_SUBTOTAL.
DATA: lo_data TYPE REF TO data,
l_row_header TYPE zexcel_cell_row VALUE 2,
l_col_header TYPE zexcel_cell_column_alpha VALUE &apos;B&apos;,
l_row_int_start TYPE zexcel_cell_row,
l_row_int_end TYPE zexcel_cell_row,
l_row_int TYPE zexcel_cell_row,
l_col_int TYPE zexcel_cell_column,
l_col_alpha TYPE zexcel_cell_column_alpha,
l_col_alpha_start TYPE zexcel_cell_column_alpha,
l_cell_value TYPE zexcel_cell_value,
l_s_color TYPE abap_bool,
lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
l_formula TYPE zexcel_cell_formula,
l_style TYPE zexcel_cell_style,
l_subtotalled TYPE flag,
l_text TYPE string,
ls_sort_values TYPE ts_sort_values,
ls_subtotal_rows TYPE ts_subtotal_rows,
l_sort_level TYPE int4,
l_hidden TYPE int4,
l_line TYPE i,
l_guid TYPE guid_22,
l_tabix TYPE sy-tabix,
l_cells TYPE i,
l_count TYPE i,
l_table_row TYPE i,
lt_fcat TYPE zexcel_t_converter_fcat.
FIELD-SYMBOLS: &lt;fs_stab&gt; TYPE ANY,
&lt;fs_tab&gt; TYPE STANDARD TABLE,
&lt;fs_sfcat&gt; TYPE zexcel_s_converter_fcat,
&lt;fs_fldval&gt; TYPE ANY,
&lt;fs_sortval&gt; TYPE ANY,
&lt;fs_sortv&gt; TYPE ts_sort_values,
&lt;fs_cell_value&gt; TYPE zexcel_cell_value.
ASSIGN wo_data-&gt;* TO &lt;fs_tab&gt; .
REFRESH: wt_sort_values,
wt_subtotal_rows.
DESCRIBE TABLE wt_fieldcatalog LINES l_cells.
DESCRIBE TABLE &lt;fs_tab&gt; LINES l_count.
l_cells = l_cells * l_count.
READ TABLE &lt;fs_tab&gt; ASSIGNING &lt;fs_stab&gt; INDEX 1.
IF sy-subrc = 0.
l_row_int = i_row_int + 1.
lt_fcat = wt_fieldcatalog.
SORT lt_fcat BY sort_level DESCENDING.
LOOP AT lt_fcat ASSIGNING &lt;fs_sfcat&gt; WHERE is_subtotalled = abap_true.
ASSIGN COMPONENT &lt;fs_sfcat&gt;-columnname OF STRUCTURE &lt;fs_stab&gt; TO &lt;fs_fldval&gt;.
ls_sort_values-fieldname = &lt;fs_sfcat&gt;-columnname.
ls_sort_values-row_int = l_row_int.
ls_sort_values-sort_level = &lt;fs_sfcat&gt;-sort_level.
ls_sort_values-is_collapsed = &lt;fs_sfcat&gt;-is_collapsed.
CREATE DATA ls_sort_values-value LIKE &lt;fs_fldval&gt;.
ASSIGN ls_sort_values-value-&gt;* TO &lt;fs_sortval&gt;.
&lt;fs_sortval&gt; = &lt;fs_fldval&gt;.
INSERT ls_sort_values INTO TABLE wt_sort_values.
ENDLOOP.
ENDIF.
l_row_int = i_row_int.
* Let&apos;s check if we need to hide a sort level.
DESCRIBE TABLE wt_sort_values LINES l_line.
IF l_line &lt;= 1.
CLEAR l_hidden.
ELSE.
LOOP AT wt_sort_values INTO ls_sort_values WHERE is_collapsed = abap_false.
IF l_hidden &lt; ls_sort_values-sort_level.
l_hidden = ls_sort_values-sort_level.
ENDIF.
ENDLOOP.
ENDIF.
ADD 1 TO l_hidden. &quot; As this is the first level we show.
* First loop without formular only addtional rows with subtotal text.
LOOP AT &lt;fs_tab&gt; ASSIGNING &lt;fs_stab&gt;.
ADD 1 TO l_row_int. &quot; 1 is for header row.
l_row_int_start = l_row_int.
SORT lt_fcat BY sort_level DESCENDING.
LOOP AT lt_fcat ASSIGNING &lt;fs_sfcat&gt; WHERE is_subtotalled = abap_true.
l_col_int = i_col_int + &lt;fs_sfcat&gt;-position - 1.
l_col_alpha = zcl_excel_common=&gt;convert_column2alpha( l_col_int ).
* Now the cell values
ASSIGN COMPONENT &lt;fs_sfcat&gt;-columnname OF STRUCTURE &lt;fs_stab&gt; TO &lt;fs_fldval&gt;.
IF sy-subrc = 0.
READ TABLE wt_sort_values ASSIGNING &lt;fs_sortv&gt; WITH TABLE KEY fieldname = &lt;fs_sfcat&gt;-columnname.
IF sy-subrc = 0.
ASSIGN &lt;fs_sortv&gt;-value-&gt;* TO &lt;fs_sortval&gt;.
IF &lt;fs_sortval&gt; &lt;&gt; &lt;fs_fldval&gt; OR &lt;fs_sortv&gt;-new = abap_true.
* First let&apos;s remmember the subtotal values as it has to appear later.
ls_subtotal_rows-row_int = l_row_int.
ls_subtotal_rows-row_int_start = &lt;fs_sortv&gt;-row_int.
ls_subtotal_rows-columnname = &lt;fs_sfcat&gt;-columnname.
INSERT ls_subtotal_rows INTO TABLE wt_subtotal_rows.
* Now let&apos;s write the subtotal line
l_cell_value = create_text_subtotal( i_value = &lt;fs_sortval&gt;
i_totals_function = &lt;fs_sfcat&gt;-totals_function ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = l_cell_value
ip_abap_type = cl_abap_typedescr=&gt;typekind_string
ip_style = &lt;fs_sfcat&gt;-style_subtotal ).
lo_row_dim = wo_worksheet-&gt;get_row_dimension( ip_row = l_row_int ).
lo_row_dim-&gt;set_outline_level( ip_outline_level = &lt;fs_sfcat&gt;-sort_level ) .
IF &lt;fs_sfcat&gt;-is_collapsed = abap_true.
IF &lt;fs_sfcat&gt;-sort_level &gt; l_hidden.
lo_row_dim-&gt;set_visible( ip_visible = abap_false ) .
ENDIF.
lo_row_dim-&gt;set_collapsed( ip_collapsed = &lt;fs_sfcat&gt;-is_collapsed ) .
ENDIF.
* Now let&apos;s change the key
ADD 1 TO l_row_int.
&lt;fs_sortval&gt; = &lt;fs_fldval&gt;.
&lt;fs_sortv&gt;-new = abap_false.
l_line = &lt;fs_sortv&gt;-sort_level.
LOOP AT wt_sort_values ASSIGNING &lt;fs_sortv&gt; WHERE sort_level &gt;= l_line.
&lt;fs_sortv&gt;-row_int = l_row_int.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
ADD 1 TO l_row_int.
l_row_int_start = l_row_int.
SORT lt_fcat BY sort_level DESCENDING.
LOOP AT lt_fcat ASSIGNING &lt;fs_sfcat&gt; WHERE is_subtotalled = abap_true.
l_col_int = i_col_int + &lt;fs_sfcat&gt;-position - 1.
l_col_alpha = zcl_excel_common=&gt;convert_column2alpha( l_col_int ).
READ TABLE wt_sort_values ASSIGNING &lt;fs_sortv&gt; WITH TABLE KEY fieldname = &lt;fs_sfcat&gt;-columnname.
IF sy-subrc = 0.
ASSIGN &lt;fs_sortv&gt;-value-&gt;* TO &lt;fs_sortval&gt;.
ls_subtotal_rows-row_int = l_row_int.
ls_subtotal_rows-row_int_start = &lt;fs_sortv&gt;-row_int.
ls_subtotal_rows-columnname = &lt;fs_sfcat&gt;-columnname.
INSERT ls_subtotal_rows INTO TABLE wt_subtotal_rows.
* First let&apos;s write the value as it has to appear.
l_cell_value = create_text_subtotal( i_value = &lt;fs_sortval&gt;
i_totals_function = &lt;fs_sfcat&gt;-totals_function ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = l_cell_value
ip_abap_type = cl_abap_typedescr=&gt;typekind_string
ip_style = &lt;fs_sfcat&gt;-style_subtotal ).
l_sort_level = &lt;fs_sfcat&gt;-sort_level.
lo_row_dim = wo_worksheet-&gt;get_row_dimension( ip_row = l_row_int ).
lo_row_dim-&gt;set_outline_level( ip_outline_level = l_sort_level ) .
IF &lt;fs_sfcat&gt;-is_collapsed = abap_true.
IF &lt;fs_sfcat&gt;-sort_level &gt; l_hidden.
lo_row_dim-&gt;set_visible( ip_visible = abap_false ) .
ENDIF.
lo_row_dim-&gt;set_collapsed( ip_collapsed = &lt;fs_sfcat&gt;-is_collapsed ) .
ENDIF.
ADD 1 TO l_row_int.
ENDIF.
ENDLOOP.
* Let&apos;s write the Grand total
l_sort_level = 0.
lo_row_dim = wo_worksheet-&gt;get_row_dimension( ip_row = l_row_int ).
lo_row_dim-&gt;set_outline_level( ip_outline_level = l_sort_level ) .
* lo_row_dim-&gt;set_collapsed( ip_collapsed = &lt;fs_sfcat&gt;-is_collapsed ) . Not on grand total
l_text = create_text_subtotal( i_value = &apos;Grand&apos;(002)
i_totals_function = &lt;fs_sfcat&gt;-totals_function ).
l_col_alpha_start = zcl_excel_common=&gt;convert_column2alpha( i_col_int ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha_start
ip_row = l_row_int
ip_value = l_text
ip_abap_type = cl_abap_typedescr=&gt;typekind_string
ip_style = &lt;fs_sfcat&gt;-style_subtotal ).
* It is better to loop column by column second time around
* Second loop with formular and data.
LOOP AT wt_fieldcatalog ASSIGNING &lt;fs_sfcat&gt;.
l_row_int = i_row_int.
l_col_int = i_col_int + &lt;fs_sfcat&gt;-position - 1.
* Freeze panes
IF &lt;fs_sfcat&gt;-fix_column = abap_true.
ADD 1 TO r_freeze_col.
ENDIF.
l_s_color = abap_true.
l_col_alpha = zcl_excel_common=&gt;convert_column2alpha( l_col_int ).
&quot; First of all write column header
l_cell_value = &lt;fs_sfcat&gt;-scrtext_m.
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = l_cell_value
ip_abap_type = cl_abap_typedescr=&gt;typekind_string
ip_style = &lt;fs_sfcat&gt;-style_hdr ).
ADD 1 TO l_row_int.
LOOP AT &lt;fs_tab&gt; ASSIGNING &lt;fs_stab&gt;.
l_table_row = sy-tabix.
* Now the cell values
ASSIGN COMPONENT &lt;fs_sfcat&gt;-columnname OF STRUCTURE &lt;fs_stab&gt; TO &lt;fs_fldval&gt;.
* Let&apos;s check for subtotal lines
DO.
READ TABLE wt_subtotal_rows TRANSPORTING NO FIELDS WITH TABLE KEY row_int = l_row_int.
IF sy-subrc = 0.
IF &lt;fs_sfcat&gt;-is_subtotalled = abap_false AND
&lt;fs_sfcat&gt;-totals_function IS NOT INITIAL.
DO.
READ TABLE wt_subtotal_rows INTO ls_subtotal_rows WITH TABLE KEY row_int = l_row_int.
IF sy-subrc = 0.
l_row_int_start = ls_subtotal_rows-row_int_start.
l_row_int_end = l_row_int - 1.
l_formula = create_formular_subtotal( i_row_int_start = l_row_int_start
i_row_int_end = l_row_int_end
i_column = l_col_alpha
i_totals_function = &lt;fs_sfcat&gt;-totals_function ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_formula = l_formula
ip_style = &lt;fs_sfcat&gt;-style_subtotal ).
IF &lt;fs_sfcat&gt;-is_collapsed = abap_true.
lo_row_dim = wo_worksheet-&gt;get_row_dimension( ip_row = l_row_int ).
lo_row_dim-&gt;set_collapsed( ip_collapsed = &lt;fs_sfcat&gt;-is_collapsed ).
IF &lt;fs_sfcat&gt;-sort_level &gt; l_hidden.
lo_row_dim-&gt;set_visible( ip_visible = abap_false ) .
ENDIF.
ENDIF.
ADD 1 TO l_row_int.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSE.
ADD 1 TO l_row_int.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
* Let&apos;s set the row dimension values
lo_row_dim = wo_worksheet-&gt;get_row_dimension( ip_row = l_row_int ).
lo_row_dim-&gt;set_outline_level( ip_outline_level = ws_layout-max_subtotal_level ) .
IF &lt;fs_sfcat&gt;-is_collapsed = abap_true.
lo_row_dim-&gt;set_visible( ip_visible = abap_false ) .
lo_row_dim-&gt;set_collapsed( ip_collapsed = &lt;fs_sfcat&gt;-is_collapsed ) .
ENDIF.
* Now let&apos;s write the cell values
IF ws_layout-is_stripped = abap_true AND l_s_color = abap_true.
l_style = get_color_style( i_row = l_table_row
i_fieldname = &lt;fs_sfcat&gt;-columnname
i_style = &lt;fs_sfcat&gt;-style_stripped ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = &lt;fs_fldval&gt;
ip_style = l_style ).
CLEAR l_s_color.
ELSE.
l_style = get_color_style( i_row = l_table_row
i_fieldname = &lt;fs_sfcat&gt;-columnname
i_style = &lt;fs_sfcat&gt;-style_normal ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = &lt;fs_fldval&gt;
ip_style = l_style ).
l_s_color = abap_true.
ENDIF.
READ TABLE wt_filter TRANSPORTING NO FIELDS WITH TABLE KEY rownumber = l_table_row
columnname = &lt;fs_sfcat&gt;-columnname.
IF sy-subrc = 0.
wo_worksheet-&gt;get_cell( EXPORTING
ip_column = l_col_alpha
ip_row = l_row_int
IMPORTING
ep_value = l_cell_value ).
wo_autofilter-&gt;set_value( i_column = l_col_int
i_value = l_cell_value ).
ENDIF.
ADD 1 TO l_row_int.
ENDLOOP.
* Let&apos;s check for subtotal lines
DO.
READ TABLE wt_subtotal_rows TRANSPORTING NO FIELDS WITH TABLE KEY row_int = l_row_int.
IF sy-subrc = 0.
IF &lt;fs_sfcat&gt;-is_subtotalled = abap_false AND
&lt;fs_sfcat&gt;-totals_function IS NOT INITIAL.
DO.
READ TABLE wt_subtotal_rows INTO ls_subtotal_rows WITH TABLE KEY row_int = l_row_int.
IF sy-subrc = 0.
l_row_int_start = ls_subtotal_rows-row_int_start.
l_row_int_end = l_row_int - 1.
l_formula = create_formular_subtotal( i_row_int_start = l_row_int_start
i_row_int_end = l_row_int_end
i_column = l_col_alpha
i_totals_function = &lt;fs_sfcat&gt;-totals_function ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_formula = l_formula
ip_style = &lt;fs_sfcat&gt;-style_subtotal ).
IF &lt;fs_sfcat&gt;-is_collapsed = abap_true.
lo_row_dim = wo_worksheet-&gt;get_row_dimension( ip_row = l_row_int ).
lo_row_dim-&gt;set_collapsed( ip_collapsed = &lt;fs_sfcat&gt;-is_collapsed ).
ENDIF.
ADD 1 TO l_row_int.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSE.
ADD 1 TO l_row_int.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
* Now let&apos;s check for Grand total
IF &lt;fs_sfcat&gt;-is_subtotalled = abap_false AND
&lt;fs_sfcat&gt;-totals_function IS NOT INITIAL.
l_row_int_start = i_row_int + 1.
l_row_int_end = l_row_int - 1.
l_formula = create_formular_subtotal( i_row_int_start = l_row_int_start
i_row_int_end = l_row_int_end
i_column = l_col_alpha
i_totals_function = &lt;fs_sfcat&gt;-totals_function ).
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_formula = l_formula
ip_style = &lt;fs_sfcat&gt;-style_subtotal ).
ENDIF.
* Now let&apos;s check for optimized
IF &lt;fs_sfcat&gt;-is_optimized = abap_true.
lo_col_dim = wo_worksheet-&gt;get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim-&gt;set_auto_size( ip_auto_size = abap_true ) .
ENDIF.
* Now let&apos;s check for visible
IF &lt;fs_sfcat&gt;-is_hidden = abap_true.
lo_col_dim = wo_worksheet-&gt;get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim-&gt;set_visible( ip_visible = abap_false ) .
ENDIF.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="OPEN_FILE" VERSION="1" LANGU="E" DESCRIPT="Open excel file" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method OPEN_FILE.
data: l_bytecount type i,
lt_file type solix_tab,
l_dir type string,
l_sep type c.
field-symbols: &lt;fs_data&gt; type any table.
assign wo_data-&gt;* to &lt;fs_data&gt;.
* catch zcx_excel .
*endtry.
if wo_excel is bound.
get_file( importing e_bytecount = l_bytecount
et_file = lt_file ) .
l_dir = create_path( ) .
cl_gui_frontend_services=&gt;gui_download( exporting bin_filesize = l_bytecount
filename = l_dir
filetype = &apos;BIN&apos;
changing data_tab = lt_file ).
cl_gui_frontend_services=&gt;execute(
exporting
document = l_dir
* application =
* parameter =
* default_directory =
* maximized =
* minimized =
* synchronous =
* operation = &apos;OPEN&apos;
exceptions
cntl_error = 1
error_no_gui = 2
bad_parameter = 3
file_not_found = 4
path_not_found = 5
file_extension_unknown = 6
error_execute_failed = 7
synchronous_failed = 8
not_supported_by_gui = 9
).
if sy-subrc &lt;&gt; 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endif.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_AUTOFILTER_AREA" VERSION="1" LANGU="E" DESCRIPT="Create autofilter" EXPOSURE="0" STATE="1" EDITORDER="22 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method SET_AUTOFILTER_AREA.
DATA: ls_area TYPE zexcel_s_autofilter_area,
l_lines TYPE i,
lt_values TYPE zexcel_t_autofilter_values,
ls_values TYPE zexcel_s_autofilter_values.
* Let&apos;s check for filter.
IF wo_autofilter IS BOUND.
ls_area-row_start = 1.
lt_values = wo_autofilter-&gt;get_values( ) .
SORT lt_values BY column ASCENDING.
DESCRIBE TABLE lt_values LINES l_lines.
READ TABLE lt_values INTO ls_values INDEX 1.
IF sy-subrc = 0.
ls_area-col_start = ls_values-column.
ENDIF.
READ TABLE lt_values INTO ls_values INDEX l_lines.
IF sy-subrc = 0.
ls_area-col_end = ls_values-column.
ENDIF.
wo_autofilter-&gt;set_filter_area( is_area = ls_area ) .
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_CELL_FORMAT" VERSION="1" LANGU="E" DESCRIPT="SET CELL FORMAT" EXPOSURE="0" STATE="1" EDITORDER="23 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_CELL_FORMAT" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_CELL_FORMAT" SCONAME="I_DECIMALS" VERSION="1" LANGU="E" DESCRIPT="Byte Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT1"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_CELL_FORMAT" SCONAME="R_FORMAT" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_NUMBER_FORMAT"/>
<source>method SET_CELL_FORMAT.
DATA: l_format TYPE zexcel_number_format.
CLEAR r_format.
CASE i_inttype.
WHEN cl_abap_typedescr=&gt;typekind_date.
r_format = wo_worksheet-&gt;get_default_excel_date_format( ).
WHEN cl_abap_typedescr=&gt;typekind_time.
r_format = wo_worksheet-&gt;get_default_excel_time_format( ).
WHEN cl_abap_typedescr=&gt;typekind_float OR cl_abap_typedescr=&gt;typekind_packed.
IF i_decimals &gt; 0 .
l_format = &apos;#,##0.&apos;.
DO i_decimals TIMES.
CONCATENATE l_format &apos;0&apos; INTO l_format.
ENDDO.
r_format = l_format.
ENDIF.
WHEN cl_abap_typedescr=&gt;typekind_int OR cl_abap_typedescr=&gt;typekind_int1 OR cl_abap_typedescr=&gt;typekind_int2.
r_format = &apos;#,##0&apos;.
ENDCASE.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Set fieldcatalog from table" EXPOSURE="0" STATE="1" EDITORDER="24 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method SET_FIELDCATALOG.
DATA: lr_data TYPE REF TO data,
lo_structdescr TYPE REF TO cl_abap_structdescr,
lt_dfies TYPE ddfields,
ls_dfies TYPE dfies,
ls_fieldcatalog TYPE zexcel_s_fieldcatalog.
DATA: ls_fcat TYPE zexcel_s_converter_fcat.
FIELD-SYMBOLS: &lt;fs_tab&gt; TYPE ANY TABLE.
ASSIGN wo_data-&gt;* TO &lt;fs_tab&gt; .
CREATE DATA lr_data LIKE LINE OF &lt;fs_tab&gt;.
lo_structdescr ?= cl_abap_structdescr=&gt;describe_by_data_ref( lr_data ).
lt_dfies = zcl_excel_common=&gt;describe_structure( io_struct = lo_structdescr ).
LOOP AT lt_dfies INTO ls_dfies.
MOVE-CORRESPONDING ls_dfies TO ls_fcat.
ls_fcat-columnname = ls_dfies-fieldname.
INSERT ls_fcat INTO TABLE wt_fieldcatalog.
ENDLOOP.
clean_fieldcatalog( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_OPTION" VERSION="1" LANGU="E" DESCRIPT="Set user option data" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_OPTION" SCONAME="IS_OPTION" VERSION="1" LANGU="E" DESCRIPT="Converter options for grid configuration" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_OPTION"/>
<source>method SET_OPTION.
IF ws_indx-begdt IS INITIAL.
ws_indx-begdt = sy-datum.
ENDIF.
ws_indx-aedat = sy-datum.
ws_indx-usera = sy-uname.
ws_indx-pgmid = sy-cprog.
EXPORT p1 = is_option TO DATABASE indx(xl) FROM ws_indx ID ws_indx-srtfd.
IF sy-subrc = 0.
ws_option = is_option.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WRITE_FILE" VERSION="1" LANGU="E" DESCRIPT="Write excel file" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WRITE_FILE" SCONAME="I_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<source>method WRITE_FILE.
data: l_bytecount type i,
lt_file type solix_tab,
l_dir type string.
field-symbols: &lt;fs_data&gt; type any table.
assign wo_data-&gt;* to &lt;fs_data&gt;.
* catch zcx_excel .
*endtry.
if wo_excel is bound.
get_file( importing e_bytecount = l_bytecount
et_file = lt_file ) .
if i_path is initial.
l_dir = create_path( ) .
else.
l_dir = i_path.
endif.
cl_gui_frontend_services=&gt;gui_download( exporting bin_filesize = l_bytecount
filename = l_dir
filetype = &apos;BIN&apos;
changing data_tab = lt_file ).
endif.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" LANGU="E" DESCRIPT="ALV grid interface implementation" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSABSTRCT="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_CONVERTER_ALV" REFCLSNAME="ZIF_EXCEL_CONVERTER" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" IMPABSTRCT="X" EDITORDER="0 "/>
<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
TYPES: BEGIN OF ts_col_converter,
col TYPE lvc_col,
int TYPE lvc_int,
inv TYPE lvc_inv,
fontcolor TYPE zexcel_style_color_argb,
fillcolor TYPE zexcel_style_color_argb,
END OF ts_col_converter,
tt_col_converter TYPE HASHED TABLE OF ts_col_converter WITH UNIQUE KEY col int inv.</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_CONVERTER_ALV" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER_ALV" TYPEGROUP="KKBLO" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<forwardDeclaration>KKBLO</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WS_LAYO" VERSION="1" LANGU="E" DESCRIPT="ALV control: Layout structure" EXPOSURE="1" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="LVC_S_LAYO" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WS_OPTION" VERSION="1" LANGU="E" DESCRIPT="Converter options for grid configuration" EXPOSURE="1" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_OPTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WT_COLORS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_COL_CONVERTER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WT_FCAT" VERSION="1" LANGU="E" DESCRIPT="Field Catalog for List Viewer Control" EXPOSURE="1" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="LVC_T_FCAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WT_FILT" VERSION="1" LANGU="E" DESCRIPT="ALV control: Table of filter conditions" EXPOSURE="1" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="LVC_T_FILT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WT_SORT" VERSION="1" LANGU="E" DESCRIPT="ALV Control: Table of Sort Criteria" EXPOSURE="1" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="LVC_T_SORT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="APPLY_SORT" VERSION="1" LANGU="E" DESCRIPT="Apply sort criteria to data table" EXPOSURE="1" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="APPLY_SORT" SCONAME="IT_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="APPLY_SORT" SCONAME="EO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
<source>method APPLY_SORT.
DATA: lt_otab TYPE abap_sortorder_tab,
ls_otab TYPE abap_sortorder.
FIELD-SYMBOLS: &lt;fs_table&gt; TYPE STANDARD TABLE,
&lt;fs_sort&gt; TYPE lvc_s_sort.
CREATE DATA eo_table LIKE it_table.
ASSIGN eo_table-&gt;* TO &lt;fs_table&gt;.
&lt;fs_table&gt; = it_table.
SORT wt_sort BY spos.
LOOP AT wt_sort ASSIGNING &lt;fs_sort&gt;.
IF &lt;fs_sort&gt;-up = abap_true.
ls_otab-name = &lt;fs_sort&gt;-fieldname.
ls_otab-descending = abap_false.
* ls_otab-astext = abap_true. &quot; not only text fields
INSERT ls_otab INTO TABLE lt_otab.
ENDIF.
IF &lt;fs_sort&gt;-down = abap_true.
ls_otab-name = &lt;fs_sort&gt;-fieldname.
ls_otab-descending = abap_true.
* ls_otab-astext = abap_true. &quot; not only text fields
INSERT ls_otab INTO TABLE lt_otab.
ENDIF.
ENDLOOP.
IF lt_otab IS NOT INITIAL.
SORT &lt;fs_table&gt; BY (lt_otab).
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="CLASS_CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CLASS_CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLASS_CONSTRUCTOR.
* let&apos;s fill the color conversion routines.
DATA: ls_color TYPE ts_col_converter.
* 0 all combination the same
ls_color-col = 0.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 0.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 0.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 0.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
* Blue
ls_color-col = 1.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFB0E4FC&apos;. &quot; 176 228 252 blue
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 1.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFB0E4FC&apos;. &quot; 176 228 252 blue
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 1.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FF5FCBFE&apos;. &quot; 095 203 254 Int blue
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 1.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FF5FCBFE&apos;. &quot; 095 203 254
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255
INSERT ls_color INTO TABLE wt_colors.
* Gray
ls_color-col = 2.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;.
ls_color-fillcolor = &apos;FFE5EAF0&apos;. &quot; 229 234 240 gray
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 2.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFE5EAF0&apos;. &quot; 229 234 240 gray
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 2.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFD8E8F4&apos;. &quot; 216 234 244 int gray
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 2.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFD8E8F4&apos;. &quot; 216 234 244 int gray
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
*Yellow
ls_color-col = 3.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFFEFEB8&apos;. &quot; 254 254 184 yellow
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 3.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFFEFEB8&apos;. &quot; 254 254 184 yellow
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 3.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFF9ED5D&apos;. &quot; 249 237 093 int yellow
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 3.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFF9ED5D&apos;. &quot; 249 237 093 int yellow
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
* light blue
ls_color-col = 4.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFCEE7FB&apos;. &quot; 206 231 251 light blue
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 4.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFCEE7FB&apos;. &quot; 206 231 251 light blue
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 4.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FF9ACCEF&apos;. &quot; 154 204 239 int light blue
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 4.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FF9ACCEF&apos;. &quot; 154 204 239 int light blue
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
* Green
ls_color-col = 5.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFCEF8AE&apos;. &quot; 206 248 174 Green
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 5.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFCEF8AE&apos;. &quot; 206 248 174 Green
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 5.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FF7AC769&apos;. &quot; 122 199 105 int Green
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 5.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FF7AC769&apos;. &quot; 122 199 105 int Green
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
* Red
ls_color-col = 6.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFFDBBBC&apos;. &quot; 253 187 188 Red
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 6.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFFDBBBC&apos;. &quot; 253 187 188 Red
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 6.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = &apos;FF000000&apos;. &quot; 000 000 000 Black
ls_color-fillcolor = &apos;FFFB6B6B&apos;. &quot; 251 107 107 int Red
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 6.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = &apos;FFFB6B6B&apos;. &quot; 251 107 107 int Red
ls_color-fillcolor = &apos;FFFFFFFF&apos;. &quot; 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_COLOR" VERSION="1" LANGU="E" DESCRIPT="Create color table for formating" EXPOSURE="1" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_COLOR" SCONAME="IO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_COLOR" SCONAME="ET_COLORS" VERSION="1" LANGU="E" DESCRIPT="Table type for color information of cells for converter" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_COL"/>
<source>method GET_COLOR.
DATA: ls_con_col TYPE zexcel_s_converter_col,
ls_color TYPE ts_col_converter,
l_line TYPE i,
l_color(4) TYPE c.
FIELD-SYMBOLS: &lt;fs_tab&gt; TYPE STANDARD TABLE,
&lt;fs_stab&gt; TYPE ANY,
&lt;fs&gt; TYPE ANY,
&lt;fs_tcol&gt; TYPE lvc_t_scol,
&lt;fs_scol&gt; TYPE lvc_s_scol.
* Loop trough the table to set the color properties of each line. The color properties field is
* Char 4 and the characters is set as follows:
* Char 1 = C = This is a color property
* Char 2 = 6 = Color code (1 - 7)
* Char 3 = Intensified on/of = 1 = on
* Char 4 = Inverse display = 0 = of
ASSIGN io_table-&gt;* TO &lt;fs_tab&gt;.
IF ws_layo-info_fname IS NOT INITIAL OR
ws_layo-ctab_fname IS NOT INITIAL.
LOOP AT &lt;fs_tab&gt; ASSIGNING &lt;fs_stab&gt;.
l_line = sy-tabix.
IF ws_layo-info_fname IS NOT INITIAL.
ASSIGN COMPONENT ws_layo-info_fname OF STRUCTURE &lt;fs_stab&gt; TO &lt;fs&gt;.
IF sy-subrc = 0.
IF &lt;fs&gt; IS NOT INITIAL.
l_color = &lt;fs&gt;.
IF l_color(1) = &apos;C&apos;.
READ TABLE wt_colors INTO ls_color WITH TABLE KEY col = l_color+1(1)
int = l_color+2(1)
inv = l_color+3(1).
IF sy-subrc = 0.
ls_con_col-rownumber = l_line.
ls_con_col-columnname = space.
ls_con_col-fontcolor = ls_color-fontcolor.
ls_con_col-fillcolor = ls_color-fillcolor.
INSERT ls_con_col INTO TABLE et_colors.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF ws_layo-ctab_fname IS NOT INITIAL.
ASSIGN COMPONENT ws_layo-ctab_fname OF STRUCTURE &lt;fs_stab&gt; TO &lt;fs_tcol&gt;.
IF sy-subrc = 0.
LOOP AT &lt;fs_tcol&gt; ASSIGNING &lt;fs_scol&gt;.
READ TABLE wt_colors INTO ls_color WITH TABLE KEY col = &lt;fs_scol&gt;-color-col
int = &lt;fs_scol&gt;-color-int
inv = &lt;fs_scol&gt;-color-inv.
IF sy-subrc = 0.
ls_con_col-rownumber = l_line.
ls_con_col-columnname = &lt;fs_scol&gt;-fname.
ls_con_col-fontcolor = ls_color-fontcolor.
ls_con_col-fillcolor = ls_color-fillcolor.
ls_con_col-nokeycol = &lt;fs_scol&gt;-nokeycol.
INSERT ls_con_col INTO TABLE et_colors.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_FILTER" VERSION="1" LANGU="E" DESCRIPT="Create filter values" EXPOSURE="1" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_FILTER" SCONAME="ET_FILTER" VERSION="1" LANGU="E" DESCRIPT="Table type for filter information of cells for converter" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FIL"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_FILTER" SCONAME="XO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
<source>METHOD get_filter.
DATA: ls_filt TYPE lvc_s_filt,
l_line TYPE i,
ls_filter TYPE zexcel_s_converter_fil.
DATA: lo_addit TYPE REF TO cl_abap_elemdescr,
lt_components_tab TYPE cl_abap_structdescr=&gt;component_table,
ls_components TYPE abap_componentdescr,
lo_table TYPE REF TO cl_abap_tabledescr,
lo_struc TYPE REF TO cl_abap_structdescr,
lo_trange TYPE REF TO data,
lo_srange TYPE REF TO data,
lo_ltabdata TYPE REF TO data.
FIELD-SYMBOLS: &lt;fs_tab&gt; TYPE STANDARD TABLE,
&lt;fs_ltab&gt; TYPE STANDARD TABLE,
&lt;fs_stab&gt; TYPE any,
&lt;fs&gt; TYPE any,
&lt;fs1&gt; TYPE any,
&lt;fs_srange&gt; TYPE any,
&lt;fs_trange&gt; TYPE STANDARD TABLE.
IF ws_option-filter = abap_false.
REFRESH et_filter.
RETURN.
ENDIF.
ASSIGN xo_table-&gt;* TO &lt;fs_tab&gt;.
CREATE DATA lo_ltabdata LIKE &lt;fs_tab&gt;.
ASSIGN lo_ltabdata-&gt;* TO &lt;fs_ltab&gt;.
LOOP AT wt_filt INTO ls_filt.
LOOP AT &lt;fs_tab&gt; ASSIGNING &lt;fs_stab&gt;.
l_line = sy-tabix.
ASSIGN COMPONENT ls_filt-fieldname OF STRUCTURE &lt;fs_stab&gt; TO &lt;fs&gt;.
IF sy-subrc = 0.
IF l_line = 1.
REFRESH lt_components_tab.
ls_components-name = &apos;SIGN&apos;.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_data( ls_filt-sign ).
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
ls_components-name = &apos;OPTION&apos;.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_data( ls_filt-option ).
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
ls_components-name = &apos;LOW&apos;.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_data( &lt;fs&gt; ).
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
ls_components-name = &apos;HIGH&apos;.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_data( &lt;fs&gt; ).
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
&quot;create new line type
TRY.
lo_struc = cl_abap_structdescr=&gt;create( p_components = lt_components_tab
p_strict = abap_false ).
CATCH cx_sy_struct_creation.
CONTINUE.
ENDTRY.
lo_table = cl_abap_tabledescr=&gt;create( lo_struc ).
CREATE DATA lo_trange TYPE HANDLE lo_table.
CREATE DATA lo_srange TYPE HANDLE lo_struc.
ASSIGN lo_trange-&gt;* TO &lt;fs_trange&gt;.
ASSIGN lo_srange-&gt;* TO &lt;fs_srange&gt;.
ENDIF.
REFRESH &lt;fs_trange&gt;.
ASSIGN COMPONENT &apos;SIGN&apos; OF STRUCTURE &lt;fs_srange&gt; TO &lt;fs1&gt;.
&lt;fs1&gt; = ls_filt-sign.
ASSIGN COMPONENT &apos;OPTION&apos; OF STRUCTURE &lt;fs_srange&gt; TO &lt;fs1&gt;.
&lt;fs1&gt; = ls_filt-option.
ASSIGN COMPONENT &apos;LOW&apos; OF STRUCTURE &lt;fs_srange&gt; TO &lt;fs1&gt;.
&lt;fs1&gt; = ls_filt-low.
ASSIGN COMPONENT &apos;HIGH&apos; OF STRUCTURE &lt;fs_srange&gt; TO &lt;fs1&gt;.
&lt;fs1&gt; = ls_filt-high.
INSERT &lt;fs_srange&gt; INTO TABLE &lt;fs_trange&gt;.
IF &lt;fs&gt; IN &lt;fs_trange&gt;.
IF ws_option-filter = abap_true.
ls_filter-rownumber = l_line.
ls_filter-columnname = ls_filt-fieldname.
INSERT ls_filter INTO TABLE et_filter.
ELSE.
INSERT &lt;fs_stab&gt; INTO TABLE &lt;fs_ltab&gt;.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
IF ws_option-filter = abap_undefined.
&lt;fs_tab&gt; = &lt;fs_ltab&gt;.
REFRESH &lt;fs_ltab&gt;.
ENDIF.
ENDLOOP.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="UPDATE_CATALOG" VERSION="1" LANGU="E" DESCRIPT="Create fieldcatalog and layout" EXPOSURE="1" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="UPDATE_CATALOG" SCONAME="CS_LAYOUT" VERSION="1" LANGU="E" DESCRIPT="Converter settings for table" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_LAYO"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="UPDATE_CATALOG" SCONAME="CT_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Conter table for tabel fields" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FCAT"/>
<source>method UPDATE_CATALOG.
DATA: ls_fieldcatalog TYPE zexcel_s_converter_fcat,
ls_ref TYPE salv_s_ddic_reference,
ls_fcat TYPE lvc_s_fcat,
ls_sort TYPE lvc_s_sort,
l_decimals TYPE lvc_decmls.
FIELD-SYMBOLS: &lt;fs_scat&gt; TYPE zexcel_s_converter_fcat.
IF ws_layo-zebra IS NOT INITIAL.
cs_layout-is_stripped = abap_true.
ENDIF.
IF ws_layo-no_keyfix IS INITIAL OR
ws_layo-no_keyfix = &apos;0&apos;.
cs_layout-is_fixed = abap_true.
ENDIF.
LOOP AT wt_fcat INTO ls_fcat.
CLEAR: ls_fieldcatalog,
l_decimals.
CASE ws_option-hidenc.
WHEN abap_false. &quot; We make hiden columns visible
CLEAR ls_fcat-no_out.
WHEN abap_true.
* We convert column and hide it.
WHEN abap_undefined. &quot;We don&apos;t convert hiden columns
IF ls_fcat-no_out = abap_true.
ls_fcat-tech = abap_true.
ENDIF.
ENDCASE.
IF ls_fcat-tech = abap_false.
ls_fieldcatalog-tabname = ls_fcat-tabname.
ls_fieldcatalog-fieldname = ls_fcat-fieldname .
ls_fieldcatalog-columnname = ls_fcat-fieldname .
ls_fieldcatalog-position = ls_fcat-col_pos.
ls_fieldcatalog-col_id = ls_fcat-col_id.
ls_fieldcatalog-convexit = ls_fcat-convexit.
ls_fieldcatalog-inttype = ls_fcat-inttype.
ls_fieldcatalog-scrtext_s = ls_fcat-scrtext_s .
ls_fieldcatalog-scrtext_m = ls_fcat-scrtext_m .
ls_fieldcatalog-scrtext_l = ls_fcat-scrtext_l.
l_decimals = ls_fcat-decimals_o.
IF l_decimals IS NOT INITIAL.
ls_fieldcatalog-decimals = l_decimals.
ELSE.
ls_fieldcatalog-decimals = ls_fcat-decimals .
ENDIF.
CASE ws_option-subtot.
WHEN abap_false. &quot; We ignore subtotals
CLEAR ls_fcat-do_sum.
WHEN abap_true. &quot; We convert subtotals and detail
WHEN abap_undefined. &quot; We should only take subtotals and displayed detail
* for now abap_true
ENDCASE.
CASE ls_fcat-do_sum.
WHEN abap_true.
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_sum.
WHEN &apos;A&apos;.
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_min.
WHEN &apos;B&apos; .
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_max.
WHEN &apos;C&apos; .
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_average.
WHEN OTHERS.
CLEAR ls_fieldcatalog-totals_function .
ENDCASE.
ls_fieldcatalog-fix_column = ls_fcat-fix_column.
IF ws_layo-cwidth_opt IS INITIAL.
IF ls_fcat-col_opt IS NOT INITIAL.
ls_fieldcatalog-is_optimized = abap_true.
ENDIF.
ELSE.
ls_fieldcatalog-is_optimized = abap_true.
ENDIF.
IF ls_fcat-no_out IS NOT INITIAL.
ls_fieldcatalog-is_hidden = abap_true.
ls_fieldcatalog-position = ls_fieldcatalog-col_id. &quot; We hide based on orginal data structure
ENDIF.
* Alignment in each cell
CASE ls_fcat-just.
WHEN &apos;R&apos;.
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_right.
WHEN &apos;L&apos;.
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_left.
WHEN &apos;C&apos;.
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_center.
WHEN OTHERS.
CLEAR ls_fieldcatalog-alignment.
ENDCASE.
* Check for subtotals.
READ TABLE wt_sort INTO ls_sort WITH KEY fieldname = ls_fcat-fieldname.
IF sy-subrc = 0 AND ws_option-subtot &lt;&gt; abap_false.
ls_fieldcatalog-sort_level = 0 .
* IF ls_fieldcatalog-totals_function IS INITIAL. &quot; Not clear why not
* CLEAR ls_fieldcatalog-is_subtotalled.
* ELSE.
ls_fieldcatalog-is_subtotalled = ls_sort-subtot.
* ENDIF.
ls_fieldcatalog-is_collapsed = ls_sort-expa.
IF ls_fieldcatalog-is_subtotalled = abap_true.
ls_fieldcatalog-sort_level = ls_sort-spos.
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_sum. &quot; we need function for text
ENDIF.
ENDIF.
APPEND ls_fieldcatalog TO ct_fieldcatalog.
ENDIF.
ENDLOOP.
SORT ct_fieldcatalog BY sort_level ASCENDING.
cs_layout-max_subtotal_level = 0.
LOOP AT ct_fieldcatalog ASSIGNING &lt;fs_scat&gt; WHERE sort_level &gt; 0.
cs_layout-max_subtotal_level = cs_layout-max_subtotal_level + 1.
&lt;fs_scat&gt;-sort_level = cs_layout-max_subtotal_level.
ENDLOOP.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" VERSION="1" LANGU="E" DESCRIPT="SALV converter" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV">
<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>
<inheritance CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" STATE="1">
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT" EXPOSURE="0"/>
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG" EXPOSURE="0"/>
</inheritance>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CPDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT">
<source>method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
data: lo_alv type REF TO cl_gui_alv_grid.
try.
lo_alv ?= io_object.
catch cx_sy_move_cast_error .
raise exception type zcx_excel.
endtry.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
<source>METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
TRY.
zif_excel_converter~can_convert_object( io_object = io_object ).
ENDTRY.
ws_option = is_option.
lo_alv ?= io_object.
CLEAR: es_layout,
et_fieldcatalog.
IF lo_alv IS BOUND.
lo_alv-&gt;get_frontend_fieldcatalog( IMPORTING et_fieldcatalog = wt_fcat ).
lo_alv-&gt;get_frontend_layout( IMPORTING es_layout = ws_layo ).
lo_alv-&gt;get_sort_criteria( IMPORTING et_sort = wt_sort ) .
lo_alv-&gt;get_filter_criteria( IMPORTING et_filter = wt_filt ) .
apply_sort( EXPORTING it_table = it_table
IMPORTING eo_table = eo_table ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ENDIF.
ENDMETHOD.</source>
</interfaceMethod>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" LANGU="E" DESCRIPT="Result object for table reference" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSABSTRCT="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV">
<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>
<inheritance CLSNAME="ZCL_EXCEL_CONVERTER_RESULT" REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" STATE="1"/>
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT" CMPNAME="GET_TABLE" VERSION="1" LANGU="E" DESCRIPT="Get table" EXPOSURE="1" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_RESULT" CMPNAME="GET_TABLE" SCONAME="IO_OBJECT" VERSION="1" LANGU="E" DESCRIPT="Data reference object" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_RESULT" CMPNAME="GET_TABLE" SCONAME="RO_DATA" VERSION="1" LANGU="E" DESCRIPT="Data table" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="DATA"/>
<source>method GET_TABLE.
DATA: lo_object TYPE REF TO object,
ls_seoclass TYPE seoclass,
l_method TYPE string.
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = &apos;IF_SALV_BS_DATA_SOURCE&apos;.
IF sy-subrc = 0.
l_method = &apos;GET_TABLE_REF&apos;.
lo_object ?= io_object.
CALL METHOD lo_object-&gt;(l_method)
RECEIVING
value = ro_data.
ELSE.
l_method = &apos;GET_REF_TO_TABLE&apos;.
lo_object ?= io_object.
CALL METHOD lo_object-&gt;(l_method)
RECEIVING
value = ro_data.
ENDIF.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_EX" VERSION="1" LANGU="E" DESCRIPT="SALV - ALV converter for export" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT">
<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>
<inheritance CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_EX" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" STATE="1">
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_EX" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT" EXPOSURE="0"/>
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_EX" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG" EXPOSURE="0"/>
</inheritance>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_EX" CPDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT">
<source>METHOD ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table.
TRY.
lo_result ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_EX" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
<source>METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table,
lo_ex_cm TYPE REF TO cl_salv_ex_cm,
lo_data TYPE REF TO data.
FIELD-SYMBOLS: &lt;fs_table&gt; TYPE STANDARD TABLE.
TRY.
zif_excel_converter~can_convert_object( io_object = io_object ).
ENDTRY.
ws_option = is_option.
lo_result ?= io_object.
CLEAR: es_layout,
et_fieldcatalog.
IF lo_result IS BOUND.
lo_data = get_table( io_object = lo_result-&gt;r_model-&gt;r_data ).
IF lo_data IS BOUND.
ASSIGN lo_data-&gt;* TO &lt;fs_table&gt; .
lo_ex_cm ?= lo_result-&gt;r_model-&gt;r_model.
ws_layo = lo_ex_cm-&gt;s_layo.
* T_DRDN Instance Attribute Public Type LVC_T_DROP
wt_fcat = lo_ex_cm-&gt;t_fcat.
wt_filt = lo_ex_cm-&gt;t_filt.
* T_HYPE Instance Attribute Public Type LVC_T_HYPE
* T_SELECTED_CELLS Instance Attribute Public Type LVC_T_CELL
* T_SELECTED_COLUMNS Instance Attribute Public Type LVC_T_COL
wt_sort = lo_ex_cm-&gt;t_sort.
apply_sort( EXPORTING it_table = &lt;fs_table&gt;
IMPORTING eo_table = eo_table ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
else.
* We have a problem and should stop here.
ENDIF.
ENDIF.
ENDMETHOD.</source>
</interfaceMethod>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" VERSION="1" LANGU="E" DESCRIPT="SALV converter for web dynpro" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT">
<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>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="WO_CONFIG" VERSION="1" LANGU="E" DESCRIPT="Configuration of the ALV Output" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_SALV_WD_CONFIG_TABLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="WT_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="SALV_WD_T_COLUMN_REF" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SALV_WD_T_COLUMN_REF" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="WT_FIELDS" VERSION="1" LANGU="E" DESCRIPT="SALV_WD_T_FIELD_REF" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SALV_WD_T_FIELD_REF" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<inheritance CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" STATE="1">
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT" EXPOSURE="0"/>
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG" EXPOSURE="0"/>
</inheritance>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CPDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT">
<source>METHOD ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
DATA: lo_result TYPE REF TO cl_salv_wd_result_data_table.
TRY.
lo_result ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
<source>METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_result TYPE REF TO cl_salv_wd_result_data_table,
lo_data TYPE REF TO data.
FIELD-SYMBOLS: &lt;fs_table&gt; TYPE STANDARD TABLE.
TRY.
zif_excel_converter~can_convert_object( io_object = io_object ).
ENDTRY.
ws_option = is_option.
lo_result ?= io_object.
CLEAR: es_layout,
et_fieldcatalog.
IF lo_result IS BOUND.
lo_data = get_table( io_object = lo_result-&gt;r_model-&gt;r_data ).
IF lo_data IS BOUND.
ASSIGN lo_data-&gt;* TO &lt;fs_table&gt; .
wo_config ?= lo_result-&gt;r_model-&gt;r_model.
IF wo_config IS BOUND.
wt_fields = wo_config-&gt;if_salv_wd_field_settings~get_fields( ) .
wt_columns = wo_config-&gt;if_salv_wd_column_settings~get_columns( ) .
ENDIF.
create_wt_fcat( io_table = lo_data ).
create_wt_sort( ).
create_wt_filt( ).
apply_sort( EXPORTING it_table = &lt;fs_table&gt;
IMPORTING eo_table = eo_table ) .
* get_color( EXPORTING io_table = eo_table
* IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ELSE.
* We have a problem and should stop here
ENDIF.
ENDIF.
ENDMETHOD.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="CREATE_WT_FCAT" VERSION="1" LANGU="E" DESCRIPT="Create wt_fcat for WD interface" EXPOSURE="0" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="CREATE_WT_FCAT" SCONAME="IO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
<source>method CREATE_WT_FCAT.
DATA: lr_data TYPE REF TO data,
lo_structdescr TYPE REF TO cl_abap_structdescr,
lt_dfies TYPE ddfields,
ls_dfies TYPE dfies,
lv_sytabix TYPE sytabix.
DATA: ls_fcat TYPE lvc_s_fcat.
FIELD-SYMBOLS: &lt;fs_tab&gt; TYPE ANY TABLE.
ASSIGN io_table-&gt;* TO &lt;fs_tab&gt; .
CREATE DATA lr_data LIKE LINE OF &lt;fs_tab&gt;.
lo_structdescr ?= cl_abap_structdescr=&gt;describe_by_data_ref( lr_data ).
lt_dfies = zcl_excel_common=&gt;describe_structure( io_struct = lo_structdescr ).
loop at lt_dfies into ls_dfies.
MOVE-CORRESPONDING ls_dfies TO ls_fcat.
* ls_fcat-columnname = ls_dfies-fieldname.
ls_fcat-col_pos = ls_dfies-position.
ls_fcat-key = ls_dfies-keyflag.
get_fields_info( CHANGING xs_fcat = ls_fcat ) .
ls_fcat-col_opt = abap_true.
get_columns_info( CHANGING xs_fcat = ls_fcat ) .
INSERT ls_fcat INTO TABLE wt_fcat.
endloop.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="CREATE_WT_FILT" VERSION="1" LANGU="E" DESCRIPT="Create wt_filt for WD interface" EXPOSURE="0" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CREATE_WT_FILT.
* No neeed for superclass.
* Only for WD
DATA: lt_otab TYPE abap_sortorder_tab,
ls_otab TYPE abap_sortorder.
DATA: lt_filters TYPE salv_wd_t_filter_rule_ref,
ls_filt TYPE lvc_s_filt.
FIELD-SYMBOLS: &lt;fs_fields&gt; TYPE salv_wd_s_field_ref,
&lt;fs_filter&gt; TYPE salv_wd_s_filter_rule_ref.
LOOP AT wt_fields ASSIGNING &lt;fs_fields&gt;.
REFRESH lt_filters.
lt_filters = &lt;fs_fields&gt;-r_field-&gt;if_salv_wd_filter~get_filter_rules( ) .
LOOP AT lt_filters ASSIGNING &lt;fs_filter&gt;.
ls_filt-fieldname = &lt;fs_fields&gt;-fieldname.
IF &lt;fs_filter&gt;-r_filter_rule-&gt;get_included( ) = abap_true.
ls_filt-sign = &apos;I&apos;.
ELSE.
ls_filt-sign = &apos;E&apos;.
ENDIF.
ls_filt-option = &lt;fs_filter&gt;-r_filter_rule-&gt;get_operator( ).
ls_filt-high = &lt;fs_filter&gt;-r_filter_rule-&gt;get_high_value( ) .
ls_filt-low = &lt;fs_filter&gt;-r_filter_rule-&gt;get_low_value( ) .
INSERT ls_filt INTO TABLE wt_filt.
ENDLOOP.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="CREATE_WT_SORT" VERSION="1" LANGU="E" DESCRIPT="Create wt_sort for WD interface" EXPOSURE="0" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CREATE_WT_SORT.
DATA: lo_sort TYPE REF TO cl_salv_wd_sort_rule,
l_sort_order TYPE salv_wd_constant,
ls_sort TYPE lvc_s_sort.
FIELD-SYMBOLS: &lt;fs_fields&gt; TYPE salv_wd_s_field_ref.
LOOP AT wt_fields ASSIGNING &lt;fs_fields&gt;.
lo_sort = &lt;fs_fields&gt;-r_field-&gt;if_salv_wd_sort~get_sort_rule( ) .
IF lo_sort IS BOUND.
l_sort_order = lo_sort-&gt;get_sort_order( ).
IF l_sort_order &lt;&gt; if_salv_wd_c_sort=&gt;sort_order.
CLEAR ls_sort.
ls_sort-spos = lo_sort-&gt;get_sort_position( ).
ls_sort-fieldname = &lt;fs_fields&gt;-fieldname.
* ls_sort-GROUP
ls_sort-subtot = lo_sort-&gt;get_group_aggregation( ).
* ls_sort-COMP
* ls_sort-EXPA
* ls_sort-SELTEXT
* ls_sort-OBLIGATORY
* ls_sort-LEVEL
* ls_sort-NO_OUT
IF l_sort_order = if_salv_wd_c_sort=&gt;sort_order_ascending.
ls_sort-up = abap_true.
ELSE.
ls_sort-down = abap_true.
ENDIF.
INSERT ls_sort INTO TABLE wt_sort.
ENDIF.
ENDIF.
ENDLOOP.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="GET_COLUMNS_INFO" VERSION="1" LANGU="E" DESCRIPT="Read data from WD columns object" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="GET_COLUMNS_INFO" SCONAME="XS_FCAT" VERSION="1" LANGU="E" DESCRIPT="ALV control: Field catalog" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="LVC_S_FCAT"/>
<source>method GET_COLUMNS_INFO.
DATA: l_numc2 TYPE salv_wd_constant.
FIELD-SYMBOLS: &lt;fs_column&gt; TYPE salv_wd_s_column_ref.
READ TABLE wt_columns ASSIGNING &lt;fs_column&gt; WITH KEY id = xs_fcat-fieldname .
IF sy-subrc = 0.
xs_fcat-col_pos = &lt;fs_column&gt;-r_column-&gt;get_position( ) .
l_numc2 = &lt;fs_column&gt;-r_column-&gt;get_fixed_position( ).
IF l_numc2 = &apos;02&apos;.
xs_fcat-fix_column = abap_true .
ENDIF.
l_numc2 = &lt;fs_column&gt;-r_column-&gt;get_visible( ).
IF l_numc2 = &apos;01&apos;.
xs_fcat-no_out = abap_true .
ENDIF.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="GET_FIELDS_INFO" VERSION="1" LANGU="E" DESCRIPT="Get aggregation from field table" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="GET_FIELDS_INFO" SCONAME="XS_FCAT" VERSION="1" LANGU="E" DESCRIPT="ALV control: Field catalog" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="LVC_S_FCAT"/>
<source>method GET_FIELDS_INFO.
DATA: lo_aggr TYPE REF TO cl_salv_wd_aggr_rule,
l_aggrtype TYPE salv_wd_constant.
FIELD-SYMBOLS: &lt;fs_fields&gt; TYPE salv_wd_s_field_ref.
READ TABLE wt_fields ASSIGNING &lt;fs_fields&gt; WITH KEY fieldname = xs_fcat-fieldname.
IF sy-subrc = 0.
lo_aggr = &lt;fs_fields&gt;-r_field-&gt;if_salv_wd_aggr~get_aggr_rule( ) .
IF lo_aggr IS BOUND.
l_aggrtype = lo_aggr-&gt;get_aggregation_type( ) .
CASE l_aggrtype.
WHEN if_salv_wd_c_aggregation=&gt;aggrtype_total.
xs_fcat-do_sum = abap_true.
WHEN if_salv_wd_c_aggregation=&gt;aggrtype_minimum.
xs_fcat-do_sum = &apos;A&apos;.
WHEN if_salv_wd_c_aggregation=&gt;aggrtype_maximum .
xs_fcat-do_sum = &apos;B&apos;.
WHEN if_salv_wd_c_aggregation=&gt;aggrtype_average .
xs_fcat-do_sum = &apos;C&apos;.
WHEN OTHERS.
CLEAR xs_fcat-do_sum .
ENDCASE.
ENDIF.
ENDIF.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" VERSION="1" LANGU="E" DESCRIPT="SALV converter" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV">
<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>
<inheritance CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" STATE="1">
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT" EXPOSURE="0"/>
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" REFCLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG" EXPOSURE="0"/>
</inheritance>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CPDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT">
<source>METHOD zif_excel_converter~can_convert_object.
DATA: lo_salv TYPE REF TO cl_salv_table.
TRY.
lo_salv ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
<source>METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_salv TYPE REF TO cl_salv_table.
TRY.
zif_excel_converter~can_convert_object( io_object = io_object ).
ENDTRY.
ws_option = is_option.
lo_salv ?= io_object.
CLEAR: es_layout,
et_fieldcatalog,
et_colors .
IF lo_salv IS BOUND.
load_data( EXPORTING io_salv = lo_salv
it_table = it_table ).
apply_sort( EXPORTING it_table = it_table
IMPORTING eo_table = eo_table ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ENDIF.
ENDMETHOD.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CMPNAME="LOAD_DATA" VERSION="1" LANGU="E" DESCRIPT="Fill internal layout tables" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CMPNAME="LOAD_DATA" SCONAME="IO_SALV" VERSION="1" LANGU="E" DESCRIPT="Basis Class for Simple Tables" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="CL_SALV_TABLE"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CMPNAME="LOAD_DATA" SCONAME="IT_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<source>method LOAD_DATA.
DATA: lo_columns TYPE REF TO cl_salv_columns_table,
lo_aggregations TYPE REF TO cl_salv_aggregations,
lo_sorts TYPE REF TO cl_salv_sorts,
lo_filters TYPE REF TO cl_salv_filters,
lo_functional TYPE REF TO cl_salv_functional_settings,
lo_display TYPE REF TO cl_salv_display_settings,
lo_selections TYPE REF TO cl_salv_selections.
DATA: ls_vari TYPE disvariant,
lo_layout TYPE REF TO cl_salv_layout.
DATA: lr_form_tol TYPE REF TO cl_salv_form,
lr_form_eol TYPE REF TO cl_salv_form.
DATA lt_kkblo_fieldcat TYPE kkblo_t_fieldcat.
DATA ls_kkblo_layout TYPE kkblo_layout.
DATA lt_kkblo_filter TYPE kkblo_t_filter.
DATA lt_kkblo_sort TYPE kkblo_t_sortinfo.
lo_layout = io_salv-&gt;get_layout( ) .
lo_columns = io_salv-&gt;get_columns( ).
lo_aggregations = io_salv-&gt;get_aggregations( ) .
lo_sorts = io_salv-&gt;get_sorts( ) .
lo_filters = io_salv-&gt;get_filters( ) .
lo_display = io_salv-&gt;get_display_settings( ) .
lo_functional = io_salv-&gt;get_functional_settings( ) .
REFRESH: wt_fcat,
wt_sort,
wt_filt.
* First update metadata if we can.
IF io_salv-&gt;is_offline( ) = abap_false.
io_salv-&gt;get_metadata( ) .
ELSE.
* If we are offline we need to build this.
cl_salv_controller_metadata=&gt;get_variant(
EXPORTING
r_layout = lo_layout
CHANGING
s_variant = ls_vari ).
ENDIF.
*... get the column information
wt_fcat = cl_salv_controller_metadata=&gt;get_lvc_fieldcatalog(
r_columns = lo_columns
r_aggregations = lo_aggregations ).
*... get the layout information
cl_salv_controller_metadata=&gt;get_lvc_layout(
EXPORTING
r_functional_settings = lo_functional
r_display_settings = lo_display
r_columns = lo_columns
r_aggregations = lo_aggregations
CHANGING
s_layout = ws_layo ).
* the fieldcatalog is not complete yet!
CALL FUNCTION &apos;LVC_FIELDCAT_COMPLETE&apos;
EXPORTING
i_complete = &apos;X&apos;
i_refresh_buffer = space
i_buffer_active = space
is_layout = ws_layo
i_test = &apos;1&apos;
i_fcat_complete = &apos;X&apos;
IMPORTING
* E_EDIT =
es_layout = ws_layo
CHANGING
ct_fieldcat = wt_fcat.
IF ls_vari IS NOT INITIAL AND io_salv-&gt;is_offline( ) = abap_true.
CALL FUNCTION &apos;LVC_TRANSFER_TO_KKBLO&apos;
EXPORTING
it_fieldcat_lvc = wt_fcat
is_layout_lvc = ws_layo
IMPORTING
et_fieldcat_kkblo = lt_kkblo_fieldcat
es_layout_kkblo = ls_kkblo_layout
TABLES
it_data = it_table
EXCEPTIONS
it_data_missing = 1
it_fieldcat_lvc_missing = 2
OTHERS = 3.
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION &apos;LT_VARIANT_LOAD&apos;
EXPORTING
* I_TOOL = &apos;LT&apos;
i_tabname = &apos;1&apos;
* I_TABNAME_SLAVE =
i_dialog = &apos; &apos;
* I_USER_SPECIFIC = &apos; &apos;
* I_DEFAULT = &apos;X&apos;
* I_NO_REPTEXT_OPTIMIZE =
* I_VIA_GRID =
i_fcat_complete = &apos;X&apos;
IMPORTING
* E_EXIT =
et_fieldcat = lt_kkblo_fieldcat
et_sort = lt_kkblo_sort
et_filter = lt_kkblo_filter
CHANGING
cs_layout = ls_kkblo_layout
ct_default_fieldcat = lt_kkblo_fieldcat
cs_variant = ls_vari
EXCEPTIONS
wrong_input = 1
fc_not_complete = 2
not_found = 3
OTHERS = 4
.
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION &apos;LVC_TRANSFER_FROM_KKBLO&apos;
EXPORTING
* I_TECH_COMPLETE =
* I_STRUCTURE_NAME =
it_fieldcat_kkblo = lt_kkblo_fieldcat
it_sort_kkblo = lt_kkblo_sort
it_filter_kkblo = lt_kkblo_filter
* IT_SPECIAL_GROUPS_KKBLO =
* IT_FILTERED_ENTRIES_KKBLO =
* IT_GROUPLEVELS_KKBLO =
* IS_SUBTOT_OPTIONS_KKBLO =
is_layout_kkblo = ls_kkblo_layout
* IS_REPREP_ID_KKBLO =
* I_CALLBACK_PROGRAM_KKBLO =
* IT_ADD_FIELDCAT =
* IT_EXCLUDING_KKBLO =
* IT_EXCEPT_QINFO_KKBLO =
IMPORTING
et_fieldcat_lvc = wt_fcat
et_sort_lvc = wt_sort
et_filter_lvc = wt_filt
* ET_SPECIAL_GROUPS_LVC =
* ET_FILTER_INDEX_LVC =
* ET_GROUPLEVELS_LVC =
* ES_TOTAL_OPTIONS_LVC =
es_layout_lvc = ws_layo
* ES_VARIANT_LVC =
* E_VARIANT_SAVE_LVC =
* ES_PRINT_INFO_LVC =
* ES_REPREP_LVC =
* E_REPREP_ACTIVE_LVC =
* ET_EXCLUDING_LVC =
* ET_EXCEPT_QINFO_LVC =
TABLES
it_data = it_table
EXCEPTIONS
it_data_missing = 1
OTHERS = 2
.
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ELSE.
* ... get the sort information
wt_sort = cl_salv_controller_metadata=&gt;get_lvc_sort( lo_sorts ).
* ... get the filter information
wt_filt = cl_salv_controller_metadata=&gt;get_lvc_filter( lo_filters ).
ENDIF.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CUSTOMUI" VERSION="1" LANGU="E" DESCRIPT="Excel customUI" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_CUSTOMUI_BUTTON" VERSION="1" LANGU="E" DESCRIPT="Excel customUI Button" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_CUSTOMUI_BUTTON" REFCLSNAME="ZIF_EXCEL_CUSTOMUI_ELEMENT" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_DATA_VALIDATION" VERSION="1" LANGU="E" DESCRIPT="Data validation" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_DATA_VALIDATION" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="ALLOWBLANK" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CELL_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CELL_COLUMN_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CELL_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CELL_ROW_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_OPERATOR_BETWEEN" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="2" ATTVALUE="&apos;between&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_OPERATOR_EQUAL" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="2" ATTVALUE="&apos;equal&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_OPERATOR_GREATERTHAN" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="2" ATTVALUE="&apos;greaterThan&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_OPERATOR_GREATERTHANOREQUAL" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="27 " ATTDECLTYP="2" ATTVALUE="&apos;greaterThanOrEqual&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_OPERATOR_LESSTHAN" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="28 " ATTDECLTYP="2" ATTVALUE="&apos;lessThan&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_OPERATOR_LESSTHANOREQUAL" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="29 " ATTDECLTYP="2" ATTVALUE="&apos;lessThanOrEqual&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_OPERATOR_NOTBETWEEN" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="30 " ATTDECLTYP="2" ATTVALUE="&apos;notBetween&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_OPERATOR_NOTEQUAL" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="31 " ATTDECLTYP="2" ATTVALUE="&apos;notEqual&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_STYLE_INFORMATION" VERSION="1" LANGU="E" DESCRIPT="Data validation error style" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="2" ATTVALUE="&apos;information&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_ERROR_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_STYLE_STOP" VERSION="1" LANGU="E" DESCRIPT="Data validation error style" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTVALUE="&apos;stop&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_ERROR_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_STYLE_WARNING" VERSION="1" LANGU="E" DESCRIPT="Data validation error style" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="2" ATTVALUE="&apos;warning&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_ERROR_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_TYPE_CUSTOM" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;custom&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_TYPE_DATE" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;date&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_TYPE_DECIMAL" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;decimal&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_TYPE_LIST" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;list&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_TYPE_NONE" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;none&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_TYPE_TEXTLENGTH" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="&apos;textLength&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_TYPE_TIME" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="&apos;time&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_TYPE_WHOLE" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTVALUE="&apos;whole&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="ERROR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="34 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="ERRORSTYLE" VERSION="1" LANGU="E" DESCRIPT="Data validation error style" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_ERROR_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="ERRORTITLE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="33 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="FORMULA1" VERSION="1" LANGU="E" DESCRIPT="Validation formula1" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_VALIDATION_FORMULA1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="FORMULA2" VERSION="1" LANGU="E" DESCRIPT="Validation formula2" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_VALIDATION_FORMULA1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="OPERATOR" VERSION="1" LANGU="E" DESCRIPT="Data validation operator" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_OPERATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="PROMPT" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="36 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="PROMPTTITLE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="35 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="SHOWDROPDOWN" VERSION="1" LANGU="E" DESCRIPT="Show DropDown" EXPOSURE="2" STATE="1" EDITORDER="32 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="SHOWERRORMESSAGE" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="SHOWINPUTMESSAGE" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="TYPE" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
&quot; Initialise instance variables
formula1 = &apos;&apos;.
formula2 = &apos;&apos;.
type = me-&gt;c_type_none.
errorstyle = me-&gt;c_style_stop.
operator = &apos;&apos;.
allowblank = abap_false.
showdropdown = abap_false.
showinputmessage = abap_true.
showerrormessage = abap_true.
errortitle = &apos;&apos;.
error = &apos;&apos;.
prompttitle = &apos;&apos;.
prompt = &apos;&apos;.
* inizialize dimension range
cell_row = 1.
cell_column = &apos;A&apos;.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" VERSION="1" LANGU="E" DESCRIPT="Data validations collection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_DATA_VALIDATIONS" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="DATA_VALIDATIONS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="ADD" SCONAME="IP_DATA_VALIDATION" VERSION="1" LANGU="E" DESCRIPT="Data validation" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_DATA_VALIDATION"/>
<source>method ADD.
data_validations-&gt;add( ip_data_validation ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="CLEAR" VERSION="1" LANGU="E" DESCRIPT="Initializes the Collection" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAR.
data_validations-&gt;clear( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
CREATE OBJECT data_validations.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="GET_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Returns an iterator" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="GET_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_ITERATOR.
eo_iterator ?= data_validations-&gt;if_object_collection~get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="Checks whether elements are contained" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="IS_EMPTY" SCONAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>method IS_EMPTY.
is_empty = data_validations-&gt;if_object_collection~is_empty( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="REMOVE" VERSION="1" LANGU="E" DESCRIPT="Deletes an Element from the Collection" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="REMOVE" SCONAME="IP_DATA_VALIDATION" VERSION="1" LANGU="E" DESCRIPT="Data validation" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_DATA_VALIDATION"/>
<source>method REMOVE.
data_validations-&gt;remove( ip_data_validation ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Specifies number of contained elements" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DATA_VALIDATIONS" CMPNAME="SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method SIZE.
ep_size = data_validations-&gt;if_object_collection~size( ).
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Drawing" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_DRAWING" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="ANCHOR" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" EXPOSURE="0" STATE="1" EDITORDER="16 " ATTDECLTYP="0" ATTVALUE="ANCHOR_ONE_CELL" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="ANCHOR_ABSOLUTE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;ABS&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="ANCHOR_ONE_CELL" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;ONE&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="ANCHOR_TWO_CELL" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;TWO&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_GRAPH_BARS" VERSION="1" LANGU="E" DESCRIPT="Graph type" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_GRAPH_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_GRAPH_LINE" VERSION="1" LANGU="E" DESCRIPT="Graph type" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_GRAPH_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_GRAPH_PIE" VERSION="1" LANGU="E" DESCRIPT="Graph type" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_GRAPH_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_SOURCE_MIME" VERSION="1" LANGU="E" DESCRIPT="miem repository" EXPOSURE="0" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_SOURCE_WWW" VERSION="1" LANGU="E" DESCRIPT="www repository SMW0" EXPOSURE="0" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_SOURCE_XSTRING" VERSION="1" LANGU="E" DESCRIPT="Binary data as XSTRING" EXPOSURE="0" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_TYPE_BMP" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;bmp&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_TYPE_JPG" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;jpg&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_TYPE_XML" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;xml&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="FROM_LOC" VERSION="1" LANGU="E" DESCRIPT="Drawing location for Excel" EXPOSURE="0" STATE="1" EDITORDER="27 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_LOCATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GRAPH" VERSION="1" LANGU="E" DESCRIPT="Graphic" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_GRAPH" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GRAPH_TYPE" VERSION="1" LANGU="E" DESCRIPT="Graph type" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_GRAPH_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GUID" VERSION="1" LANGU="E" DESCRIPT="GUID in &apos;RAW&apos; format" EXPOSURE="0" STATE="1" EDITORDER="20 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="GUID_16" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="INDEX" VERSION="1" LANGU="E" DESCRIPT="Index in collection" EXPOSURE="0" STATE="1" EDITORDER="15 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="IO" VERSION="1" LANGU="E" DESCRIPT="KW Framework: Object Key" EXPOSURE="0" STATE="1" EDITORDER="26 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SKWF_IO" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="21 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XSTRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA_KEY_WWW" VERSION="1" LANGU="E" DESCRIPT="Contents of table WWWDATA" EXPOSURE="0" STATE="1" EDITORDER="22 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="WWWDATATAB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA_NAME" VERSION="1" LANGU="E" DESCRIPT="Generated file name" EXPOSURE="0" STATE="1" EDITORDER="23 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA_SOURCE" VERSION="1" LANGU="E" DESCRIPT="0=XSTRING, 1=WWW" EXPOSURE="0" STATE="1" EDITORDER="24 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA_TYPE" VERSION="1" LANGU="E" DESCRIPT="Type of media, file extension" EXPOSURE="0" STATE="1" EDITORDER="25 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Drawing size for Excel" EXPOSURE="0" STATE="1" EDITORDER="29 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTVALUE="&apos;image1.jpg&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TO_LOC" VERSION="1" LANGU="E" DESCRIPT="Drawing location for Excel" EXPOSURE="0" STATE="1" EDITORDER="28 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_LOCATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TYPE" VERSION="1" LANGU="E" DESCRIPT="Drawing type: image|chart" EXPOSURE="0" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTVALUE="TYPE_IMAGE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TYPE_CHART" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;chart&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TYPE_IMAGE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;image&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="X_REFERENCES" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="Y_REFERENCES" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CONSTRUCTOR" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" PARVALUE="ZCL_EXCEL_DRAWING=&gt;TYPE_IMAGE"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CONSTRUCTOR" SCONAME="IP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="2" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" PAROPTIONL="X"/>
<source>method CONSTRUCTOR.
CALL FUNCTION &apos;GUID_CREATE&apos;
IMPORTING
ev_guid_16 = me-&gt;guid.
IF ip_title IS NOT INITIAL.
title = ip_title.
ELSE.
title = me-&gt;guid.
ENDIF.
me-&gt;type = ip_type.
* inizialize dimension range
anchor = anchor_one_cell.
from_loc-col = 1.
from_loc-row = 1.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CREATE_MEDIA_NAME" VERSION="1" LANGU="E" DESCRIPT="Generate media name image#.ext" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CREATE_MEDIA_NAME" SCONAME="IP_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<source>method CREATE_MEDIA_NAME.
* if media name is initial, create unique name
CHECK media_name IS INITIAL.
index = ip_index.
CONCATENATE me-&gt;type index INTO media_name.
CONDENSE media_name NO-GAPS.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_FROM_COL" VERSION="1" LANGU="E" DESCRIPT="From col" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_FROM_COL" SCONAME="R_FROM_COL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<source>method GET_FROM_COL.
r_from_col = me-&gt;from_loc-col.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_FROM_ROW" VERSION="1" LANGU="E" DESCRIPT="From row" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_FROM_ROW" SCONAME="R_FROM_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<source>method GET_FROM_ROW.
r_from_row = me-&gt;from_loc-row.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_GUID" VERSION="1" LANGU="E" DESCRIPT="Get sheet guid" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="GUID in &apos;RAW&apos; format" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="GUID_16"/>
<source>method GET_GUID.
ep_guid = me-&gt;guid.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_HEIGHT_EMU_STR" VERSION="1" LANGU="E" DESCRIPT="Height of bitmap in EMU as string" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_HEIGHT_EMU_STR" SCONAME="R_HEIGHT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_HEIGHT_EMU_STR.
r_height = pixel2emu( size-height ).
CONDENSE r_height NO-GAPS.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Get index" EXPOSURE="2" STATE="1" EDITORDER="22 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_INDEX" SCONAME="RP_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_INDEX.
rp_index = me-&gt;index.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA" VERSION="1" LANGU="E" DESCRIPT="Returns media as XSTRING" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA" SCONAME="R_MEDIA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>METHOD get_media.
DATA: lv_language TYPE sylangu.
DATA: lt_bin_mime TYPE sdokcntbins.
DATA: lt_mime TYPE tsfmime,
lv_filesize TYPE i,
lv_filesizec(10).
CASE media_source.
WHEN c_media_source_xstring.
r_media = media.
WHEN c_media_source_www.
CALL FUNCTION &apos;WWWDATA_IMPORT&apos;
EXPORTING
key = media_key_www
TABLES
mime = lt_mime
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION &apos;WWWPARAMS_READ&apos;
EXPORTING
relid = media_key_www-relid
objid = media_key_www-objid
name = &apos;filesize&apos;
IMPORTING
value = lv_filesizec.
lv_filesize = lv_filesizec.
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING
input_length = lv_filesize
IMPORTING
buffer = r_media
TABLES
binary_tab = lt_mime
EXCEPTIONS
failed = 1
OTHERS = 2.
WHEN c_media_source_mime.
lv_language = sy-langu.
cl_wb_mime_repository=&gt;load_mime( EXPORTING
io = me-&gt;io
IMPORTING
filesize = lv_filesize
bin_data = lt_bin_mime
CHANGING
language = lv_language ).
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING
input_length = lv_filesize
IMPORTING
buffer = r_media
TABLES
binary_tab = lt_bin_mime
EXCEPTIONS
failed = 1
OTHERS = 2.
ENDCASE.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA_NAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA_NAME" SCONAME="R_NAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_MEDIA_NAME.
CONCATENATE media_name `.` media_type INTO r_name.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA_TYPE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA_TYPE" SCONAME="R_TYPE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_MEDIA_TYPE.
r_type = media_type.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_NAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_NAME" SCONAME="R_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.
r_name = title.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_POSITION" VERSION="1" LANGU="E" DESCRIPT="Get position of drawing" EXPOSURE="2" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_POSITION" SCONAME="RP_POSITION" VERSION="1" LANGU="E" DESCRIPT="Drawing position for Excel" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_POSITION"/>
<source>method GET_POSITION.
rp_position-anchor = anchor.
rp_position-from = from_loc.
rp_position-to = to_loc.
rp_position-size = size.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TO_COL" VERSION="1" LANGU="E" DESCRIPT="To col" EXPOSURE="2" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TO_COL" SCONAME="R_TO_COL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<source>method GET_TO_COL.
r_to_col = me-&gt;to_loc-col.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TO_ROW" VERSION="1" LANGU="E" DESCRIPT="To row" EXPOSURE="2" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TO_ROW" SCONAME="R_TO_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<source>method GET_TO_ROW.
r_to_row = me-&gt;to_loc-row.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TYPE" VERSION="1" LANGU="E" DESCRIPT="Get drawing type" EXPOSURE="2" STATE="1" EDITORDER="21 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TYPE" SCONAME="RP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE"/>
<source>method GET_TYPE.
rp_type = me-&gt;type.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_WIDTH_EMU_STR" VERSION="1" LANGU="E" DESCRIPT="Width of bitmap in EMU as string" EXPOSURE="2" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_WIDTH_EMU_STR" SCONAME="R_WIDTH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_WIDTH_EMU_STR.
r_width = pixel2emu( size-width ).
CONDENSE r_width NO-GAPS.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="LOAD_CHART_ATTRIBUTES" VERSION="1" LANGU="E" DESCRIPT="Load chart attributes" EXPOSURE="2" STATE="1" EDITORDER="23 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="LOAD_CHART_ATTRIBUTES" SCONAME="IP_CHART" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
<source>method LOAD_CHART_ATTRIBUTES.
DATA: node TYPE REF TO if_ixml_element.
DATA: node2 TYPE REF TO if_ixml_element.
DATA: node3 TYPE REF TO if_ixml_element.
DATA: node4 TYPE REF TO if_ixml_element.
DATA: iterator TYPE REF TO if_ixml_node_iterator.
DATA: chartspace TYPE REF TO if_ixml_node_collection.
DATA: coll_length TYPE i.
DATA: chartelem TYPE REF TO if_ixml_element.
DATA lo_barchart TYPE REF TO zcl_excel_graph_bars.
DATA lo_piechart TYPE REF TO zcl_excel_graph_pie.
DATA lo_linechart TYPE REF TO zcl_excel_graph_line.
TYPES: BEGIN OF t_prop,
val TYPE string,
rtl TYPE string,
lang TYPE string,
formatcode TYPE string,
sourcelinked TYPE string,
END OF t_prop.
TYPES: BEGIN OF t_pagemargins,
b TYPE string,
l TYPE string,
r TYPE string,
t TYPE string,
header TYPE string,
footer TYPE string,
END OF t_pagemargins.
DATA ls_prop TYPE t_prop.
DATA ls_pagemargins TYPE t_pagemargins.
DATA lo_collection TYPE REF TO if_ixml_node_collection.
DATA lo_node TYPE REF TO if_ixml_node.
DATA lo_iterator TYPE REF TO if_ixml_node_iterator.
DATA lv_idx TYPE i.
DATA lv_order TYPE i.
DATA lv_invertifnegative TYPE string.
DATA lv_symbol TYPE string.
DATA lv_smooth TYPE c.
DATA lv_sername TYPE string.
DATA lv_label TYPE string.
DATA lv_value TYPE string.
DATA lv_axid TYPE string.
DATA lv_orientation TYPE string.
DATA lv_delete TYPE string.
DATA lv_axpos TYPE string.
DATA lv_formatcode TYPE string.
DATA lv_sourcelinked TYPE string.
DATA lv_majortickmark TYPE string.
DATA lv_minortickmark TYPE string.
DATA lv_ticklblpos TYPE string.
DATA lv_crossax TYPE string.
DATA lv_crosses TYPE string.
DATA lv_auto TYPE string.
DATA lv_lblalgn TYPE string.
DATA lv_lbloffset TYPE string.
DATA lv_nomultilvllbl TYPE string.
DATA lv_crossbetween TYPE string.
node ?= ip_chart-&gt;if_ixml_node~get_first_child( ).
CHECK node IS NOT INITIAL.
CASE me-&gt;graph_type.
WHEN c_graph_bars.
CREATE OBJECT lo_barchart.
me-&gt;graph = lo_barchart.
WHEN c_graph_pie.
CREATE OBJECT lo_piechart.
me-&gt;graph = lo_piechart.
WHEN c_graph_line.
CREATE OBJECT lo_linechart.
me-&gt;graph = lo_linechart.
WHEN OTHERS.
ENDCASE.
&quot;Fill properties
node2 ?= node-&gt;find_from_name( name = &apos;date1904&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_1904val = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;lang&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_langval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;roundedCorners&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_roundedcornersval = ls_prop-val.
&quot;style
node2 ?= node-&gt;find_from_name( name = &apos;style&apos; namespace = &apos;c14&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_c14styleval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;style&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_styleval = ls_prop-val.
&quot;---------------------------Read graph properties
node2 ?= node-&gt;find_from_name( name = &apos;autoTitleDeleted&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_autotitledeletedval = ls_prop-val.
&quot;plotArea
CASE me-&gt;graph_type.
WHEN c_graph_bars.
node2 ?= node-&gt;find_from_name( name = &apos;barDir&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_bardirval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;grouping&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_groupingval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;varyColors&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_varycolorsval = ls_prop-val.
&quot;Load series
CALL METHOD node-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;ser&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
node3 ?= node2-&gt;find_from_name( name = &apos;idx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_idx = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;order&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_order = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;invertIfNegative&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_invertifnegative = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;v&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
lv_sername = node3-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;strRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_label = node4-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;numRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_value = node4-&gt;get_value( ).
ENDIF.
CALL METHOD lo_barchart-&gt;create_serie
EXPORTING
ip_idx = lv_idx
ip_order = lv_order
ip_invertifnegative = lv_invertifnegative
ip_lbl = lv_label
ip_ref = lv_value
ip_sername = lv_sername.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
&quot;note: numCache avoided
node2 ?= node-&gt;find_from_name( name = &apos;showLegendKey&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showlegendkeyval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showVal&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showvalval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showCatName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showcatnameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showSerName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showsernameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showPercent&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showpercentval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showBubbleSize&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showbubblesizeval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;gapWidth&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_gapwidthval = ls_prop-val.
&quot;Load axes
node2 ?= node-&gt;find_from_name( name = &apos;barChart&apos; namespace = &apos;c&apos; ).
CALL METHOD node2-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;axId&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lv_axid = ls_prop-val.
IF sy-index EQ 1. &quot;catAx
node2 ?= node-&gt;find_from_name( name = &apos;catAx&apos; namespace = &apos;c&apos; ).
node3 ?= node2-&gt;find_from_name( name = &apos;orientation&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_orientation = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;delete&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_delete = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;axPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_axpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;numFmt&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_formatcode = ls_prop-formatcode.
lv_sourcelinked = ls_prop-sourcelinked.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_majortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_minortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;tickLblPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_ticklblpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossAx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossax = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crosses&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crosses = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;auto&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_auto = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;lblAlgn&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_lblalgn = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;lblOffset&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_lbloffset = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;noMultiLvlLbl&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_nomultilvllbl = ls_prop-val.
CALL METHOD lo_barchart-&gt;create_ax
EXPORTING
ip_axid = lv_axid
ip_type = zcl_excel_graph_bars=&gt;c_catax
ip_orientation = lv_orientation
ip_delete = lv_delete
ip_axpos = lv_axpos
ip_formatcode = lv_formatcode
ip_sourcelinked = lv_sourcelinked
ip_majortickmark = lv_majortickmark
ip_minortickmark = lv_minortickmark
ip_ticklblpos = lv_ticklblpos
ip_crossax = lv_crossax
ip_crosses = lv_crosses
ip_auto = lv_auto
ip_lblalgn = lv_lblalgn
ip_lbloffset = lv_lbloffset
ip_nomultilvllbl = lv_nomultilvllbl.
ELSEIF sy-index EQ 2. &quot;valAx
node2 ?= node-&gt;find_from_name( name = &apos;valAx&apos; namespace = &apos;c&apos; ).
node3 ?= node2-&gt;find_from_name( name = &apos;orientation&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_orientation = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;delete&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_delete = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;axPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_axpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;numFmt&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_formatcode = ls_prop-formatcode.
lv_sourcelinked = ls_prop-sourcelinked.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_majortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_minortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;tickLblPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_ticklblpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossAx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossax = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crosses&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crosses = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossBetween&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossbetween = ls_prop-val.
CALL METHOD lo_barchart-&gt;create_ax
EXPORTING
ip_axid = lv_axid
ip_type = zcl_excel_graph_bars=&gt;c_valax
ip_orientation = lv_orientation
ip_delete = lv_delete
ip_axpos = lv_axpos
ip_formatcode = lv_formatcode
ip_sourcelinked = lv_sourcelinked
ip_majortickmark = lv_majortickmark
ip_minortickmark = lv_minortickmark
ip_ticklblpos = lv_ticklblpos
ip_crossax = lv_crossax
ip_crosses = lv_crosses
ip_crossbetween = lv_crossbetween.
ENDIF.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
WHEN c_graph_pie.
node2 ?= node-&gt;find_from_name( name = &apos;varyColors&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_varycolorsval = ls_prop-val.
&quot;Load series
CALL METHOD node-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;ser&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
node3 ?= node2-&gt;find_from_name( name = &apos;idx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_idx = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;order&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_order = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;v&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
lv_sername = node3-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;strRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_label = node4-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;numRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_value = node4-&gt;get_value( ).
ENDIF.
CALL METHOD lo_piechart-&gt;create_serie
EXPORTING
ip_idx = lv_idx
ip_order = lv_order
ip_lbl = lv_label
ip_ref = lv_value
ip_sername = lv_sername.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
&quot;note: numCache avoided
node2 ?= node-&gt;find_from_name( name = &apos;showLegendKey&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showlegendkeyval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showVal&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showvalval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showCatName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showcatnameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showSerName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showsernameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showPercent&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showpercentval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showBubbleSize&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showbubblesizeval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showLeaderLines&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showleaderlinesval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;firstSliceAng&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_firstsliceangval = ls_prop-val.
WHEN c_graph_line.
node2 ?= node-&gt;find_from_name( name = &apos;grouping&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_groupingval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;varyColors&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_varycolorsval = ls_prop-val.
&quot;Load series
CALL METHOD node-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;ser&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
node3 ?= node2-&gt;find_from_name( name = &apos;idx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_idx = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;order&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_order = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;symbol&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_symbol = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;smooth&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_smooth = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;v&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
lv_sername = node3-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;strRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_label = node4-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;numRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_value = node4-&gt;get_value( ).
ENDIF.
CALL METHOD lo_linechart-&gt;create_serie
EXPORTING
ip_idx = lv_idx
ip_order = lv_order
ip_symbol = lv_symbol
ip_smooth = lv_smooth
ip_lbl = lv_label
ip_ref = lv_value
ip_sername = lv_sername.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
&quot;note: numCache avoided
node2 ?= node-&gt;find_from_name( name = &apos;showLegendKey&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showlegendkeyval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showVal&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showvalval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showCatName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showcatnameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showSerName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showsernameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showPercent&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showpercentval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showBubbleSize&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showbubblesizeval = ls_prop-val.
node ?= node-&gt;find_from_name( name = &apos;lineChart&apos; namespace = &apos;c&apos; ).
node2 ?= node-&gt;find_from_name( name = &apos;marker&apos; namespace = &apos;c&apos; DEPTH = &apos;1&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;NS_MARKERVAL = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;smooth&apos; namespace = &apos;c&apos; DEPTH = &apos;1&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;NS_SMOOTHVAL = ls_prop-val.
node ?= ip_chart-&gt;if_ixml_node~get_first_child( ).
CHECK node IS NOT INITIAL.
&quot;Load axes
node2 ?= node-&gt;find_from_name( name = &apos;lineChart&apos; namespace = &apos;c&apos; ).
CALL METHOD node2-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;axId&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lv_axid = ls_prop-val.
IF sy-index EQ 1. &quot;catAx
node2 ?= node-&gt;find_from_name( name = &apos;catAx&apos; namespace = &apos;c&apos; ).
node3 ?= node2-&gt;find_from_name( name = &apos;orientation&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_orientation = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;delete&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_delete = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;axPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_axpos = ls_prop-val.
* node3 ?= node2-&gt;find_from_name( name = &apos;numFmt&apos; namespace = &apos;c&apos; ).
* zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
* lv_formatcode = ls_prop-formatcode.
* lv_sourcelinked = ls_prop-sourcelinked.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_majortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_minortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;tickLblPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_ticklblpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossAx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossax = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crosses&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crosses = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;auto&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_auto = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;lblAlgn&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_lblalgn = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;lblOffset&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_lbloffset = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;noMultiLvlLbl&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_nomultilvllbl = ls_prop-val.
CALL METHOD lo_linechart-&gt;create_ax
EXPORTING
ip_axid = lv_axid
ip_type = zcl_excel_graph_line=&gt;c_catax
ip_orientation = lv_orientation
ip_delete = lv_delete
ip_axpos = lv_axpos
ip_formatcode = lv_formatcode
ip_sourcelinked = lv_sourcelinked
ip_majortickmark = lv_majortickmark
ip_minortickmark = lv_minortickmark
ip_ticklblpos = lv_ticklblpos
ip_crossax = lv_crossax
ip_crosses = lv_crosses
ip_auto = lv_auto
ip_lblalgn = lv_lblalgn
ip_lbloffset = lv_lbloffset
ip_nomultilvllbl = lv_nomultilvllbl.
ELSEIF sy-index EQ 2. &quot;valAx
node2 ?= node-&gt;find_from_name( name = &apos;valAx&apos; namespace = &apos;c&apos; ).
node3 ?= node2-&gt;find_from_name( name = &apos;orientation&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_orientation = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;delete&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_delete = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;axPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_axpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;numFmt&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_formatcode = ls_prop-formatcode.
lv_sourcelinked = ls_prop-sourcelinked.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_majortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_minortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;tickLblPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_ticklblpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossAx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossax = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crosses&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crosses = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossBetween&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossbetween = ls_prop-val.
CALL METHOD lo_linechart-&gt;create_ax
EXPORTING
ip_axid = lv_axid
ip_type = zcl_excel_graph_line=&gt;c_valax
ip_orientation = lv_orientation
ip_delete = lv_delete
ip_axpos = lv_axpos
ip_formatcode = lv_formatcode
ip_sourcelinked = lv_sourcelinked
ip_majortickmark = lv_majortickmark
ip_minortickmark = lv_minortickmark
ip_ticklblpos = lv_ticklblpos
ip_crossax = lv_crossax
ip_crosses = lv_crosses
ip_crossbetween = lv_crossbetween.
ENDIF.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
WHEN OTHERS.
ENDCASE.
&quot;legend
CASE me-&gt;graph_type.
WHEN c_graph_bars.
node2 ?= node-&gt;find_from_name( name = &apos;legendPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_legendposval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;overlay&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_overlayval = ls_prop-val.
WHEN c_graph_line.
node2 ?= node-&gt;find_from_name( name = &apos;legendPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_legendposval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;overlay&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_overlayval = ls_prop-val.
WHEN c_graph_pie.
node2 ?= node-&gt;find_from_name( name = &apos;legendPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_legendposval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;overlay&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_overlayval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;pPr&apos; namespace = &apos;a&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_pprrtl = ls_prop-rtl.
node2 ?= node-&gt;find_from_name( name = &apos;endParaRPr&apos; namespace = &apos;a&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_endpararprlang = ls_prop-lang.
WHEN OTHERS.
ENDCASE.
node2 ?= node-&gt;find_from_name( name = &apos;plotVisOnly&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_plotvisonlyval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;dispBlanksAs&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_dispblanksasval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showDLblsOverMax&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_showdlblsovermaxval = ls_prop-val.
&quot;---------------------
node2 ?= node-&gt;find_from_name( name = &apos;pageMargins&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_pagemargins ).
me-&gt;graph-&gt;pagemargins = ls_pagemargins.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="PIXEL2EMU" VERSION="1" LANGU="E" DESCRIPT="Convert pixel to EMU" EXPOSURE="2" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="PIXEL2EMU" SCONAME="IP_PIXEL" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="PIXEL2EMU" SCONAME="IP_DPI" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT2" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="PIXEL2EMU" SCONAME="R_EMU" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method PIXEL2EMU.
* suppose 96 DPI
IF ip_dpi IS SUPPLIED.
r_emu = ip_pixel * 914400 / ip_dpi.
ELSE.
* suppose 96 DPI
r_emu = ip_pixel * 914400 / 96.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" VERSION="1" LANGU="E" DESCRIPT="Add media to drawing as XSTRING" EXPOSURE="2" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" SCONAME="IP_MEDIA" VERSION="1" LANGU="E" DESCRIPT="used only for template of charts" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="XSTRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" SCONAME="IP_MEDIA_TYPE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" SCONAME="IP_WIDTH" VERSION="1" LANGU="E" DESCRIPT="used only for image types, not for charts" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PARVALUE="0"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" SCONAME="IP_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="used only for image types, not for charts" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PARVALUE="0"/>
<source>method SET_MEDIA.
IF ip_media IS SUPPLIED.
media = ip_media.
ENDIF.
media_type = ip_media_type.
media_source = c_media_source_xstring.
IF ip_width IS SUPPLIED.
size-width = ip_width.
ENDIF.
IF ip_height IS SUPPLIED.
size-height = ip_height.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_MIME" VERSION="1" LANGU="E" DESCRIPT="Add media from mime repository" EXPOSURE="2" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_MIME" SCONAME="IP_IO" VERSION="1" LANGU="E" DESCRIPT="KW Framework: Object Key" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SKWF_IO"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_MIME" SCONAME="IP_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Natural Number" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_MIME" SCONAME="IP_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Natural Number" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<source>METHOD set_media_mime.
DATA: lv_language TYPE sylangu.
io = ip_io.
media_source = c_media_source_mime.
size-width = ip_width.
size-height = ip_height.
lv_language = sy-langu.
cl_wb_mime_repository=&gt;load_mime( EXPORTING
io = ip_io
IMPORTING
filename = media_name
&quot;mimetype = media_type
CHANGING
language = lv_language ).
SPLIT media_name AT &apos;.&apos; INTO media_name media_type.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_WWW" VERSION="1" LANGU="E" DESCRIPT="Add media from www repository SMW0" EXPOSURE="2" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_WWW" SCONAME="IP_KEY" VERSION="1" LANGU="E" DESCRIPT="Contents of table WWWDATA" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="WWWDATATAB"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_WWW" SCONAME="IP_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_WWW" SCONAME="IP_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<source>method SET_MEDIA_WWW.
DATA: lv_value(20).
media_key_www = ip_key.
media_source = c_media_source_www.
CALL FUNCTION &apos;WWWPARAMS_READ&apos;
EXPORTING
relid = media_key_www-relid
objid = media_key_www-objid
name = &apos;fileextension&apos;
IMPORTING
value = lv_value.
media_type = lv_value.
SHIFT media_type LEFT DELETING LEADING &apos;.&apos;.
size-width = ip_width.
size-height = ip_height.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" VERSION="1" LANGU="E" DESCRIPT="Set position of drawing" EXPOSURE="2" STATE="1" EDITORDER="18 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" SCONAME="IP_FROM_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" SCONAME="IP_FROM_COL" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" SCONAME="IP_ROWOFF" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" SCONAME="IP_COLOFF" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PAROPTIONL="X"/>
<source>method SET_POSITION.
from_loc-col = zcl_excel_common=&gt;convert_column2int( ip_from_col ) - 1.
IF ip_coloff IS SUPPLIED.
from_loc-col_offset = ip_coloff.
ENDIF.
from_loc-row = ip_from_row - 1.
IF ip_rowoff IS SUPPLIED.
from_loc-row_offset = ip_rowoff.
ENDIF.
anchor = anchor_one_cell.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION2" VERSION="1" LANGU="E" DESCRIPT="Set position of drawing" EXPOSURE="2" STATE="1" EDITORDER="19 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION2" SCONAME="IP_FROM" VERSION="1" LANGU="E" DESCRIPT="Drawing location for Excel" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_LOCATION"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION2" SCONAME="IP_TO" VERSION="1" LANGU="E" DESCRIPT="Drawing location for Excel" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_LOCATION"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION2" SCONAME="IP_ANCHOR" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" PAROPTIONL="X"/>
<source>method SET_POSITION2.
data: lv_anchor type zexcel_drawing_anchor.
lv_anchor = ip_anchor.
IF lv_anchor IS INITIAL.
IF ip_to IS NOT INITIAL.
lv_anchor = anchor_two_cell.
ELSE.
lv_anchor = anchor_one_cell.
ENDIF.
ENDIF.
CASE lv_anchor.
WHEN anchor_absolute OR anchor_one_cell.
CLEAR: me-&gt;to_loc.
WHEN anchor_two_cell.
CLEAR: me-&gt;size.
ENDCASE.
me-&gt;from_loc = ip_from.
me-&gt;to_loc = ip_to.
me-&gt;anchor = lv_anchor.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_DRAWINGS" VERSION="1" LANGU="E" DESCRIPT="Drawings collection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="DRAWINGS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTRDONLY="X" ATTVALUE="&apos;IMAGE&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="ADD" SCONAME="IP_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
<source>method ADD.
DATA: lv_index TYPE i.
drawings-&gt;add( ip_drawing ).
lv_index = drawings-&gt;if_object_collection~size( ).
ip_drawing-&gt;create_media_name(
ip_index = lv_index ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="CLEAR" VERSION="1" LANGU="E" DESCRIPT="Initializes the Collection" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAR.
drawings-&gt;clear( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="CONSTRUCTOR" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE"/>
<source>method CONSTRUCTOR.
CREATE OBJECT drawings.
type = ip_type.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="GET" VERSION="1" LANGU="E" DESCRIPT="Gets Element" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="GET" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="GET" SCONAME="EO_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
<source>method GET.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_drawing ?= drawings-&gt;if_object_collection~get( lv_index ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="GET_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Returns an iterator" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="GET_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
<source>method GET_ITERATOR.
eo_iterator ?= drawings-&gt;if_object_collection~get_iterator( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="GET_TYPE" VERSION="1" LANGU="E" DESCRIPT="Get drawing type for collection" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="GET_TYPE" SCONAME="RP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE"/>
<source>method GET_TYPE.
rp_type = me-&gt;type.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="INCLUDE" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="INCLUDE" SCONAME="IP_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
<source>method INCLUDE.
drawings-&gt;add( ip_drawing ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="Checks whether elements are contained" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="IS_EMPTY" SCONAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>method IS_EMPTY.
is_empty = drawings-&gt;if_object_collection~is_empty( ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="REMOVE" VERSION="1" LANGU="E" DESCRIPT="Deletes an Element from the Collection" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="REMOVE" SCONAME="IP_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
<source>method REMOVE.
drawings-&gt;remove( ip_drawing ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Specifies number of contained elements" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWINGS" CMPNAME="SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method SIZE.
ep_size = drawings-&gt;if_object_collection~size( ).
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_GRAPH" VERSION="1" LANGU="E" DESCRIPT="Graphic" 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_GRAPH" CMPNAME="S_STYLE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="10 " SRCCOLUMN1="4 " SRCROW2="13 " SRCCOLUMN2="22 " TYPESRC_LENG="108 " TYPESRC="BEGIN OF s_style,
c14style type i,
cstyle type i,
end of s_style
"/>
<types CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="S_SERIES" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="15 " SRCCOLUMN1="4 " SRCROW2="24 " SRCCOLUMN2="24 " TYPESRC_LENG="437 " TYPESRC="BEGIN OF s_series,
idx TYPE i,
order TYPE i,
invertifnegative TYPE string,
symbol TYPE string,
smooth TYPE string,
lbl TYPE string,
ref TYPE string,
sername TYPE string,
END OF s_series
"/>
<types CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="T_SERIES" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " TYPTYPE="4" SRCROW1="26 " SRCCOLUMN1="4 " SRCROW2="26 " SRCCOLUMN2="43 " TYPESRC_LENG="42 " TYPESRC="t_series TYPE STANDARD TABLE OF s_series
"/>
<types CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="S_PAGEMARGINS" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " TYPTYPE="4" SRCROW1="28 " SRCCOLUMN1="4 " SRCROW2="35 " SRCCOLUMN2="29 " TYPESRC_LENG="271 " TYPESRC="BEGIN OF s_pagemargins,
b TYPE string,
l TYPE string,
r TYPE string,
t TYPE string,
header TYPE string,
footer TYPE string,
END OF s_pagemargins
"/>
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_PRINT_LBL_FALSE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" EXPOSURE="2" STATE="1" EDITORDER="64 " ATTDECLTYP="2" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="C" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_PRINT_LBL_TRUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" EXPOSURE="2" STATE="1" EDITORDER="63 " ATTDECLTYP="2" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="C" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_SHOW_FALSE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" EXPOSURE="2" STATE="1" EDITORDER="62 " ATTDECLTYP="2" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="C" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_SHOW_TRUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" EXPOSURE="2" STATE="1" EDITORDER="61 " ATTDECLTYP="2" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="C" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_1" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="55 " SRCCOLUMN1="4 " SRCROW2="58 " SRCCOLUMN2="28 " TYPESRC_LENG="134 " TYPESRC="BEGIN OF c_style_1,
c14style type i value 101,
cstyle type i value 1,
END OF c_style_1
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_10" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="95 " SRCCOLUMN1="4 " SRCROW2="98 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_10,
c14style type i value 110,
cstyle type i value 10,
END OF c_style_10
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_11" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="23 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="100 " SRCCOLUMN1="4 " SRCROW2="103 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_11,
c14style type i value 111,
cstyle type i value 11,
END OF c_style_11
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_12" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="24 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="105 " SRCCOLUMN1="4 " SRCROW2="108 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_12,
c14style type i value 112,
cstyle type i value 12,
END OF c_style_12
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_13" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="25 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="110 " SRCCOLUMN1="4 " SRCROW2="113 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_13,
c14style type i value 113,
cstyle type i value 13,
END OF c_style_13
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_14" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="26 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="115 " SRCCOLUMN1="4 " SRCROW2="118 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_14,
c14style type i value 114,
cstyle type i value 14,
END OF c_style_14
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_15" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="27 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="120 " SRCCOLUMN1="4 " SRCROW2="123 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_15,
c14style type i value 115,
cstyle type i value 15,
END OF c_style_15
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_16" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="28 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="125 " SRCCOLUMN1="4 " SRCROW2="128 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_16,
c14style type i value 116,
cstyle type i value 16,
END OF c_style_16
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_17" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="29 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="130 " SRCCOLUMN1="4 " SRCROW2="133 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_17,
c14style type i value 117,
cstyle type i value 17,
END OF c_style_17
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_18" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="30 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="135 " SRCCOLUMN1="4 " SRCROW2="138 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_18,
c14style type i value 118,
cstyle type i value 18,
END OF c_style_18
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_19" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="31 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="140 " SRCCOLUMN1="4 " SRCROW2="143 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_19,
c14style type i value 119,
cstyle type i value 19,
END OF c_style_19
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_20" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="32 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="145 " SRCCOLUMN1="4 " SRCROW2="148 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_20,
c14style type i value 120,
cstyle type i value 20,
END OF c_style_20
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_21" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="33 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="150 " SRCCOLUMN1="4 " SRCROW2="153 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_21,
c14style type i value 121,
cstyle type i value 21,
END OF c_style_21
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_22" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="34 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="155 " SRCCOLUMN1="4 " SRCROW2="158 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_22,
c14style type i value 122,
cstyle type i value 22,
END OF c_style_22
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_23" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="35 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="160 " SRCCOLUMN1="4 " SRCROW2="163 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_23,
c14style type i value 123,
cstyle type i value 23,
END OF c_style_23
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_24" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="36 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="165 " SRCCOLUMN1="4 " SRCROW2="168 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_24,
c14style type i value 124,
cstyle type i value 24,
END OF c_style_24
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_25" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="37 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="170 " SRCCOLUMN1="4 " SRCROW2="173 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_25,
c14style type i value 125,
cstyle type i value 25,
END OF c_style_25
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_26" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="38 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="175 " SRCCOLUMN1="4 " SRCROW2="178 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_26,
c14style type i value 126,
cstyle type i value 26,
END OF c_style_26
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_27" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="39 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="180 " SRCCOLUMN1="4 " SRCROW2="183 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_27,
c14style type i value 127,
cstyle type i value 27,
END OF c_style_27
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_28" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="40 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="185 " SRCCOLUMN1="4 " SRCROW2="188 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_28,
c14style type i value 128,
cstyle type i value 28,
END OF c_style_28
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_29" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="41 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="190 " SRCCOLUMN1="4 " SRCROW2="193 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_29,
c14style type i value 129,
cstyle type i value 29,
END OF c_style_29
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_3" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="60 " SRCCOLUMN1="4 " SRCROW2="63 " SRCCOLUMN2="28 " TYPESRC_LENG="134 " TYPESRC="BEGIN OF c_style_3,
c14style type i value 103,
cstyle type i value 3,
END OF c_style_3
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_30" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="42 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="195 " SRCCOLUMN1="4 " SRCROW2="198 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_30,
c14style type i value 130,
cstyle type i value 30,
END OF c_style_30
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_31" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="43 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="200 " SRCCOLUMN1="4 " SRCROW2="203 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_31,
c14style type i value 131,
cstyle type i value 31,
END OF c_style_31
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_32" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="44 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="205 " SRCCOLUMN1="4 " SRCROW2="208 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_32,
c14style type i value 132,
cstyle type i value 32,
END OF c_style_32
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_33" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="45 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="210 " SRCCOLUMN1="4 " SRCROW2="213 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_33,
c14style type i value 133,
cstyle type i value 33,
END OF c_style_33
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_34" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="46 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="215 " SRCCOLUMN1="4 " SRCROW2="218 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_34,
c14style type i value 134,
cstyle type i value 34,
END OF c_style_34
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_35" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="47 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="220 " SRCCOLUMN1="4 " SRCROW2="223 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_35,
c14style type i value 135,
cstyle type i value 35,
END OF c_style_35
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_36" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="48 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="225 " SRCCOLUMN1="4 " SRCROW2="228 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_36,
c14style type i value 136,
cstyle type i value 36,
END OF c_style_36
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_37" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="49 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="230 " SRCCOLUMN1="4 " SRCROW2="233 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_37,
c14style type i value 137,
cstyle type i value 37,
END OF c_style_37
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_38" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="50 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="235 " SRCCOLUMN1="4 " SRCROW2="238 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_38,
c14style type i value 138,
cstyle type i value 38,
END OF c_style_38
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_39" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="51 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="240 " SRCCOLUMN1="4 " SRCROW2="243 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_39,
c14style type i value 139,
cstyle type i value 39,
END OF c_style_39
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_4" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="65 " SRCCOLUMN1="4 " SRCROW2="68 " SRCCOLUMN2="28 " TYPESRC_LENG="134 " TYPESRC="BEGIN OF c_style_4,
c14style type i value 104,
cstyle type i value 4,
END OF c_style_4
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_40" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="52 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="245 " SRCCOLUMN1="4 " SRCROW2="248 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_40,
c14style type i value 140,
cstyle type i value 40,
END OF c_style_40
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_41" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="53 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="250 " SRCCOLUMN1="4 " SRCROW2="253 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_41,
c14style type i value 141,
cstyle type i value 41,
END OF c_style_41
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_42" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="54 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="255 " SRCCOLUMN1="4 " SRCROW2="258 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_42,
c14style type i value 142,
cstyle type i value 42,
END OF c_style_42
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_43" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="55 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="260 " SRCCOLUMN1="4 " SRCROW2="263 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_43,
c14style type i value 143,
cstyle type i value 43,
END OF c_style_43
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_44" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="56 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="265 " SRCCOLUMN1="4 " SRCROW2="268 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_44,
c14style type i value 144,
cstyle type i value 44,
END OF c_style_44
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_45" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="57 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="270 " SRCCOLUMN1="4 " SRCROW2="273 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_45,
c14style type i value 145,
cstyle type i value 45,
END OF c_style_45
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_46" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="58 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="275 " SRCCOLUMN1="4 " SRCROW2="278 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_46,
c14style type i value 146,
cstyle type i value 46,
END OF c_style_46
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_47" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="59 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="280 " SRCCOLUMN1="4 " SRCROW2="283 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_47,
c14style type i value 147,
cstyle type i value 47,
END OF c_style_47
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_48" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="60 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="285 " SRCCOLUMN1="4 " SRCROW2="288 " SRCCOLUMN2="29 " TYPESRC_LENG="137 " TYPESRC="BEGIN OF c_style_48,
c14style type i value 148,
cstyle type i value 48,
END OF c_style_48
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_5" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="70 " SRCCOLUMN1="4 " SRCROW2="73 " SRCCOLUMN2="28 " TYPESRC_LENG="134 " TYPESRC="BEGIN OF c_style_5,
c14style type i value 105,
cstyle type i value 5,
END OF c_style_5
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_6" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="75 " SRCCOLUMN1="4 " SRCROW2="78 " SRCCOLUMN2="28 " TYPESRC_LENG="134 " TYPESRC="BEGIN OF c_style_6,
c14style type i value 106,
cstyle type i value 6,
END OF c_style_6
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_7" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="80 " SRCCOLUMN1="4 " SRCROW2="83 " SRCCOLUMN2="28 " TYPESRC_LENG="134 " TYPESRC="BEGIN OF c_style_7,
c14style type i value 107,
cstyle type i value 7,
END OF c_style_7
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_8" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="85 " SRCCOLUMN1="4 " SRCROW2="88 " SRCCOLUMN2="28 " TYPESRC_LENG="134 " TYPESRC="BEGIN OF c_style_8,
c14style type i value 108,
cstyle type i value 8,
END OF c_style_8
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_9" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="90 " SRCCOLUMN1="4 " SRCROW2="93 " SRCCOLUMN2="28 " TYPESRC_LENG="134 " TYPESRC="BEGIN OF c_style_9,
c14style type i value 109,
cstyle type i value 9,
END OF c_style_9
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="C_STYLE_DEFAULT" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="50 " SRCCOLUMN1="4 " SRCROW2="53 " SRCCOLUMN2="34 " TYPESRC_LENG="146 " TYPESRC="BEGIN OF c_style_default,
c14style type i value 102,
cstyle type i value 2,
END OF c_style_default
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_1904VAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_AUTOTITLEDELETEDVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_C14STYLEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTVALUE="&apos;102&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_DISPBLANKSASVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTVALUE="&apos;gap&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_LANGVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTVALUE="&apos;it-IT&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_PLOTVISONLYVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_ROUNDEDCORNERSVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_SHOWDLBLSOVERMAXVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="NS_STYLEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTVALUE="&apos;2&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="PAGEMARGINS" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="S_PAGEMARGINS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="PRINT_LABEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="C" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="SERIES" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="T_SERIES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
&quot;Load default values
me-&gt;pagemargins-b = &apos;0.75&apos;.
me-&gt;pagemargins-l = &apos;0.7&apos;.
me-&gt;pagemargins-r = &apos;0.7&apos;.
me-&gt;pagemargins-t = &apos;0.75&apos;.
me-&gt;pagemargins-header = &apos;0.3&apos;.
me-&gt;pagemargins-footer = &apos;0.3&apos;.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_IDX" VERSION="1" LANGU="E" DESCRIPT="Automatic if not provided" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_ORDER" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_INVERTIFNEGATIVE" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_SYMBOL" VERSION="1" LANGU="E" DESCRIPT="&apos;none&apos;" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_SMOOTH" VERSION="1" LANGU="E" DESCRIPT="&apos;0&apos;" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_LBL_FROM_COL" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_LBL_FROM_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_LBL_TO_COL" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_LBL_TO_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="9 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_LBL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="10 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_REF_FROM_COL" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="11 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_REF_FROM_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="12 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_REF_TO_COL" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="13 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_REF_TO_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="14 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_REF" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="15 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_SERNAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="16 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="CREATE_SERIE" SCONAME="IP_SHEET" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="17 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" PAROPTIONL="X"/>
<source>method CREATE_SERIE.
DATA ls_serie TYPE s_series.
DATA: lv_start_row_c TYPE char7,
lv_stop_row_c TYPE char7.
IF ip_lbl IS NOT SUPPLIED.
lv_stop_row_c = ip_lbl_to_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_lbl_from_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
ls_serie-lbl = ip_sheet.
ls_serie-lbl = zcl_excel_common=&gt;escape_string( ip_value = ls_serie-lbl ).
CONCATENATE ls_serie-lbl &apos;!$&apos; ip_lbl_from_col &apos;$&apos; lv_start_row_c &apos;:$&apos; ip_lbl_to_col &apos;$&apos; lv_stop_row_c INTO ls_serie-lbl.
CLEAR: lv_start_row_c, lv_stop_row_c.
ELSE.
ls_serie-lbl = ip_lbl.
ENDIF.
IF ip_ref IS NOT SUPPLIED.
lv_stop_row_c = ip_ref_to_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_ref_from_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
ls_serie-ref = ip_sheet.
ls_serie-ref = zcl_excel_common=&gt;escape_string( ip_value = ls_serie-ref ).
CONCATENATE ls_serie-ref &apos;!$&apos; ip_ref_from_col &apos;$&apos; lv_start_row_c &apos;:$&apos; ip_ref_to_col &apos;$&apos; lv_stop_row_c INTO ls_serie-ref.
CLEAR: lv_start_row_c, lv_stop_row_c.
ELSE.
ls_serie-ref = ip_ref.
ENDIF.
ls_serie-idx = ip_idx.
ls_serie-order = ip_order.
ls_serie-invertifnegative = ip_invertifnegative.
ls_serie-symbol = ip_symbol.
ls_serie-smooth = ip_smooth.
ls_serie-sername = ip_sername.
APPEND ls_serie TO me-&gt;series.
SORT me-&gt;series BY order ASCENDING.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="SET_PRINT_LBL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="SET_PRINT_LBL" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_PRINT_LBL.
me-&gt;print_label = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="SET_STYLE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH" CMPNAME="SET_STYLE" SCONAME="IP_STYLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="S_STYLE"/>
<source>method SET_STYLE.
me-&gt;ns_c14styleval = ip_style-c14style.
CONDENSE me-&gt;ns_c14styleval NO-GAPS.
me-&gt;ns_styleval = ip_style-cstyle.
CONDENSE me-&gt;ns_styleval NO-GAPS.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_GRAPH_BARS" VERSION="1" LANGU="E" DESCRIPT="Bars Graphic" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_GRAPH">
<types CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="S_AX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="12 " SRCCOLUMN1="4 " SRCROW2="30 " SRCCOLUMN2="23 " TYPESRC_LENG="715 " TYPESRC="BEGIN OF s_ax,
axid TYPE string,
type TYPE char5,
orientation TYPE string,
delete TYPE string,
axpos TYPE string,
formatcode TYPE string,
sourcelinked TYPE string,
majortickmark TYPE string,
minortickmark TYPE string,
ticklblpos TYPE string,
crossax TYPE string,
crosses TYPE string,
auto TYPE string,
lblalgn TYPE string,
lbloffset TYPE string,
nomultilvllbl TYPE string,
crossbetween TYPE string,
END OF s_ax
"/>
<types CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="T_AX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="32 " SRCCOLUMN1="4 " SRCROW2="32 " SRCCOLUMN2="35 " TYPESRC_LENG="34 " TYPESRC="t_ax TYPE STANDARD TABLE OF s_ax
"/>
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="AXES" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="T_AX" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="C_CATAX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;CATAX&apos;" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="48 " SRCCOLUMN1="4 " SRCROW2="48 " SRCCOLUMN2="26 " TYPESRC_LENG="25 " TYPESRC="C_CATAX type c length 5
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="C_INVERTIFNEGATIVE_NO" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="C_INVERTIFNEGATIVE_YES" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="C_VALAX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;VALAX&apos;" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="46 " SRCCOLUMN1="4 " SRCROW2="46 " SRCCOLUMN2="26 " TYPESRC_LENG="25 " TYPESRC="C_VALAX type c length 5
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_BARDIRVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTVALUE="&apos;col&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_GAPWIDTHVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTVALUE="&apos;150&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_GROUPINGVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTVALUE="&apos;clustered&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_LEGENDPOSVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTVALUE="&apos;r&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_OVERLAYVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_SHOWBUBBLESIZEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_SHOWCATNAMEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_SHOWLEGENDKEYVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_SHOWPERCENTVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_SHOWSERNAMEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_SHOWVALVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="NS_VARYCOLORSVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<inheritance CLSNAME="ZCL_EXCEL_GRAPH_BARS" REFCLSNAME="ZCL_EXCEL_GRAPH" VERSION="1" STATE="1"/>
<method CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_AXID" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="R/2 table" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CHAR5"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_ORIENTATION" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_DELETE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_AXPOS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_FORMATCODE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_SOURCELINKED" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_MAJORTICKMARK" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_MINORTICKMARK" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="9 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_TICKLBLPOS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="10 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_CROSSAX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="11 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_CROSSES" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="12 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_AUTO" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="13 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_LBLALGN" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="14 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_LBLOFFSET" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="15 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_NOMULTILVLLBL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="16 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="CREATE_AX" SCONAME="IP_CROSSBETWEEN" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="17 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<source>method CREATE_AX.
DATA ls_ax TYPE s_ax.
ls_ax-type = ip_type.
if ip_type = c_catax.
if ip_axid is SUPPLIED.
ls_ax-axid = ip_axid.
else.
ls_ax-axid = &apos;1&apos;.
endif.
if ip_orientation is SUPPLIED.
ls_ax-orientation = ip_orientation.
else.
ls_ax-orientation = &apos;minMax&apos;.
endif.
if ip_delete is SUPPLIED.
ls_ax-delete = ip_delete.
else.
ls_ax-delete = &apos;0&apos;.
endif.
if ip_axpos is SUPPLIED.
ls_ax-axpos = ip_axpos.
else.
ls_ax-axpos = &apos;b&apos;.
endif.
if ip_formatcode is SUPPLIED.
ls_ax-formatcode = ip_formatcode.
else.
ls_ax-formatcode = &apos;General&apos;.
endif.
if ip_sourcelinked is SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
else.
ls_ax-sourcelinked = &apos;1&apos;.
endif.
if ip_majorTickMark is SUPPLIED.
ls_ax-majorTickMark = ip_majorTickMark.
else.
ls_ax-majorTickMark = &apos;out&apos;.
endif.
if ip_minorTickMark is SUPPLIED.
ls_ax-minorTickMark = ip_minorTickMark.
else.
ls_ax-minorTickMark = &apos;none&apos;.
endif.
if ip_ticklblpos is SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
else.
ls_ax-ticklblpos = &apos;nextTo&apos;.
endif.
if ip_crossax is SUPPLIED.
ls_ax-crossax = ip_crossax.
else.
ls_ax-crossax = &apos;2&apos;.
endif.
if ip_crosses is SUPPLIED.
ls_ax-crosses = ip_crosses.
else.
ls_ax-crosses = &apos;autoZero&apos;.
endif.
if ip_auto is SUPPLIED.
ls_ax-auto = ip_auto.
else.
ls_ax-auto = &apos;1&apos;.
endif.
if ip_lblAlgn is SUPPLIED.
ls_ax-lblAlgn = ip_lblAlgn.
else.
ls_ax-lblAlgn = &apos;ctr&apos;.
endif.
if ip_lblOffset is SUPPLIED.
ls_ax-lblOffset = ip_lblOffset.
else.
ls_ax-lblOffset = &apos;100&apos;.
endif.
if ip_noMultiLvlLbl is SUPPLIED.
ls_ax-noMultiLvlLbl = ip_noMultiLvlLbl.
else.
ls_ax-noMultiLvlLbl = &apos;0&apos;.
endif.
elseif ip_type = c_valax.
if ip_axid is SUPPLIED.
ls_ax-axid = ip_axid.
else.
ls_ax-axid = &apos;2&apos;.
endif.
if ip_orientation is SUPPLIED.
ls_ax-orientation = ip_orientation.
else.
ls_ax-orientation = &apos;minMax&apos;.
endif.
if ip_delete is SUPPLIED.
ls_ax-delete = ip_delete.
else.
ls_ax-delete = &apos;0&apos;.
endif.
if ip_axpos is SUPPLIED.
ls_ax-axpos = ip_axpos.
else.
ls_ax-axpos = &apos;l&apos;.
endif.
if ip_formatcode is SUPPLIED.
ls_ax-formatcode = ip_formatcode.
else.
ls_ax-formatcode = &apos;General&apos;.
endif.
if ip_sourcelinked is SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
else.
ls_ax-sourcelinked = &apos;1&apos;.
endif.
if ip_majorTickMark is SUPPLIED.
ls_ax-majorTickMark = ip_majorTickMark.
else.
ls_ax-majorTickMark = &apos;out&apos;.
endif.
if ip_minorTickMark is SUPPLIED.
ls_ax-minorTickMark = ip_minorTickMark.
else.
ls_ax-minorTickMark = &apos;none&apos;.
endif.
if ip_ticklblpos is SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
else.
ls_ax-ticklblpos = &apos;nextTo&apos;.
endif.
if ip_crossax is SUPPLIED.
ls_ax-crossax = ip_crossax.
else.
ls_ax-crossax = &apos;1&apos;.
endif.
if ip_crosses is SUPPLIED.
ls_ax-crosses = ip_crosses.
else.
ls_ax-crosses = &apos;autoZero&apos;.
endif.
if ip_crossBetween is SUPPLIED.
ls_ax-crossBetween = ip_crossBetween.
else.
ls_ax-crossBetween = &apos;between&apos;.
endif.
endif.
APPEND ls_ax TO me-&gt;axes.
sort me-&gt;axes by axid ascending.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_CAT_NAME" VERSION="1" LANGU="E" DESCRIPT="Show the category name on the bar chart" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_CAT_NAME" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_CAT_NAME.
ns_showcatnameval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_LEGEND_KEY" VERSION="1" LANGU="E" DESCRIPT="Show the legend key on the bar chart" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_LEGEND_KEY" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_LEGEND_KEY.
ns_showlegendkeyval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_PERCENT" VERSION="1" LANGU="E" DESCRIPT="Values as percent" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_PERCENT" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_PERCENT.
ns_showpercentval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_SER_NAME" VERSION="1" LANGU="E" DESCRIPT="Show the serie name on the bar chart" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_SER_NAME" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_SER_NAME.
ns_showsernameval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_VALUES" VERSION="1" LANGU="E" DESCRIPT="Show values on the bar chart" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_SHOW_VALUES" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_VALUES.
ns_showvalval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_VARYCOLOR" VERSION="1" LANGU="E" DESCRIPT="Show vary colors" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_BARS" CMPNAME="SET_VARYCOLOR" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_VARYCOLOR.
ns_varycolorsval = ip_value.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_GRAPH_LINE" VERSION="1" LANGU="E" DESCRIPT="Bars Graphic" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_GRAPH">
<types CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="S_AX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="12 " SRCCOLUMN1="4 " SRCROW2="30 " SRCCOLUMN2="23 " TYPESRC_LENG="715 " TYPESRC="BEGIN OF s_ax,
axid TYPE string,
type TYPE char5,
orientation TYPE string,
delete TYPE string,
axpos TYPE string,
formatcode TYPE string,
sourcelinked TYPE string,
majortickmark TYPE string,
minortickmark TYPE string,
ticklblpos TYPE string,
crossax TYPE string,
crosses TYPE string,
auto TYPE string,
lblalgn TYPE string,
lbloffset TYPE string,
nomultilvllbl TYPE string,
crossbetween TYPE string,
END OF s_ax
"/>
<types CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="T_AX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="32 " SRCCOLUMN1="4 " SRCROW2="32 " SRCCOLUMN2="35 " TYPESRC_LENG="34 " TYPESRC="t_ax TYPE STANDARD TABLE OF s_ax
"/>
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="AXES" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="T_AX" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="C_CATAX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="2" ATTVALUE="&apos;CATAX&apos;" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="48 " SRCCOLUMN1="4 " SRCROW2="48 " SRCCOLUMN2="26 " TYPESRC_LENG="25 " TYPESRC="C_CATAX type c length 5
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="C_SYMBOL_AUTO" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;auto&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="C_SYMBOL_NONE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="&apos;none&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="C_VALAX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;VALAX&apos;" ATTEXPVIRT="0" TYPTYPE="4" SRCROW1="46 " SRCCOLUMN1="4 " SRCROW2="46 " SRCCOLUMN2="26 " TYPESRC_LENG="25 " TYPESRC="C_VALAX type c length 5
"/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_GROUPINGVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTVALUE="&apos;standard&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_LEGENDPOSVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTVALUE="&apos;r&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_MARKERVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_OVERLAYVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_SHOWBUBBLESIZEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_SHOWCATNAMEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_SHOWLEGENDKEYVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_SHOWPERCENTVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_SHOWSERNAMEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_SHOWVALVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_SMOOTHVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="NS_VARYCOLORSVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<inheritance CLSNAME="ZCL_EXCEL_GRAPH_LINE" REFCLSNAME="ZCL_EXCEL_GRAPH" VERSION="1" STATE="1"/>
<method CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_AXID" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="R/2 table" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CHAR5"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_ORIENTATION" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_DELETE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_AXPOS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_FORMATCODE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_SOURCELINKED" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_MAJORTICKMARK" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_MINORTICKMARK" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="9 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_TICKLBLPOS" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="10 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_CROSSAX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="11 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_CROSSES" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="12 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_AUTO" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="13 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_LBLALGN" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="14 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_LBLOFFSET" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="15 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_NOMULTILVLLBL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="16 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="CREATE_AX" SCONAME="IP_CROSSBETWEEN" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="17 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<source>method CREATE_AX.
DATA ls_ax TYPE s_ax.
ls_ax-type = ip_type.
IF ip_type = c_catax.
IF ip_axid IS SUPPLIED.
ls_ax-axid = ip_axid.
ELSE.
ls_ax-axid = &apos;1&apos;.
ENDIF.
IF ip_orientation IS SUPPLIED.
ls_ax-orientation = ip_orientation.
ELSE.
ls_ax-orientation = &apos;minMax&apos;.
ENDIF.
IF ip_delete IS SUPPLIED.
ls_ax-delete = ip_delete.
ELSE.
ls_ax-delete = &apos;0&apos;.
ENDIF.
IF ip_axpos IS SUPPLIED.
ls_ax-axpos = ip_axpos.
ELSE.
ls_ax-axpos = &apos;b&apos;.
ENDIF.
IF ip_formatcode IS SUPPLIED.
ls_ax-formatcode = ip_formatcode.
ELSE.
ls_ax-formatcode = &apos;General&apos;.
ENDIF.
IF ip_sourcelinked IS SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
ELSE.
ls_ax-sourcelinked = &apos;1&apos;.
ENDIF.
IF ip_majortickmark IS SUPPLIED.
ls_ax-majortickmark = ip_majortickmark.
ELSE.
ls_ax-majortickmark = &apos;out&apos;.
ENDIF.
IF ip_minortickmark IS SUPPLIED.
ls_ax-minortickmark = ip_minortickmark.
ELSE.
ls_ax-minortickmark = &apos;none&apos;.
ENDIF.
IF ip_ticklblpos IS SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
ELSE.
ls_ax-ticklblpos = &apos;nextTo&apos;.
ENDIF.
IF ip_crossax IS SUPPLIED.
ls_ax-crossax = ip_crossax.
ELSE.
ls_ax-crossax = &apos;2&apos;.
ENDIF.
IF ip_crosses IS SUPPLIED.
ls_ax-crosses = ip_crosses.
ELSE.
ls_ax-crosses = &apos;autoZero&apos;.
ENDIF.
IF ip_auto IS SUPPLIED.
ls_ax-auto = ip_auto.
ELSE.
ls_ax-auto = &apos;1&apos;.
ENDIF.
IF ip_lblalgn IS SUPPLIED.
ls_ax-lblalgn = ip_lblalgn.
ELSE.
ls_ax-lblalgn = &apos;ctr&apos;.
ENDIF.
IF ip_lbloffset IS SUPPLIED.
ls_ax-lbloffset = ip_lbloffset.
ELSE.
ls_ax-lbloffset = &apos;100&apos;.
ENDIF.
IF ip_nomultilvllbl IS SUPPLIED.
ls_ax-nomultilvllbl = ip_nomultilvllbl.
ELSE.
ls_ax-nomultilvllbl = &apos;0&apos;.
ENDIF.
ELSEIF ip_type = c_valax.
IF ip_axid IS SUPPLIED.
ls_ax-axid = ip_axid.
ELSE.
ls_ax-axid = &apos;2&apos;.
ENDIF.
IF ip_orientation IS SUPPLIED.
ls_ax-orientation = ip_orientation.
ELSE.
ls_ax-orientation = &apos;minMax&apos;.
ENDIF.
IF ip_delete IS SUPPLIED.
ls_ax-delete = ip_delete.
ELSE.
ls_ax-delete = &apos;0&apos;.
ENDIF.
IF ip_axpos IS SUPPLIED.
ls_ax-axpos = ip_axpos.
ELSE.
ls_ax-axpos = &apos;l&apos;.
ENDIF.
IF ip_formatcode IS SUPPLIED.
ls_ax-formatcode = ip_formatcode.
ELSE.
ls_ax-formatcode = &apos;General&apos;.
ENDIF.
IF ip_sourcelinked IS SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
ELSE.
ls_ax-sourcelinked = &apos;1&apos;.
ENDIF.
IF ip_majortickmark IS SUPPLIED.
ls_ax-majortickmark = ip_majortickmark.
ELSE.
ls_ax-majortickmark = &apos;out&apos;.
ENDIF.
IF ip_minortickmark IS SUPPLIED.
ls_ax-minortickmark = ip_minortickmark.
ELSE.
ls_ax-minortickmark = &apos;none&apos;.
ENDIF.
IF ip_ticklblpos IS SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
ELSE.
ls_ax-ticklblpos = &apos;nextTo&apos;.
ENDIF.
IF ip_crossax IS SUPPLIED.
ls_ax-crossax = ip_crossax.
ELSE.
ls_ax-crossax = &apos;1&apos;.
ENDIF.
IF ip_crosses IS SUPPLIED.
ls_ax-crosses = ip_crosses.
ELSE.
ls_ax-crosses = &apos;autoZero&apos;.
ENDIF.
IF ip_crossbetween IS SUPPLIED.
ls_ax-crossbetween = ip_crossbetween.
ELSE.
ls_ax-crossbetween = &apos;between&apos;.
ENDIF.
ENDIF.
APPEND ls_ax TO me-&gt;axes.
SORT me-&gt;axes BY axid ASCENDING.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_CAT_NAME" VERSION="1" LANGU="E" DESCRIPT="Show the category name on the bar chart" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_CAT_NAME" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_CAT_NAME.
ns_showcatnameval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_LEGEND_KEY" VERSION="1" LANGU="E" DESCRIPT="Show the legend key on the bar chart" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_LEGEND_KEY" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_LEGEND_KEY.
ns_showlegendkeyval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_PERCENT" VERSION="1" LANGU="E" DESCRIPT="Values as percent" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_PERCENT" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_PERCENT.
ns_showpercentval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_SER_NAME" VERSION="1" LANGU="E" DESCRIPT="Show the serie name on the bar chart" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_SER_NAME" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_SER_NAME.
ns_showsernameval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_VALUES" VERSION="1" LANGU="E" DESCRIPT="Show values on the bar chart" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_SHOW_VALUES" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_VALUES.
ns_showvalval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_VARYCOLOR" VERSION="1" LANGU="E" DESCRIPT="Show vary colors" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_LINE" CMPNAME="SET_VARYCOLOR" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_VARYCOLOR.
ns_varycolorsval = ip_value.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_GRAPH_PIE" VERSION="1" LANGU="E" DESCRIPT="Pie Graphic" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_GRAPH">
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_ENDPARARPRLANG" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTVALUE="&apos;it-IT&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_FIRSTSLICEANGVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_LEGENDPOSVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTVALUE="&apos;r&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_OVERLAYVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_PPRRTL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_SHOWBUBBLESIZEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_SHOWCATNAMEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_SHOWLEADERLINESVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_SHOWLEGENDKEYVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_SHOWPERCENTVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_SHOWSERNAMEVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_SHOWVALVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="NS_VARYCOLORSVAL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<inheritance CLSNAME="ZCL_EXCEL_GRAPH_PIE" REFCLSNAME="ZCL_EXCEL_GRAPH" VERSION="1" STATE="1"/>
<method CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_CAT_NAME" VERSION="1" LANGU="E" DESCRIPT="Show the category name on the pie chart" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_CAT_NAME" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_CAT_NAME.
ns_showcatnameval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_LEADER_LINES" VERSION="1" LANGU="E" DESCRIPT="Show leader lines on the pie chart" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_LEADER_LINES" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_LEADER_LINES.
ns_showleaderlinesval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_LEGEND_KEY" VERSION="1" LANGU="E" DESCRIPT="Show the legend key on the pie chart" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_LEGEND_KEY" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_LEGEND_KEY.
ns_showlegendkeyval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_PERCENT" VERSION="1" LANGU="E" DESCRIPT="Values as percent" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_PERCENT" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_PERCENT.
ns_showpercentval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_SER_NAME" VERSION="1" LANGU="E" DESCRIPT="Show the serie name on the pie chart" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_SER_NAME" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_SER_NAME.
ns_showsernameval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_VALUES" VERSION="1" LANGU="E" DESCRIPT="Show values on the pie chart" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_SHOW_VALUES" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Single-Character Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_SHOW_VALUES.
ns_showvalval = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_VARYCOLOR" VERSION="1" LANGU="E" DESCRIPT="Show vary colors" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_GRAPH_PIE" CMPNAME="SET_VARYCOLOR" SCONAME="IP_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="C"/>
<source>method SET_VARYCOLOR.
ns_varycolorsval = ip_value.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_HYPERLINK" VERSION="1" LANGU="E" DESCRIPT="Hyperlink" CATEGORY="00" EXPOSURE="0" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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_HYPERLINK" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X" IMPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CELL_REFERENCE" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="INTERNAL" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ABAP_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="LOCATION" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE" VERSION="1" LANGU="E" DESCRIPT="Creates new instance of hyperlink" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE" SCONAME="IV_URL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE" SCONAME="IV_INTERNAL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE" SCONAME="OV_LINK" VERSION="1" LANGU="E" DESCRIPT="Hyperlink" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_HYPERLINK"/>
<source>method CREATE.
data: lo_hyperlink type REF TO zcl_excel_hyperlink.
create OBJECT lo_hyperlink.
lo_hyperlink-&gt;location = iv_url.
lo_hyperlink-&gt;internal = iv_internal.
ov_link = lo_hyperlink.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE_EXTERNAL_LINK" VERSION="1" LANGU="E" DESCRIPT="Creates new instance of external link (URL)" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE_EXTERNAL_LINK" SCONAME="IV_URL" VERSION="1" LANGU="E" DESCRIPT="URL location" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE_EXTERNAL_LINK" SCONAME="OV_LINK" VERSION="1" LANGU="E" DESCRIPT="Hyperlink" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_HYPERLINK"/>
<source>method CREATE_EXTERNAL_LINK.
ov_link = zcl_excel_hyperlink=&gt;create( iv_url = iv_url
iv_internal = abap_false ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE_INTERNAL_LINK" VERSION="1" LANGU="E" DESCRIPT="Creates new instance of internal link" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE_INTERNAL_LINK" SCONAME="IV_LOCATION" VERSION="1" LANGU="E" DESCRIPT="Location in current spraedsheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="CREATE_INTERNAL_LINK" SCONAME="OV_LINK" VERSION="1" LANGU="E" DESCRIPT="Hyperlink" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_HYPERLINK"/>
<source>method CREATE_INTERNAL_LINK.
ov_link = zcl_excel_hyperlink=&gt;create( iv_url = iv_location
iv_internal = abap_true ).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="GET_REF" VERSION="1" LANGU="E" DESCRIPT="Gets the reference string" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="GET_REF" SCONAME="EV_REF" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_REF.
ev_ref = row.
CONDENSE ev_ref.
CONCATENATE column ev_ref INTO ev_ref.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="GET_URL" VERSION="1" LANGU="E" DESCRIPT="Gets the urls of the link" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="GET_URL" SCONAME="EV_URL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_URL.
ev_url = me-&gt;location.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="IS_INTERNAL" VERSION="1" LANGU="E" DESCRIPT="Checks if link is pointing to internall location" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="IS_INTERNAL" SCONAME="EV_RET" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<source>method IS_INTERNAL.
ev_ret = me-&gt;internal.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="SET_CELL_REFERENCE" VERSION="1" LANGU="E" DESCRIPT="Sets reference to the cell" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="SET_CELL_REFERENCE" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SIMPLE"/>
<parameter CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="SET_CELL_REFERENCE" SCONAME="IP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<exception CLSNAME="ZCL_EXCEL_HYPERLINK" CMPNAME="SET_CELL_REFERENCE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method SET_CELL_REFERENCE.
me-&gt;column = zcl_excel_common=&gt;convert_column2alpha( ip_column ). &quot; issue #155 - less restrictive typing for ip_column
me-&gt;row = ip_row.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" VERSION="1" LANGU="E" DESCRIPT="Excel legacy color palette" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<localImplementation>*&quot;* use this source file for the definition and implementation of
*&quot;* local helper classes, interface definitions and type
*&quot;* declarations</localImplementation>
<localTypes>*&quot;* use this source file for any type of declarations (class
*&quot;* definitions, interfaces or type declarations) you need for
*&quot;* components in the private section</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_LEGACY_PALETTE" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X" IMPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="COLORS" VERSION="1" LANGU="E" DESCRIPT="Table of RGB colors" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLE_COLOR_ARGB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="MODIFIED" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTVALUE="ABAP_FALSE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ABAP_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
&quot; default Excel palette based on
&quot; http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.indexedcolors.aspx
APPEND &apos;00000000&apos; TO colors.
APPEND &apos;00FFFFFF&apos; TO colors.
APPEND &apos;00FF0000&apos; TO colors.
APPEND &apos;0000FF00&apos; TO colors.
APPEND &apos;000000FF&apos; TO colors.
APPEND &apos;00FFFF00&apos; TO colors.
APPEND &apos;00FF00FF&apos; TO colors.
APPEND &apos;0000FFFF&apos; TO colors.
APPEND &apos;00000000&apos; TO colors.
APPEND &apos;00FFFFFF&apos; TO colors.
APPEND &apos;00FF0000&apos; TO colors.
APPEND &apos;0000FF00&apos; TO colors.
APPEND &apos;000000FF&apos; TO colors.
APPEND &apos;00FFFF00&apos; TO colors.
APPEND &apos;00FF00FF&apos; TO colors.
APPEND &apos;0000FFFF&apos; TO colors.
APPEND &apos;00800000&apos; TO colors.
APPEND &apos;00008000&apos; TO colors.
APPEND &apos;00000080&apos; TO colors.
APPEND &apos;00808000&apos; TO colors.
APPEND &apos;00800080&apos; TO colors.
APPEND &apos;00008080&apos; TO colors.
APPEND &apos;00C0C0C0&apos; TO colors.
APPEND &apos;00808080&apos; TO colors.
APPEND &apos;009999FF&apos; TO colors.
APPEND &apos;00993366&apos; TO colors.
APPEND &apos;00FFFFCC&apos; TO colors.
APPEND &apos;00CCFFFF&apos; TO colors.
APPEND &apos;00660066&apos; TO colors.
APPEND &apos;00FF8080&apos; TO colors.
APPEND &apos;000066CC&apos; TO colors.
APPEND &apos;00CCCCFF&apos; TO colors.
APPEND &apos;00000080&apos; TO colors.
APPEND &apos;00FF00FF&apos; TO colors.
APPEND &apos;00FFFF00&apos; TO colors.
APPEND &apos;0000FFFF&apos; TO colors.
APPEND &apos;00800080&apos; TO colors.
APPEND &apos;00800000&apos; TO colors.
APPEND &apos;00008080&apos; TO colors.
APPEND &apos;000000FF&apos; TO colors.
APPEND &apos;0000CCFF&apos; TO colors.
APPEND &apos;00CCFFFF&apos; TO colors.
APPEND &apos;00CCFFCC&apos; TO colors.
APPEND &apos;00FFFF99&apos; TO colors.
APPEND &apos;0099CCFF&apos; TO colors.
APPEND &apos;00FF99CC&apos; TO colors.
APPEND &apos;00CC99FF&apos; TO colors.
APPEND &apos;00FFCC99&apos; TO colors.
APPEND &apos;003366FF&apos; TO colors.
APPEND &apos;0033CCCC&apos; TO colors.
APPEND &apos;0099CC00&apos; TO colors.
APPEND &apos;00FFCC00&apos; TO colors.
APPEND &apos;00FF9900&apos; TO colors.
APPEND &apos;00FF6600&apos; TO colors.
APPEND &apos;00666699&apos; TO colors.
APPEND &apos;00969696&apos; TO colors.
APPEND &apos;00003366&apos; TO colors.
APPEND &apos;00339966&apos; TO colors.
APPEND &apos;00003300&apos; TO colors.
APPEND &apos;00333300&apos; TO colors.
APPEND &apos;00993300&apos; TO colors.
APPEND &apos;00993366&apos; TO colors.
APPEND &apos;00333399&apos; TO colors.
APPEND &apos;00333333&apos; TO colors.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="GET_COLOR" VERSION="1" LANGU="E" DESCRIPT="Get color" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="GET_COLOR" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="0 - based index" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="GET_COLOR" SCONAME="EP_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB"/>
<exception CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="GET_COLOR" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>method GET_COLOR.
DATA: lv_index type i.
lv_index = ip_index + 1.
READ TABLE colors INTO ep_color INDEX lv_index.
IF sy-subrc &lt;&gt; 0.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Invalid color index&apos;.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="GET_COLORS" VERSION="1" LANGU="E" DESCRIPT="Get all colors" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="GET_COLORS" SCONAME="EP_COLORS" VERSION="1" LANGU="E" DESCRIPT="Table of RGB colors" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLE_COLOR_ARGB"/>
<source>method GET_COLORS.
ep_colors = colors.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="IS_MODIFIED" VERSION="1" LANGU="E" DESCRIPT="Is the palette modified from standard?" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="IS_MODIFIED" SCONAME="EP_MODIFIED" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ABAP_BOOL"/>
<source>method IS_MODIFIED.
ep_modified = modified.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="SET_COLOR" VERSION="1" LANGU="E" DESCRIPT="Set (replace) color" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="SET_COLOR" SCONAME="IP_INDEX" VERSION="1" LANGU="E" DESCRIPT="0 - based index" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_LEGACY_PALETTE" CMPNAME="SET_COLOR" SCONAME="IP_COLOR" VERSION="1" LANGU="E" DESCRIPT="Color ARGB" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_STYLE_COLOR_ARGB"/>
<source>method SET_COLOR.
DATA: lv_index TYPE i.
FIELD-SYMBOLS: &lt;lv_color&gt; LIKE LINE OF colors.
lv_index = ip_index + 1.
READ TABLE colors ASSIGNING &lt;lv_color&gt; INDEX lv_index.
IF sy-subrc &lt;&gt; 0.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = &apos;Invalid color index&apos;.
ENDIF.
IF &lt;lv_color&gt; &lt;&gt; ip_color.
modified = abap_true.
&lt;lv_color&gt; = ip_color.
ENDIF.
endmethod.</source>
</method>
</CLAS>
<CLAS CLSNAME="ZCL_EXCEL_RANGE" VERSION="1" LANGU="E" DESCRIPT="Excel range" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<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>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GCV_PRINT_TITLE_NAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;_xlnm.Print_Titles&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GUID" VERSION="1" LANGU="E" DESCRIPT="GUID for the OLTP System (RAW16)" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_GUID" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="NAME" VERSION="1" LANGU="E" DESCRIPT="Range Name" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_GUID" VERSION="1" LANGU="E" DESCRIPT="Get Guid" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="GUID for the OLTP System (RAW16)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_GUID"/>
<source>method GET_GUID.
ep_guid = me-&gt;guid.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_VALUE" VERSION="1" LANGU="E" DESCRIPT="Get value" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_VALUE" SCONAME="EP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE"/>
<source>method GET_VALUE.
ep_value = me-&gt;value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_RANGE_VALUE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_RANGE_VALUE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE"/>
<source>method SET_RANGE_VALUE.
me-&gt;value = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" VERSION="1" LANGU="E" DESCRIPT="Set Range value" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_SHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_START_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_START_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_STOP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_STOP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<source>method SET_VALUE.
DATA: lv_start_row_c TYPE char7,
lv_stop_row_c TYPE char7,
lv_value TYPE string.
lv_stop_row_c = ip_stop_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_start_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
lv_value = ip_sheet_name.
me-&gt;value = zcl_excel_common=&gt;escape_string( ip_value = lv_value ).
CONCATENATE me-&gt;value &apos;!$&apos; ip_start_column &apos;$&apos; lv_start_row_c &apos;:$&apos; ip_stop_column &apos;$&apos; lv_stop_row_c INTO me-&gt;value.
endmethod.</source>
</method>
</CLAS>
<DOMA DOMNAME="ZEXCEL_PWD_HASH" DDLANGUAGE="E" DATATYPE="RAW" LENG="000002" OUTPUTLEN="000004" DECIMALS="000000" MASKLEN="0000" DDTEXT="Password hash" AUTHCLASS="00" OUTPUTSTYLE="00"/>
<DOMA DOMNAME="ZEXCEL_FORMAT" DDLANGUAGE="E" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" VALEXI="X" MASKLEN="0000" DDTEXT="File format" AUTHCLASS="00" OUTPUTSTYLE="00">
<dd07v DOMNAME="ZEXCEL_FORMAT" VALPOS="0001" DDLANGUAGE="E" DOMVALUE_L="XLSX" DDTEXT="Excel 2007 workbook (.xlsx)"/>
<dd07v DOMNAME="ZEXCEL_FORMAT" VALPOS="0002" DDLANGUAGE="E" DOMVALUE_L="XLS" DDTEXT="Excel 2003 workbook (.xls)"/>
</DOMA>
<DOMA DOMNAME="ZEXCEL_DRAWING_TYPE" DDLANGUAGE="E" DATATYPE="CHAR" LENG="000005" OUTPUTLEN="000005" DECIMALS="000000" LOWERCASE="X" VALEXI="X" MASKLEN="0000" DDTEXT="Excel Drawing type" AUTHCLASS="00" OUTPUTSTYLE="00">
<dd07v DOMNAME="ZEXCEL_DRAWING_TYPE" VALPOS="0001" DDLANGUAGE="E" DOMVALUE_L="image" DDTEXT="Image"/>
<dd07v DOMNAME="ZEXCEL_DRAWING_TYPE" VALPOS="0002" DDLANGUAGE="E" DOMVALUE_L="chart" DDTEXT="Chart"/>
</DOMA>
<DOMA DOMNAME="ZEXCEL_DRAWING_ANCHOR" DDLANGUAGE="E" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" VALEXI="X" MASKLEN="0000" DDTEXT="Excel drawing anchor type" AUTHCLASS="00" OUTPUTSTYLE="00">
<dd07v DOMNAME="ZEXCEL_DRAWING_ANCHOR" VALPOS="0001" DDLANGUAGE="E" DOMVALUE_L="ABS" DDTEXT="Absolute position"/>
<dd07v DOMNAME="ZEXCEL_DRAWING_ANCHOR" VALPOS="0002" DDLANGUAGE="E" DOMVALUE_L="ONE" DDTEXT="One-cell anchor"/>
<dd07v DOMNAME="ZEXCEL_DRAWING_ANCHOR" VALPOS="0003" DDLANGUAGE="E" DOMVALUE_L="TWO" DDTEXT="Two-cell anchor"/>
</DOMA>
<DOMA DOMNAME="ZEXCEL_DEC_8_2" DDLANGUAGE="E" DATATYPE="DEC" LENG="000008" OUTPUTLEN="000010" DECIMALS="000002" MASKLEN="0000" DDTEXT="Decimal number 8.2" AUTHCLASS="00" OUTPUTSTYLE="00"/>
<DOMA DOMNAME="ZEXCEL_CELL_PROTECTION" DDLANGUAGE="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASKLEN="0000" DDTEXT="Cell locked" AUTHCLASS="00" OUTPUTSTYLE="00">
<dd07v DOMNAME="ZEXCEL_CELL_PROTECTION" VALPOS="0001" DDLANGUAGE="E" DOMVALUE_L="1" DDTEXT="Locked"/>
<dd07v DOMNAME="ZEXCEL_CELL_PROTECTION" VALPOS="0002" DDLANGUAGE="E" DOMVALUE_L="0" DDTEXT="Unlocked"/>
</DOMA>
<DOMA DOMNAME="ZEXCEL_BOOLE01" DDLANGUAGE="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASKLEN="0000" DDTEXT="XML Schema bool data type" AUTHCLASS="00" OUTPUTSTYLE="00">
<dd07v DOMNAME="ZEXCEL_BOOLE01" VALPOS="0001" DDLANGUAGE="E" DOMVALUE_L="1" DDTEXT="True"/>
<dd07v DOMNAME="ZEXCEL_BOOLE01" VALPOS="0002" DDLANGUAGE="E" DOMVALUE_L="0" DDTEXT="False"/>
</DOMA>
<DOMA DOMNAME="ZEXCEL_CONVERTER_OPTION" DDLANGUAGE="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASKLEN="0000" DDTEXT="Converter Option" AUTHCLASS="00" OUTPUTSTYLE="00">
<dd07v DOMNAME="ZEXCEL_CONVERTER_OPTION" VALPOS="0001" DDLANGUAGE="E" DDTEXT="Option not converted"/>
<dd07v DOMNAME="ZEXCEL_CONVERTER_OPTION" VALPOS="0002" DDLANGUAGE="E" DOMVALUE_L="X" DDTEXT="Option Converted"/>
<dd07v DOMNAME="ZEXCEL_CONVERTER_OPTION" VALPOS="0003" DDLANGUAGE="E" DOMVALUE_L="-" DDTEXT="Option applied converted"/>
</DOMA>
<DOMA DOMNAME="ZEXCEL_SHEET_BOOL" DDLANGUAGE="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASKLEN="0000" DDTEXT="XML Schema bool data type" AUTHCLASS="00" OUTPUTSTYLE="00">
<dd07v DOMNAME="ZEXCEL_SHEET_BOOL" VALPOS="0001" DDLANGUAGE="E" DOMVALUE_L="1" DDTEXT="True"/>
<dd07v DOMNAME="ZEXCEL_SHEET_BOOL" VALPOS="0002" DDLANGUAGE="E" DOMVALUE_L="0" DDTEXT="False"/>
</DOMA>
<DTEL ROLLNAME="ZEXCEL_SHEET_STATE" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Sheet state" REPTEXT="Sheet state" SCRTEXT_S="State" SCRTEXT_M="Sheet state" SCRTEXT_L="Sheet state" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_SHOWZEROS" DDLANGUAGE="E" DOMNAME="XFELD" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Show zeros" REPTEXT="Show zeros" SCRTEXT_S="Show zeros" SCRTEXT_M="Show zeros" SCRTEXT_L="Show zeros" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_SELECTED" DDLANGUAGE="E" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="18" SCRLEN1="10" SCRLEN2="18" SCRLEN3="22" DDTEXT="Selected property" REPTEXT="Selected property" SCRTEXT_S="Selected" SCRTEXT_M="Selected property" SCRTEXT_L="Selected property" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_PROTECTION_BOOL" DDLANGUAGE="E" DOMNAME="ZEXCEL_BOOLE01" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DDTEXT="Sheet protection indicator" REPTEXT="Sheet protection" SCRTEXT_S="Protection" SCRTEXT_M="Sheet protection" SCRTEXT_L="Sheet protection" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_PROTECTION" DDLANGUAGE="E" DOMNAME="XFELD" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DDTEXT="Sheet protection indicator" REPTEXT="Sheet protection" SCRTEXT_S="Protection" SCRTEXT_M="Sheet protection" SCRTEXT_L="Sheet protection" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_PAPER_SIZE" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DDTEXT="Fill Type" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_ORIENATATION" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="17" SCRLEN3="20" DDTEXT="Sheet orientation" REPTEXT="Sheet orientation" SCRTEXT_S="Orientat." SCRTEXT_M="Sheet orientation" SCRTEXT_L="Sheet orientation" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_HIDDEN" DDLANGUAGE="E" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Hidden property" REPTEXT="Hidden property" SCRTEXT_S="Hidden" SCRTEXT_M="Hidden property" SCRTEXT_L="Hidden property" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SCALECROP" DDLANGUAGE="E" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="ScaleCrop" REPTEXT="ScaleCrop" SCRTEXT_S="ScaleCrop" SCRTEXT_M="ScaleCrop" SCRTEXT_L="ScaleCrop" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_ROTATION" DDLANGUAGE="E" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Rotation" REPTEXT="Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Rotation" SCRTEXT_L="Rotation" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT4" LENG="000010" DECIMALS="000000" OUTPUTLEN="000010" SIGNFLAG="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_REVISIONSPASSWORD" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="20" SCRLEN3="20" DDTEXT="Revisions password" REPTEXT="Revisions password" SCRTEXT_S="Password" SCRTEXT_M="Revisions password" SCRTEXT_L="Revisions password" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_RANGE_VALUE" DDLANGUAGE="E" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Cell Value" REPTEXT="Cell Value" SCRTEXT_S="Value" SCRTEXT_M="Cell Value" SCRTEXT_L="Cell Value" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_PRIORITY" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="14" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Style Priority" REPTEXT="Style Priority" SCRTEXT_S="Priority" SCRTEXT_M="Style Priority" SCRTEXT_L="Style Priority" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_RANGE_NAME" DDLANGUAGE="E" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Range Name" REPTEXT="Range Name" SCRTEXT_S="Range Name" SCRTEXT_M="Range Name" SCRTEXT_L="Range Name" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_RANGE_GUID" DDLANGUAGE="E" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="32" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Range guid" REPTEXT="Range guid" SCRTEXT_S="Range guid" SCRTEXT_M="Range guid" SCRTEXT_L="Range guid" AUTHCLASS="00" DTELMASTER="E" DATATYPE="RAW" LENG="000016" DECIMALS="000000" OUTPUTLEN="000032" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_PWD_HASH" DDLANGUAGE="E" DOMNAME="ZEXCEL_PWD_HASH" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Password hash" REPTEXT="Password hash" SCRTEXT_S="Password" SCRTEXT_M="Password hash" SCRTEXT_L="Password hash" AUTHCLASS="00" DTELMASTER="E" DATATYPE="RAW" LENG="000002" DECIMALS="000000" OUTPUTLEN="000004" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_PROTECTION" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Protection" REPTEXT="Protection" SCRTEXT_S="Protection" SCRTEXT_M="Protection" SCRTEXT_L="Protection" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_PRINT_GRIDLINES" DDLANGUAGE="E" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Print Gridlines" REPTEXT="Print Gridlines" SCRTEXT_S="Print Grid" SCRTEXT_M="Print Gridlines" SCRTEXT_L="Print Gridlines" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_PANE_TYPE" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" AUTHCLASS="00" DTELMASTER="R" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_PANE_STATE" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" AUTHCLASS="00" DTELMASTER="R" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_NUMBER_FORMAT" DDLANGUAGE="E" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Number format" REPTEXT="Number format" SCRTEXT_S="Format" SCRTEXT_M="Number format" SCRTEXT_L="Number format" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_LOCKED" DDLANGUAGE="E" DOMNAME="XFELD" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="09" SCRLEN2="11" SCRLEN3="11" DDTEXT="Cell locked" REPTEXT="Cell locked" SCRTEXT_S="Cell lock" SCRTEXT_M="Cell locked" SCRTEXT_L="Cell locked" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_KEYWORDS" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Keywords" REPTEXT="Keywords" SCRTEXT_S="Keywords" SCRTEXT_M="Keywords" SCRTEXT_L="Keywords" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_INDENT" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Indent" REPTEXT="Indent" SCRTEXT_S="Indent" SCRTEXT_M="Indent" SCRTEXT_L="Indent" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_WORKSHEETS_NAME" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Worksheets name" REPTEXT="Worksheets name" SCRTEXT_S="Name" SCRTEXT_M="Worksheets name" SCRTEXT_L="Worksheets name" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_WORKBOOKPASSWORD" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="20" SCRLEN3="20" DDTEXT="Workbook password" REPTEXT="Workbook password" SCRTEXT_S="Password" SCRTEXT_M="Workbook password" SCRTEXT_L="Workbook password" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_VALIDATION_FORMULA1" DDLANGUAGE="E" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="19" SCRLEN3="20" DDTEXT="Validation formula1" REPTEXT="Validation formula1" SCRTEXT_S="Formula1" SCRTEXT_M="Validation formula1" SCRTEXT_L="Validation formula1" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_TITLE" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Title" REPTEXT="Title" SCRTEXT_S="Title" SCRTEXT_M="Title" SCRTEXT_L="Title" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_TEXT_ROTATION" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Text Rotation" REPTEXT="Text Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Text Rotation" SCRTEXT_L="Text Rotation" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_TABLE_TOTALS_FUNCTION" DDLANGUAGE="E" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DDTEXT="Totals function for table column (xml ST_TotalsRowFunction)" SCRTEXT_S="Function" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_TABLE_STYLE" DDLANGUAGE="E" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DDTEXT="Name of the table style" SCRTEXT_S="Table styl" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SUBJECT" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Subject" REPTEXT="Subject" SCRTEXT_S="Subject" SCRTEXT_M="Subject" SCRTEXT_L="Subject" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_FORMULA" DDLANGUAGE="E" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Style formula" REPTEXT="Style formula" SCRTEXT_S="Formula" SCRTEXT_M="Style formula" SCRTEXT_L="Style formula" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_FONT_UNDERLINE" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Font underline" REPTEXT="Font underline" SCRTEXT_S="Underline" SCRTEXT_M="Font underline" SCRTEXT_L="Font underline" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_FONT_SIZE" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Font size" REPTEXT="Font size" SCRTEXT_S="Size" SCRTEXT_M="Font size" SCRTEXT_L="Font size" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_FONT_SCHEME" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Font scheme" REPTEXT="Font scheme" SCRTEXT_S="Scheme" SCRTEXT_M="Font scheme" SCRTEXT_L="Font scheme" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_FONT_NAME" DDLANGUAGE="E" DOMNAME="CHAR255" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Font name" REPTEXT="Font name" SCRTEXT_S="Name" SCRTEXT_M="Font name" SCRTEXT_L="Font name" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000255" DECIMALS="000000" OUTPUTLEN="000255" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_FONT_FAMILY" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Font family" REPTEXT="Font family" SCRTEXT_S="Family" SCRTEXT_M="Font family" SCRTEXT_L="Font family" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" DDLANGUAGE="E" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" AUTHCLASS="00" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" DECIMALS="000016" OUTPUTLEN="000022">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" DDLANGUAGE="E" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT4" LENG="000010" DECIMALS="000000" OUTPUTLEN="000011">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" DDLANGUAGE="E" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT4" LENG="000010" DECIMALS="000000" OUTPUTLEN="000011">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_COLOR_COMPONENT" DDLANGUAGE="E" DOMNAME="CHAR2" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="15" SCRLEN3="15" DDTEXT="Color Component" REPTEXT="Color Component" SCRTEXT_S="Color Comp" SCRTEXT_M="Color Component" SCRTEXT_L="Color Component" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000002" DECIMALS="000000" OUTPUTLEN="000002" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" DDLANGUAGE="E" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" DECIMALS="000000" OUTPUTLEN="000008" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHOW_ROWCOLHEADER" DDLANGUAGE="E" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="20" SCRLEN3="22" DDTEXT="Show Row Column Header" REPTEXT="Show Row Column Header" SCRTEXT_S="ColHeder" SCRTEXT_M="Show Row Column Head" SCRTEXT_L="Show Row Column Header" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHOW_GRIDLINES" DDLANGUAGE="E" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Show Gridlines" REPTEXT="Show Gridlines" SCRTEXT_S="Show Grid" SCRTEXT_M="Show Gridlines" SCRTEXT_L="Show Gridlines" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_ZOOMSCALE" DDLANGUAGE="E" DOMNAME="INT2" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="16" DDTEXT="Sheet Zoom Scale" REPTEXT="Sheet Zoom Scale" SCRTEXT_S="Zoom Scale" SCRTEXT_M="Sheet Zoom Scale" SCRTEXT_L="Sheet Zoom Scale" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT2" LENG="000005" DECIMALS="000000" OUTPUTLEN="000005" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_TITLE" DDLANGUAGE="E" DOMNAME="TEXT31" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Title" REPTEXT="Title" SCRTEXT_S="Title" SCRTEXT_M="Title" SCRTEXT_L="Title" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000031" DECIMALS="000000" OUTPUTLEN="000031" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_SHEET_SUMMARY" DDLANGUAGE="E" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="27" SCRLEN1="10" SCRLEN2="19" SCRLEN3="26" DDTEXT="Outline summary below/right" REPTEXT="Outline summary below/right" SCRTEXT_S="SumBlwRgt" SCRTEXT_M="Summary below/right" SCRTEXT_L="Outline summary below/rght" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT4" LENG="000010" DECIMALS="000000" OUTPUTLEN="000010" SIGNFLAG="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_HIDDEN" DDLANGUAGE="E" DOMNAME="XFELD" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Cell hidden" REPTEXT="Cell hidden" SCRTEXT_S="Cell hide" SCRTEXT_M="Cell hidden" SCRTEXT_L="Cell hidden" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_COLOR" DDLANGUAGE="E" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DDTEXT="Color" REPTEXT="Color" SCRTEXT_S="Color" SCRTEXT_M="Color" SCRTEXT_L="Color" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" DECIMALS="000000" OUTPUTLEN="000008" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_VALUE" DDLANGUAGE="E" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Cell Value" REPTEXT="Cell Value" SCRTEXT_S="Value" SCRTEXT_M="Cell Value" SCRTEXT_L="Cell Value" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_STYLE" DDLANGUAGE="E" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" AUTHCLASS="00" DTELMASTER="E" DATATYPE="RAW" LENG="000016" DECIMALS="000000" OUTPUTLEN="000032" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_ROW" DDLANGUAGE="E" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT4" LENG="000010" DECIMALS="000000" OUTPUTLEN="000010" SIGNFLAG="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_PROTECTION" DDLANGUAGE="E" DOMNAME="ZEXCEL_CELL_PROTECTION" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DDTEXT="Cell protection indicator" REPTEXT="Cell protection" SCRTEXT_S="Protection" SCRTEXT_M="Cell protection" SCRTEXT_L="Cell protection" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_FORMULA" DDLANGUAGE="E" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Cell Formula" REPTEXT="Cell Formula" SCRTEXT_S="Formula" SCRTEXT_M="Cell Formula" SCRTEXT_L="Cell Formula" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_DATA_TYPE" DDLANGUAGE="E" ROUTPUTLEN="000000" HEADLEN="14" SCRLEN1="09" SCRLEN2="14" SCRLEN3="14" DDTEXT="Cell data type" REPTEXT="Cell data type" SCRTEXT_S="Data type" SCRTEXT_M="Cell data type" SCRTEXT_L="Cell data type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_COORDS" DDLANGUAGE="E" ROUTPUTLEN="000000" HEADLEN="25" SCRLEN1="10" SCRLEN2="16" SCRLEN3="25" DDTEXT="Cell coordinates as Excel" REPTEXT="Cell coordinates as Excel" SCRTEXT_S="Cell coord" SCRTEXT_M="Cell coordinates" SCRTEXT_L="Cell coordinates as Excel" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_COLUMN_ALPHA" DDLANGUAGE="E" DOMNAME="CHAR3" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CELL_COLUMN" DDLANGUAGE="E" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT4" LENG="000010" DECIMALS="000000" OUTPUTLEN="000010" SIGNFLAG="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CATEGORY" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Category" REPTEXT="Category" SCRTEXT_S="Category" SCRTEXT_M="Category" SCRTEXT_L="Category" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_BREAK" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Worksheet Break" REPTEXT="Worksheet Break" SCRTEXT_S="Break" SCRTEXT_M="Worksheet Break" SCRTEXT_L="Worksheet Break" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_BORDER" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_BOOK_PROTECTION" DDLANGUAGE="E" DOMNAME="XFELD" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DDTEXT="Book protection indicator" REPTEXT="Book protection" SCRTEXT_S="Protection" SCRTEXT_M="Book protection" SCRTEXT_L="Book protection" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_APPVERSION" DDLANGUAGE="E" DOMNAME="CHAR07" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="19" SCRLEN3="20" DDTEXT="Application version" REPTEXT="Application version" SCRTEXT_S="AppVersion" SCRTEXT_M="Application version" SCRTEXT_L="Application version" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000007" DECIMALS="000000" OUTPUTLEN="000007" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_APPLICATION" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Application" REPTEXT="Application" SCRTEXT_S="Applic." SCRTEXT_M="Application" SCRTEXT_L="Application" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_ALIGNMENT" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_AES_PASSWORD" DDLANGUAGE="E" DOMNAME="CHAR50" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="AES Password" REPTEXT="AES Password" SCRTEXT_S="AES Pwd" SCRTEXT_M="AES Password" SCRTEXT_L="AES Password" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000050" DECIMALS="000000" OUTPUTLEN="000050" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_ACTIVE_WORKSHEET" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="06" SCRLEN2="16" SCRLEN3="16" DDTEXT="Active Worksheet" REPTEXT="Active Worksheet" SCRTEXT_S="Active" SCRTEXT_M="Active Worksheet" SCRTEXT_L="Active Worksheet" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONVERTER_OPTION_SUBTOT" DDLANGUAGE="E" DOMNAME="ZEXCEL_CONVERTER_OPTION" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="26" DDTEXT="Subtotal options for converter with grid object" REPTEXT="Subtotal options" SCRTEXT_S="Subtotal" SCRTEXT_M="Subtotal options" SCRTEXT_L="Converter subtotal options" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONVERTER_OPTION_HIDENC" DDLANGUAGE="E" DOMNAME="ZEXCEL_CONVERTER_OPTION" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="17" SCRLEN3="30" DDTEXT="Hiden column options for converter with grid object" REPTEXT="Hiden column options" SCRTEXT_S="Hiden col." SCRTEXT_M="Hiden column opt." SCRTEXT_L="Converter hiden column options" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONVERTER_OPTION_FILTER" DDLANGUAGE="E" DOMNAME="ZEXCEL_CONVERTER_OPTION" ROUTPUTLEN="000000" HEADLEN="14" SCRLEN1="10" SCRLEN2="15" SCRLEN3="24" DDTEXT="Filter options for converter with grid object" REPTEXT="Filter options" SCRTEXT_S="Filter" SCRTEXT_M="Filter options" SCRTEXT_L="Converter Filter options" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONVERTER_OPTION_HIDEHD" DDLANGUAGE="E" DOMNAME="ZEXCEL_CONVERTER_OPTION" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="17" SCRLEN3="30" DDTEXT="Hiden column header for converter with grid object" REPTEXT="Hiden column options" SCRTEXT_S="Hiden col." SCRTEXT_M="Hiden column opt." SCRTEXT_L="Converter hiden column options" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_COMPANY" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Company" REPTEXT="Company" SCRTEXT_S="Company" SCRTEXT_M="Company" SCRTEXT_L="Company" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_GRAPH_TYPE" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Graph type" REPTEXT="Graph type" SCRTEXT_S="Graph type" SCRTEXT_M="Graph type" SCRTEXT_L="Graph type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_FORMAT" DDLANGUAGE="E" DOMNAME="ZEXCEL_FORMAT" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="File format" REPTEXT="File format" SCRTEXT_S="File type" SCRTEXT_M="File format" SCRTEXT_L="File format" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000004" DECIMALS="000000" OUTPUTLEN="000004" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_FONT" DDLANGUAGE="E" DOMNAME="CHAR10" ROUTPUTLEN="000000" HEADLEN="04" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DDTEXT="Font" REPTEXT="Font" SCRTEXT_S="Font" SCRTEXT_M="Font" SCRTEXT_L="Font" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" DECIMALS="000000" OUTPUTLEN="000010" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_FILL_TYPE" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DDTEXT="Fill Type" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_FILL" DDLANGUAGE="E" DOMNAME="CHAR10" ROUTPUTLEN="000000" HEADLEN="04" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DDTEXT="Font" REPTEXT="Font" SCRTEXT_S="Font" SCRTEXT_M="Font" SCRTEXT_L="Font" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" DECIMALS="000000" OUTPUTLEN="000010" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_EXPORT_DIR" DDLANGUAGE="E" DOMNAME="TEXT255" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Export Directory" REPTEXT="Export Directory" SCRTEXT_S="Exprt D" SCRTEXT_M="Exprt D" SCRTEXT_L="Export Directory" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000255" DECIMALS="000000" OUTPUTLEN="000255" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DRAWING_TYPE" DDLANGUAGE="E" DOMNAME="ZEXCEL_DRAWING_TYPE" ROUTPUTLEN="000000" HEADLEN="04" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Excel Drawing type" REPTEXT="Type" SCRTEXT_S="Type" SCRTEXT_M="Type" SCRTEXT_L="Drawing type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000005" DECIMALS="000000" OUTPUTLEN="000005" LOWERCASE="X" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DRAWING_ANCHOR" DDLANGUAGE="E" DOMNAME="ZEXCEL_DRAWING_ANCHOR" ROUTPUTLEN="000000" HEADLEN="06" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Excel Drawing anchor" REPTEXT="Anchor" SCRTEXT_S="Anchor" SCRTEXT_M="Anchor" SCRTEXT_L="Anchor Type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DOCSECURITY" DDLANGUAGE="E" DOMNAME="NUMC1" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="DocSecurity" REPTEXT="DocSecurity" SCRTEXT_S="DocSec." SCRTEXT_M="DocSecurity" SCRTEXT_L="DocSecurity" AUTHCLASS="00" DTELMASTER="E" DATATYPE="NUMC" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DIAGONAL" DDLANGUAGE="E" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DDTEXT="Diagonal" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="INT1" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DESCRIPTION" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Description" REPTEXT="Description" SCRTEXT_S="Descr." SCRTEXT_M="Description" SCRTEXT_L="Description" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DEC_8_2" DDLANGUAGE="E" DOMNAME="ZEXCEL_DEC_8_2" ROUTPUTLEN="000000" HEADLEN="18" SCRLEN1="07" SCRLEN2="18" SCRLEN3="18" DDTEXT="Decimal number 8.2" REPTEXT="Decimal number 8.2" SCRTEXT_S="Dec 8.2" SCRTEXT_M="Decimal number 8.2" SCRTEXT_L="Decimal number 8.2" AUTHCLASS="00" DTELMASTER="E" DATATYPE="DEC" LENG="000008" DECIMALS="000002" OUTPUTLEN="000010" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DATA_VAL_TYPE" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="20" SCRLEN3="20" DDTEXT="Data validation type" REPTEXT="Data validation type" SCRTEXT_S="Type" SCRTEXT_M="Data validation type" SCRTEXT_L="Data validation type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DATA_VAL_OPERATOR" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="28" SCRLEN1="10" SCRLEN2="20" SCRLEN3="28" DDTEXT="Data validation operator" REPTEXT="Data validation operator" SCRTEXT_S="Operator" SCRTEXT_M="Data val. operator" SCRTEXT_L="Data validation operator" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_DATA_VAL_ERROR_STYLE" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="28" SCRLEN1="10" SCRLEN2="20" SCRLEN3="28" DDTEXT="Data validation error style" REPTEXT="Data validation error style" SCRTEXT_S="Error sty." SCRTEXT_M="Data val. err. style" SCRTEXT_L="Data validation error style" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CREATOR" DDLANGUAGE="E" DOMNAME="TEXT80" ROUTPUTLEN="000000" HEADLEN="07" SCRLEN1="07" SCRLEN2="07" SCRLEN3="07" DDTEXT="Creator" REPTEXT="Creator" SCRTEXT_S="Creator" SCRTEXT_M="Creator" SCRTEXT_L="Creator" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000080" DECIMALS="000000" OUTPUTLEN="000080" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONDITION_RULE_ICONSET" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="18" SCRLEN3="22" DDTEXT="Condition rule iconset" REPTEXT="Condition rule iconset" SCRTEXT_S="Cond. rule" SCRTEXT_M="Cond. rule iconset" SCRTEXT_L="Condition rule iconset" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONDITION_RULE" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Condition rule" REPTEXT="Condition rule" SCRTEXT_S="Cond. rule" SCRTEXT_M="Condition rule" SCRTEXT_L="Condition rule" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONDITION_OPERATOR" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="18" SCRLEN3="20" DDTEXT="Condition operator" REPTEXT="Condition operator" SCRTEXT_S="Cond. oper" SCRTEXT_M="Condition operator" SCRTEXT_L="Condition operator" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONDITIONAL_VALUE" DDLANGUAGE="E" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DDTEXT="Condition value" REPTEXT="Condition value" SCRTEXT_S="Value" SCRTEXT_M="Condition value" SCRTEXT_L="Condition value" AUTHCLASS="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" DECIMALS="000000" OUTPUTLEN="000000" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONDITIONAL_TYPE" DDLANGUAGE="E" DOMNAME="TEXT10" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" DECIMALS="000000" OUTPUTLEN="000010" LOWERCASE="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONDITIONAL_SHOW_VALUE" DDLANGUAGE="E" DOMNAME="ZEXCEL_BOOLE01" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" DECIMALS="000000" OUTPUTLEN="000001" VALEXI="X" REFKIND="D">
<tpara/>
</DTEL>
<DTEL ROLLNAME="ZEXCEL_CONDITIONAL" DDLANGUAGE="E" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DDTEXT="Conditional" REPTEXT="Conditional" SCRTEXT_S="Condit." SCRTEXT_M="Conditional" SCRTEXT_L="Conditional" AUTHCLASS="00" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" DECIMALS="000000" OUTPUTLEN="000020" REFKIND="D">
<tpara/>
</DTEL>
<INTF CLSNAME="ZIF_EXCEL_WRITER" VERSION="1" LANGU="E" DESCRIPT="Writer Interface" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<method CLSNAME="ZIF_EXCEL_WRITER" CMPNAME="WRITE_FILE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_WRITER" CMPNAME="WRITE_FILE" SCONAME="IO_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL"/>
<parameter CLSNAME="ZIF_EXCEL_WRITER" CMPNAME="WRITE_FILE" SCONAME="EP_FILE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
</method>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" VERSION="1" LANGU="E" DESCRIPT="Excel workbook VBA Project" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" CMPNAME="CODENAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" CMPNAME="CODENAME_PR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" CMPNAME="VBAPROJECT" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XSTRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" CMPNAME="SET_CODENAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" CMPNAME="SET_CODENAME" SCONAME="IP_CODENAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
</method>
<method CLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" CMPNAME="SET_CODENAME_PR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_SHEET_VBA_PROJECT" CMPNAME="SET_CODENAME_PR" SCONAME="IP_CODENAME_PR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
</method>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" VERSION="1" LANGU="E" DESCRIPT="Sheet protection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="AUTO_FILTER" VERSION="1" LANGU="E" DESCRIPT="Autofilters are locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="C_ACTIVE" VERSION="1" LANGU="E" DESCRIPT="Sheet protection indicator" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="C_NOACTIVE" VERSION="1" LANGU="E" DESCRIPT="Sheet protection indicator" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="C_PROTECTED" VERSION="1" LANGU="E" DESCRIPT="Sheet protection indicator" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="C_UNPROTECTED" VERSION="1" LANGU="E" DESCRIPT="Sheet protection indicator" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="DELETE_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="Deleting columns is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="DELETE_ROWS" VERSION="1" LANGU="E" DESCRIPT="Deleting rows is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="FORMAT_CELLS" VERSION="1" LANGU="E" DESCRIPT="Formatting cells is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="FORMAT_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="Formatting columns is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="FORMAT_ROWS" VERSION="1" LANGU="E" DESCRIPT="Formatting rows is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="INSERT_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="Inserting columns is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="INSERT_HYPERLINKS" VERSION="1" LANGU="E" DESCRIPT="Inserting hyperlinks is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="INSERT_ROWS" VERSION="1" LANGU="E" DESCRIPT="Inserting rows is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="OBJECTS" VERSION="1" LANGU="E" DESCRIPT="Objects are locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="PASSWORD" VERSION="1" LANGU="E" DESCRIPT="AES Password" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_AES_PASSWORD" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="PIVOT_TABLES" VERSION="1" LANGU="E" DESCRIPT="Pivot tables are locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="PROTECTED" VERSION="1" LANGU="E" DESCRIPT="Sheet protection indicator" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="SCENARIOS" VERSION="1" LANGU="E" DESCRIPT="Scenarios are locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="SELECT_LOCKED_CELLS" VERSION="1" LANGU="E" DESCRIPT="Selection of locked cells is locked when the sheet is protec" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="SELECT_UNLOCKED_CELLS" VERSION="1" LANGU="E" DESCRIPT="Selection of unlocked cells is locked when the sheet is prot" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="SHEET" VERSION="1" LANGU="E" DESCRIPT="Sheet is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="21 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="SORT" VERSION="1" LANGU="E" DESCRIPT="Sorting is locked when the sheet is protected" EXPOSURE="2" STATE="1" EDITORDER="22 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_PROTECTION_BOOL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZIF_EXCEL_SHEET_PROTECTION" CMPNAME="INITIALIZE" VERSION="1" LANGU="E" DESCRIPT="Initialize protection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0"/>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" VERSION="1" LANGU="E" DESCRIPT="Sheet properties" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_BELOW_OFF" VERSION="1" LANGU="E" DESCRIPT="Outline summary below/right" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SUMMARY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_BELOW_ON" VERSION="1" LANGU="E" DESCRIPT="Outline summary below/right" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SUMMARY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_HIDDEN" VERSION="1" LANGU="E" DESCRIPT="Hidden property" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_HIDDEN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_HIDEZERO" VERSION="1" LANGU="E" DESCRIPT="Show zeros" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SHOWZEROS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_RIGHT_OFF" VERSION="1" LANGU="E" DESCRIPT="Outline summary below/right" EXPOSURE="2" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SUMMARY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_RIGHT_ON" VERSION="1" LANGU="E" DESCRIPT="Outline summary below/right" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SUMMARY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_SELECTED" VERSION="1" LANGU="E" DESCRIPT="Selected property" EXPOSURE="2" STATE="1" EDITORDER="20 " ATTDECLTYP="2" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SELECTED" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_SHOWZERO" VERSION="1" LANGU="E" DESCRIPT="Show zeros" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SHOWZEROS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_VERYHIDDEN" VERSION="1" LANGU="E" DESCRIPT="Hidden property" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;2&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_HIDDEN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="C_VISIBLE" VERSION="1" LANGU="E" DESCRIPT="Hidden property" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="2" ATTVALUE="&apos;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_HIDDEN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="HIDDEN" VERSION="1" LANGU="E" DESCRIPT="Hidden property" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_HIDDEN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="SELECTED" VERSION="1" LANGU="E" DESCRIPT="Selected property" EXPOSURE="2" STATE="1" EDITORDER="19 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SELECTED" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="SHOW_ZEROS" VERSION="1" LANGU="E" DESCRIPT="Show zeros" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SHOWZEROS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="SUMMARYBELOW" VERSION="1" LANGU="E" DESCRIPT="Outline summary below/right" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SUMMARY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="SUMMARYRIGHT" VERSION="1" LANGU="E" DESCRIPT="Outline summary below/right" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_SUMMARY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="ZOOMSCALE" VERSION="1" LANGU="E" DESCRIPT="Sheet Zoom Scale" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_ZOOMSCALE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="ZOOMSCALE_NORMAL" VERSION="1" LANGU="E" DESCRIPT="Sheet Zoom Scale" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_ZOOMSCALE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="ZOOMSCALE_PAGELAYOUTVIEW" VERSION="1" LANGU="E" DESCRIPT="Sheet Zoom Scale" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_ZOOMSCALE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="ZOOMSCALE_SHEETLAYOUTVIEW" VERSION="1" LANGU="E" DESCRIPT="Sheet Zoom Scale" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_ZOOMSCALE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="GET_STYLE" VERSION="1" LANGU="E" DESCRIPT="Set Style Property" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="GET_STYLE" SCONAME="EP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
</method>
<method CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="INITIALIZE" VERSION="1" LANGU="E" DESCRIPT="Inizialize sheet properties" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0"/>
<method CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="SET_STYLE" VERSION="1" LANGU="E" DESCRIPT="Get Style Property" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="SET_STYLE" SCONAME="IP_STYLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
</method>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" VERSION="1" LANGU="E" DESCRIPT="Sheet printsettings" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="GCV_PRINT_TITLE_NAME" VERSION="1" LANGU="E" DESCRIPT="Predefined name for repeat rows/cols range" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;_xlnm.Print_Titles&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="CLEAR_PRINT_REPEAT_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="Clear repeat columns" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0"/>
<method CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="CLEAR_PRINT_REPEAT_ROWS" VERSION="1" LANGU="E" DESCRIPT="Clear repeat rows" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0"/>
<method CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="GET_PRINT_REPEAT_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="Get repeat columns" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="GET_PRINT_REPEAT_COLUMNS" SCONAME="EV_COLUMNS_FROM" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="GET_PRINT_REPEAT_COLUMNS" SCONAME="EV_COLUMNS_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
</method>
<method CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="GET_PRINT_REPEAT_ROWS" VERSION="1" LANGU="E" DESCRIPT="Get repeat rows" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="GET_PRINT_REPEAT_ROWS" SCONAME="EV_ROWS_FROM" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="GET_PRINT_REPEAT_ROWS" SCONAME="EV_ROWS_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
</method>
<method CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="SET_PRINT_REPEAT_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="Set repeat columns" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="SET_PRINT_REPEAT_COLUMNS" SCONAME="IV_COLUMNS_FROM" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="SET_PRINT_REPEAT_COLUMNS" SCONAME="IV_COLUMNS_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<exception CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="SET_PRINT_REPEAT_COLUMNS" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
</method>
<method CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="SET_PRINT_REPEAT_ROWS" VERSION="1" LANGU="E" DESCRIPT="Set repeat rows" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="SET_PRINT_REPEAT_ROWS" SCONAME="IV_ROWS_FROM" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="SET_PRINT_REPEAT_ROWS" SCONAME="IV_ROWS_TO" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<exception CLSNAME="ZIF_EXCEL_SHEET_PRINTSETTINGS" CMPNAME="SET_PRINT_REPEAT_ROWS" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
</method>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_READER" VERSION="1" LANGU="E" DESCRIPT="Reader Interface" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_READER" CMPNAME="GV_USE_ALTERNATE_ZIP" VERSION="1" LANGU="E" DESCRIPT="Use alternate CL_ABAP_ZIP" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SEOCLSNAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZIF_EXCEL_READER" CMPNAME="CAN_READ_FILE" VERSION="1" LANGU="E" DESCRIPT="Can the current ZIF_EXCEL_READER read the file?" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="CAN_READ_FILE" SCONAME="I_FILENAME" VERSION="1" LANGU="E" DESCRIPT="Filename" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="CAN_READ_FILE" SCONAME="R_READABLE" VERSION="1" LANGU="E" DESCRIPT="Boolean Variable (X=True, -=False, Space=Unknown)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="BOOLEAN"/>
</method>
<method CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD" VERSION="1" LANGU="E" DESCRIPT="Loads ZCL_EXCEL from provided xstring" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD" SCONAME="I_EXCEL2007" VERSION="1" LANGU="E" DESCRIPT="Excel 2007 data" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="XSTRING"/>
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD" SCONAME="I_USE_ALTERNATE_ZIP" VERSION="1" LANGU="E" DESCRIPT="Use modified CL_ABAP_ZIP to read libre-office files" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SEOCLSNAME" PARVALUE="SPACE"/>
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD" SCONAME="R_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL"/>
<exception CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
</method>
<method CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD_FILE" VERSION="1" LANGU="E" DESCRIPT="Loads ZCL_EXCEL from file" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD_FILE" SCONAME="I_FILENAME" VERSION="1" LANGU="E" DESCRIPT="Filename" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CSEQUENCE"/>
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD_FILE" SCONAME="I_USE_ALTERNATE_ZIP" VERSION="1" LANGU="E" DESCRIPT="Use modified CL_ABAP_ZIP to read libre-office files" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SEOCLSNAME" PARVALUE="SPACE"/>
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD_FILE" SCONAME="I_FROM_APPLSERVER" VERSION="1" LANGU="E" DESCRIPT="Background Processing Active" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SYBATCH" PARVALUE="SY-BATCH"/>
<parameter CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD_FILE" SCONAME="R_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL"/>
<exception CLSNAME="ZIF_EXCEL_READER" CMPNAME="LOAD_FILE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
</method>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" VERSION="1" LANGU="E" DESCRIPT="Excel workbook VBA Project" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="CODENAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="CODENAME_PR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="VBAPROJECT" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XSTRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="SET_CODENAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="SET_CODENAME" SCONAME="IP_CODENAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
</method>
<method CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="SET_CODENAME_PR" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="SET_CODENAME_PR" SCONAME="IP_CODENAME_PR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
</method>
<method CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="SET_VBAPROJECT" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" CMPNAME="SET_VBAPROJECT" SCONAME="IP_VBAPROJECT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="XSTRING"/>
</method>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" VERSION="1" LANGU="E" DESCRIPT="Book protection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="C_LOCKED" VERSION="1" LANGU="E" DESCRIPT="Book protection indicator" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;1&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BOOK_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="C_PROTECTED" VERSION="1" LANGU="E" DESCRIPT="Book protection indicator" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BOOK_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="C_UNLOCKED" VERSION="1" LANGU="E" DESCRIPT="Book protection indicator" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="&apos;0&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BOOK_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="C_UNPROTECTED" VERSION="1" LANGU="E" DESCRIPT="Book protection indicator" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="2" ATTVALUE="&apos;&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BOOK_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="LOCKREVISION" VERSION="1" LANGU="E" DESCRIPT="Book protection indicator" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BOOK_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="LOCKSTRUCTURE" VERSION="1" LANGU="E" DESCRIPT="Book protection indicator" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BOOK_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="LOCKWINDOWS" VERSION="1" LANGU="E" DESCRIPT="Book protection indicator" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BOOK_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="PROTECTED" VERSION="1" LANGU="E" DESCRIPT="Book protection indicator" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_BOOK_PROTECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="REVISIONSPASSWORD" VERSION="1" LANGU="E" DESCRIPT="AES Password" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_AES_PASSWORD" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="WORKBOOKPASSWORD" VERSION="1" LANGU="E" DESCRIPT="AES Password" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_AES_PASSWORD" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZIF_EXCEL_BOOK_PROTECTION" CMPNAME="INITIALIZE" VERSION="1" LANGU="E" DESCRIPT="Initialize protection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0"/>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" VERSION="1" LANGU="E" DESCRIPT="Excel Properties" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="APPLICATION" VERSION="1" LANGU="E" DESCRIPT="Application" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_APPLICATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="APPVERSION" VERSION="1" LANGU="E" DESCRIPT="Application version" EXPOSURE="2" STATE="1" EDITORDER="17 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_APPVERSION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="CATEGORY" VERSION="1" LANGU="E" DESCRIPT="Category" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CATEGORY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="COMPANY" VERSION="1" LANGU="E" DESCRIPT="Company" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_COMPANY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="CREATED" VERSION="1" LANGU="E" DESCRIPT="Created on" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TIMESTAMPL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="CREATOR" VERSION="1" LANGU="E" DESCRIPT="Creator" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CREATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="DESCRIPTION" VERSION="1" LANGU="E" DESCRIPT="Description" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DESCRIPTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="DOCSECURITY" VERSION="1" LANGU="E" DESCRIPT="DocSecurity" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DOCSECURITY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="HYPERLINKSCHANGED" VERSION="1" LANGU="E" DESCRIPT="Hyperlinks changed" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="KEYWORDS" VERSION="1" LANGU="E" DESCRIPT="Keywords" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_KEYWORDS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="LASTMODIFIEDBY" VERSION="1" LANGU="E" DESCRIPT="Modified by" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CREATOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="LINKSUPTODATE" VERSION="1" LANGU="E" DESCRIPT="Links up to date" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="MODIFIED" VERSION="1" LANGU="E" DESCRIPT="Modified on" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TIMESTAMPL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="SCALECROP" VERSION="1" LANGU="E" DESCRIPT="ScaleCrop" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SCALECROP" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="SHAREDDOC" VERSION="1" LANGU="E" DESCRIPT="Shared document" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="SUBJECT" VERSION="1" LANGU="E" DESCRIPT="Subject" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SUBJECT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_TITLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" CMPNAME="INITIALIZE" VERSION="1" LANGU="E" DESCRIPT="Inizialize book properties" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0"/>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_CUSTOMUI_ELEMENT" VERSION="1" LANGU="E" DESCRIPT="Excel customUI element" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<attribute CLSNAME="ZIF_EXCEL_CUSTOMUI_ELEMENT" CMPNAME="ID" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZIF_EXCEL_CUSTOMUI_ELEMENT" CMPNAME="LABEL" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
</INTF>
<INTF CLSNAME="ZIF_EXCEL_CONVERTER" VERSION="1" LANGU="E" DESCRIPT="Converter Interface" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
<method CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" VERSION="1" LANGU="E" DESCRIPT="Can the object be handled?" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" SCONAME="IO_OBJECT" VERSION="1" LANGU="E" DESCRIPT="ALV object" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT"/>
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
</method>
<method CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Create FIELDCATALOG for table" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="IS_OPTION" VERSION="1" LANGU="E" DESCRIPT="Converter options for grid configuration" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_OPTION"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="IO_OBJECT" VERSION="1" LANGU="E" DESCRIPT="ALV object" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="IT_TABLE" VERSION="1" LANGU="E" DESCRIPT="ALV data table" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ES_LAYOUT" VERSION="1" LANGU="E" DESCRIPT="Converter settings for table" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_LAYO"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ET_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Conter table for tabel fields" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FCAT"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="EO_TABLE" VERSION="1" LANGU="E" DESCRIPT="Sorted data table from grid" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ET_COLORS" VERSION="1" LANGU="E" DESCRIPT="Table type for color information of cells for converter" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_COL"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ET_FILTER" VERSION="1" LANGU="E" DESCRIPT="Table type for filter information of cells for converter" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FIL"/>
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
</method>
</INTF>
<MSAG ARBGB="ZABAP2XLSX" MASTERLANG="E" RESPUSER="X0009004" STEXT="Messages for ABAP2XLSX">
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="000" TEXT="&amp; &amp; &amp; &amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="001" TEXT="&amp;&amp;&amp;&amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="002" TEXT="&amp; &amp; &amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="003" TEXT="&amp;&amp;&amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="004" TEXT="&amp; &amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="005" TEXT="&amp;&amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="006" TEXT="&amp;"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="010" TEXT="--- 000-009: Various Generic messages"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="011" TEXT="--- 010-049: Descriptions where to put messages"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="012" TEXT="--- 050-"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="013" TEXT="--- 200- : Messages when reading an EXCEL-File"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="014" TEXT="--- 400- : Messages when creating an EXCEL-File"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="015" TEXT="--- 600- : Message when ????"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="016" TEXT="--- 800- : Other messages"/>
<t100 SPRSL="E" ARBGB="ZABAP2XLSX" MSGNR="800" TEXT="Unable to interpret input as column"/>
<t100t SPRSL="E" ARBGB="ZABAP2XLSX" STEXT="Messages for ABAP2XLSX"/>
</MSAG>
<PROG NAME="ZDEMO_EXCEL3" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export internal table" LENGTH="38 "/>
<textElement ID="S" KEY="P_EMPTY" ENTRY=" Leave Table Empty" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel3.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: ls_table_settings TYPE zexcel_s_table_settings.
DATA: lv_title TYPE zexcel_sheet_title,
lt_carr TYPE TABLE OF scarr,
row TYPE zexcel_cell_row VALUE 2,
lo_range TYPE REF TO zcl_excel_range.
DATA: lo_data_validation TYPE REF TO zcl_excel_data_validation.
FIELD-SYMBOLS: &lt;carr&gt; LIKE LINE OF lt_carr.
CONSTANTS: c_airlines TYPE string VALUE &apos;Airlines&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;03_iTab.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_empty TYPE flag.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Internal table&apos;).
DATA lt_test TYPE TABLE OF sflight.
IF p_empty &lt;&gt; abap_true.
SELECT * FROM sflight INTO TABLE lt_test. &quot;#EC CI_NOWHERE
ENDIF.
ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium2.
ls_table_settings-show_row_stripes = abap_true.
lo_worksheet-&gt;bind_table( ip_table = lt_test
is_table_settings = ls_table_settings ).
lo_worksheet-&gt;freeze_panes( ip_num_rows = 3 ). &quot;freeze column headers when scrolling
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;E&apos; ). &quot;make date field a bit wider
column_dimension-&gt;set_width( ip_width = 11 ).
&quot; Add another table for data validations
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lv_title = &apos;Data Validation&apos;.
lo_worksheet-&gt;set_title( lv_title ).
lo_worksheet-&gt;set_cell( ip_row = 1 ip_column = &apos;A&apos; ip_value = c_airlines ).
SELECT * FROM scarr INTO TABLE lt_carr. &quot;#EC CI_NOWHERE
LOOP AT lt_carr ASSIGNING &lt;carr&gt;.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;A&apos; ip_value = &lt;carr&gt;-carrid ).
row = row + 1.
ENDLOOP.
row = row - 1.
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = c_airlines.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;A&apos;
ip_start_row = 2
ip_stop_column = &apos;A&apos;
ip_stop_row = row ).
&quot; Set Data Validation
lo_excel-&gt;set_active_sheet_index( 1 ).
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = c_airlines.
lo_data_validation-&gt;cell_row = 4.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL30" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: ABAP Cell data types" LENGTH="37 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL1
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel30.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lv_value TYPE string,
lv_count TYPE i VALUE 10,
lv_packed TYPE p LENGTH 16 DECIMALS 1 VALUE &apos;1234567890.5&apos;.
CONSTANTS: lc_typekind_string TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_string,
lc_typekind_packed TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_packed,
lc_typekind_num TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_num,
lc_typekind_date TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_date.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;30_CellDataTypes.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Cell data types&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 1 ip_value = &apos;Number as String&apos;
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 2 ip_value = &apos;11&apos;
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 1 ip_value = &apos;String&apos;
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Negative Value&apos;
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 1 ip_value = &apos;Packed&apos;
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 2 ip_value = &apos;50000.01-&apos;
ip_abap_type = lc_typekind_packed ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 1 ip_value = &apos;Number with Percentage&apos;
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 2 ip_value = &apos;0 %&apos;
ip_abap_type = lc_typekind_num ).
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = 1 ip_value = &apos;Date&apos;
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = 2 ip_value = &apos;20110831&apos;
ip_abap_type = lc_typekind_date ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;Positive Value&apos;
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = &apos;5000.02&apos;
ip_abap_type = lc_typekind_packed ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 3 ip_value = &apos;50 %&apos;
ip_abap_type = lc_typekind_num ).
WHILE lv_count &lt;= 15.
lv_value = lv_count.
CONCATENATE &apos;Positive Value with&apos; lv_value &apos;Digits&apos; INTO lv_value SEPARATED BY space.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = lv_count ip_value = lv_value
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = lv_count ip_value = lv_packed
ip_abap_type = lc_typekind_packed ).
CONCATENATE &apos;Positive Value with&apos; lv_value &apos;Digits formated as string&apos; INTO lv_value SEPARATED BY space.
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = lv_count ip_value = lv_value
ip_abap_type = lc_typekind_string ).
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = lv_count ip_value = lv_packed
ip_abap_type = lc_typekind_string ).
lv_packed = lv_packed * 10.
lv_count = lv_count + 1.
ENDWHILE.
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;A&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;C&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;D&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;E&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL31" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Autosize Column with different Font sizes" LENGTH="58 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL1
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel31.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: fieldval TYPE text80,
row TYPE i,
style_column_a TYPE REF TO zcl_excel_style,
style_column_a_guid TYPE zexcel_cell_style,
style_column_c TYPE REF TO zcl_excel_style,
style_column_c_guid TYPE zexcel_cell_style.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;31_AutosizeWithDifferentFontSizes.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
style_column_a = lo_excel-&gt;add_new_style( ).
style_column_a-&gt;font-&gt;size = 32 . &quot; quite large
style_column_a_guid = style_column_a-&gt;get_guid( ).
style_column_c = lo_excel-&gt;add_new_style( ).
style_column_c-&gt;font-&gt;size = 16 . &quot; not so large
style_column_c_guid = style_column_c-&gt;get_guid( ).
DO 20 TIMES.
row = sy-index.
CLEAR fieldval.
DO sy-index TIMES.
CONCATENATE fieldval &apos;X&apos; INTO fieldval.
ENDDO.
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = row ip_value = fieldval ip_style = style_column_a_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = row ip_value = fieldval ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = row ip_value = fieldval ip_style = style_column_c_guid ).
ENDDO.
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;A&apos; ).
column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;B&apos; ).
column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;C&apos; ).
column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL32" VARCL="X" SUBC="1" RMAND="800" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export ALV" LENGTH="26 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<pfstatus>
<pfstatus_sta CODE="ALV_STATUS" MODAL="D" ACTCODE="000001" PFKCODE="000001" BUTCODE="0001" INT_NOTE="Standard for General List Output"/>
<pfstatus_fun CODE="%ML" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Folder" PATH="F"/>
<pfstatus_fun CODE="%PC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_EXPORT" ICON_ID="@49@" FUN_TEXT="Local file..." PATH="L"/>
<pfstatus_fun CODE="%SC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH" ICON_ID="@13@" FUN_TEXT="Find" PATH="N"/>
<pfstatus_fun CODE="%SC+" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH_NEXT" ICON_ID="@4E@" FUN_TEXT="Find next"/>
<pfstatus_fun CODE="%SL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_MAIL" ICON_ID="@1S@" FUN_TEXT="Mail recipient" PATH="M"/>
<pfstatus_fun CODE="&amp;ABC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ABC" ICON_ID="@DL@" FUN_TEXT="ABC Analysis" PATH="A"/>
<pfstatus_fun CODE="&amp;ALL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_ALL" ICON_ID="@4B@" FUN_TEXT="Select all" PATH="S"/>
<pfstatus_fun CODE="&amp;AQW" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_WORD_PROCESSING" ICON_ID="@DK@" FUN_TEXT="Word processing..." PATH="W"/>
<pfstatus_fun CODE="&amp;AUF" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Define Breakdown..." PATH="D"/>
<pfstatus_fun CODE="&amp;AVE" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Saving..." PATH="S"/>
<pfstatus_fun CODE="&amp;AVE" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_SAVE" ICON_ID="@DN@" FUN_TEXT="Save layout..."/>
<pfstatus_fun CODE="&amp;AVR" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Mean value" PATH="M"/>
<pfstatus_fun CODE="&amp;CDF" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Unfreeze" PATH="U"/>
<pfstatus_fun CODE="&amp;CFI" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Freeze to column" PATH="F"/>
<pfstatus_fun CODE="&amp;COUNT" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Count" PATH="C"/>
<pfstatus_fun CODE="&amp;CRB" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_LEFT" ICON_ID="@0B@" FUN_TEXT="First Column"/>
<pfstatus_fun CODE="&amp;CRE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_RIGHT" ICON_ID="@0C@" FUN_TEXT="Last column"/>
<pfstatus_fun CODE="&amp;CRL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_LEFT" ICON_ID="@0D@" FUN_TEXT="Column left"/>
<pfstatus_fun CODE="&amp;CRR" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_RIGHT" ICON_ID="@0E@" FUN_TEXT="Column right"/>
<pfstatus_fun CODE="&amp;DAU" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Automatic Separator" PATH="T"/>
<pfstatus_fun CODE="&amp;DOF" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Separator Always Off" PATH="E"/>
<pfstatus_fun CODE="&amp;DON" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Separator Always On" PATH="R"/>
<pfstatus_fun CODE="&amp;EB9" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TABLE_SETTINGS" ICON_ID="@36@" FUN_TEXT="Call Up Report" PATH="C"/>
<pfstatus_fun CODE="&amp;ELP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SYSTEM_HELP" ICON_ID="@35@" FUN_TEXT="Help"/>
<pfstatus_fun CODE="&amp;ERW" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Layout Management" PATH="L"/>
<pfstatus_fun CODE="&amp;ETA" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Details"/>
<pfstatus_fun CODE="&amp;F03" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Back" PATH="B"/>
<pfstatus_fun CODE="&amp;F12" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_CANCEL" ICON_ID="@0W@" FUN_TEXT="Cancel" PATH="A"/>
<pfstatus_fun CODE="&amp;F15" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Exit" PATH="X"/>
<pfstatus_fun CODE="&amp;IC1" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Choose"/>
<pfstatus_fun CODE="&amp;ILD" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FILTER_UNDO" ICON_ID="@GD@" FUN_TEXT="Delete Filter" PATH="L"/>
<pfstatus_fun CODE="&amp;ILT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FILTER" ICON_ID="@4G@" FUN_TEXT="Set filter" PATH="F"/>
<pfstatus_fun CODE="&amp;KOM" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLLAPSE" ICON_ID="@3T@" FUN_TEXT="Choose..." PATH="C"/>
<pfstatus_fun CODE="&amp;LFO" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="List status..." PATH="L"/>
<pfstatus_fun CODE="&amp;LFO" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="List status..."/>
<pfstatus_fun CODE="&amp;LIS" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Basic List" PATH="B"/>
<pfstatus_fun CODE="&amp;MAX" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Maximum" PATH="A"/>
<pfstatus_fun CODE="&amp;MIN" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Minimum" PATH="I"/>
<pfstatus_fun CODE="&amp;NFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="Selections..." ICON_TEXT="Selections" PATH="E"/>
<pfstatus_fun CODE="&amp;NTE" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Refresh"/>
<pfstatus_fun CODE="&amp;OAD" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Choose..." PATH="H"/>
<pfstatus_fun CODE="&amp;OAD" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_CHOOSE" ICON_ID="@DM@" FUN_TEXT="Select layout..."/>
<pfstatus_fun CODE="&amp;ODN" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_DOWN" ICON_ID="@3F@" FUN_TEXT="Sort in descending order" PATH="O"/>
<pfstatus_fun CODE="&amp;OL0" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANTS" ICON_ID="@LZ@" FUN_TEXT="Change layout..."/>
<pfstatus_fun CODE="&amp;OLX" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_VARIANTS" ICON_ID="@0R@" FUN_TEXT="Change..." PATH="C"/>
<pfstatus_fun CODE="&amp;OMP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLLAPSE" ICON_ID="@3T@" FUN_TEXT="Collapse"/>
<pfstatus_fun CODE="&amp;OPT" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Optimize width" PATH="P"/>
<pfstatus_fun CODE="&amp;OUP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_UP" ICON_ID="@3E@" FUN_TEXT="Sort in Ascending Order" PATH="I"/>
<pfstatus_fun CODE="&amp;RNT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_PRINT" ICON_ID="@0X@" FUN_TEXT="Print" PATH="P"/>
<pfstatus_fun CODE="&amp;RNT_PREV" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_LAYOUT_CONTROL" ICON_ID="@3G@" FUN_TEXT="Print preview" PATH="R"/>
<pfstatus_fun CODE="&amp;SAL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_DESELECT_ALL" ICON_ID="@4D@" FUN_TEXT="Deselect all" PATH="D"/>
<pfstatus_fun CODE="&amp;SUM" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INTERMEDIATE_SUM" ICON_ID="@5V@" FUN_TEXT="Subtotals..." PATH="T"/>
<pfstatus_fun CODE="&amp;UMC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SUM" ICON_ID="@3Z@" FUN_TEXT="Total" PATH="T"/>
<pfstatus_fun CODE="&amp;XINT" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Additional Functions of SAP Query" PATH="E"/>
<pfstatus_fun CODE="&amp;XML" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="XML Export..." PATH="X"/>
<pfstatus_fun CODE="&amp;XPA" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_EXPAND" ICON_ID="@3S@" FUN_TEXT="Expand"/>
<pfstatus_fun CODE="&amp;XXL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XXL" ICON_ID="@DJ@" FUN_TEXT="Spreadsheet..." PATH="A"/>
<pfstatus_fun CODE="EXCEL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XLV" ICON_ID="@J3@" FUN_TEXT="Excel" ICON_TEXT="Export to Excel"/>
<pfstatus_fun CODE="EXCELBIND" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XLS" ICON_ID="@J2@" FUN_TEXT="Excel bind" ICON_TEXT="Excel bind"/>
<pfstatus_fun CODE="EXCELCELL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XXL" ICON_ID="@DJ@" FUN_TEXT="Excel converter"/>
<pfstatus_fun CODE="EXCELCONV" TEXTNO="001" TEXT_TYPE="S" ICON_ID="@DJ@" FUN_TEXT="Excel converter" ICON_TEXT="Excel converter"/>
<pfstatus_fun CODE="P+" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Next page"/>
<pfstatus_fun CODE="P++" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Last Page"/>
<pfstatus_fun CODE="P-" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Previous Page"/>
<pfstatus_fun CODE="P--" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="First Page"/>
<pfstatus_men CODE="000001" NO="01" REF_TYPE="F" REF_CODE="&amp;RNT" REF_NO="001"/>
<pfstatus_men CODE="000001" NO="02" REF_TYPE="M" REF_CODE="000002"/>
<pfstatus_men CODE="000001" NO="03" REF_TYPE="M" REF_CODE="000003"/>
<pfstatus_men CODE="000001" NO="04" REF_TYPE="S"/>
<pfstatus_men CODE="000001" NO="05" REF_TYPE="F" REF_CODE="&amp;F15" REF_NO="001"/>
<pfstatus_men CODE="000002" NO="01" REF_TYPE="F" REF_CODE="&amp;AQW" REF_NO="001"/>
<pfstatus_men CODE="000002" NO="02" REF_TYPE="F" REF_CODE="&amp;XXL" REF_NO="001"/>
<pfstatus_men CODE="000002" NO="03" REF_TYPE="F" REF_CODE="%PC" REF_NO="001"/>
<pfstatus_men CODE="000002" NO="04" REF_TYPE="F" REF_CODE="&amp;XINT" REF_NO="001"/>
<pfstatus_men CODE="000003" NO="01" REF_TYPE="F" REF_CODE="%SL" REF_NO="001"/>
<pfstatus_men CODE="000003" NO="02" REF_TYPE="F" REF_CODE="%ML" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="01" REF_TYPE="F" REF_CODE="&amp;ALL" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="02" REF_TYPE="F" REF_CODE="&amp;SAL" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="04" REF_TYPE="F" REF_CODE="&amp;ILT" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="05" REF_TYPE="F" REF_CODE="&amp;ILD" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="07" REF_TYPE="F" REF_CODE="&amp;OUP" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="08" REF_TYPE="F" REF_CODE="&amp;ODN" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="09" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="10" REF_TYPE="M" REF_CODE="000005"/>
<pfstatus_men CODE="000004" NO="11" REF_TYPE="F" REF_CODE="&amp;SUM" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="12" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="13" REF_TYPE="F" REF_CODE="%SC" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="14" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="15" REF_TYPE="F" REF_CODE="&amp;F12" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="01" REF_TYPE="F" REF_CODE="&amp;UMC" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="02" REF_TYPE="F" REF_CODE="&amp;AVR" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="03" REF_TYPE="F" REF_CODE="&amp;MIN" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="04" REF_TYPE="F" REF_CODE="&amp;MAX" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="05" REF_TYPE="F" REF_CODE="&amp;COUNT" REF_NO="001"/>
<pfstatus_men CODE="000006" NO="01" REF_TYPE="F" REF_CODE="&amp;ABC" REF_NO="001"/>
<pfstatus_men CODE="000006" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000006" NO="03" REF_TYPE="F" REF_CODE="&amp;F03" REF_NO="001"/>
<pfstatus_men CODE="000007" NO="01" REF_TYPE="F" REF_CODE="&amp;LIS" REF_NO="001"/>
<pfstatus_men CODE="000007" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000007" NO="03" REF_TYPE="M" REF_CODE="000008"/>
<pfstatus_men CODE="000007" NO="04" REF_TYPE="S"/>
<pfstatus_men CODE="000007" NO="05" REF_TYPE="M" REF_CODE="000009"/>
<pfstatus_men CODE="000007" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000007" NO="07" REF_TYPE="M" REF_CODE="000010"/>
<pfstatus_men CODE="000007" NO="08" REF_TYPE="S"/>
<pfstatus_men CODE="000007" NO="09" REF_TYPE="F" REF_CODE="&amp;NFO" REF_NO="001"/>
<pfstatus_men CODE="000007" NO="10" REF_TYPE="F" REF_CODE="&amp;LFO" REF_NO="001"/>
<pfstatus_men CODE="000008" NO="01" REF_TYPE="F" REF_CODE="&amp;OLX" REF_NO="001"/>
<pfstatus_men CODE="000008" NO="02" REF_TYPE="F" REF_CODE="&amp;OAD" REF_NO="001"/>
<pfstatus_men CODE="000008" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000008" NO="04" REF_TYPE="F" REF_CODE="&amp;AVE" REF_NO="001"/>
<pfstatus_men CODE="000008" NO="05" REF_TYPE="S"/>
<pfstatus_men CODE="000008" NO="06" REF_TYPE="F" REF_CODE="&amp;ERW" REF_NO="001"/>
<pfstatus_men CODE="000009" NO="01" REF_TYPE="F" REF_CODE="&amp;KOM" REF_NO="001"/>
<pfstatus_men CODE="000009" NO="02" REF_TYPE="F" REF_CODE="&amp;AUF" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="01" REF_TYPE="F" REF_CODE="&amp;OPT" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000010" NO="03" REF_TYPE="F" REF_CODE="&amp;CFI" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="04" REF_TYPE="F" REF_CODE="&amp;CDF" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="05" REF_TYPE="S"/>
<pfstatus_men CODE="000010" NO="06" REF_TYPE="F" REF_CODE="&amp;DAU" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="07" REF_TYPE="F" REF_CODE="&amp;DON" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="08" REF_TYPE="F" REF_CODE="&amp;DOF" REF_NO="001"/>
<pfstatus_mtx CODE="000001" TEXT_TYPE="S" TEXT="List" PATH="L" INT_NOTE="STANDARD List"/>
<pfstatus_mtx CODE="000002" TEXT_TYPE="S" TEXT="Export" PATH="E" INT_NOTE="STANDARD Save"/>
<pfstatus_mtx CODE="000003" TEXT_TYPE="S" TEXT="Send to" PATH="S"/>
<pfstatus_mtx CODE="000004" TEXT_TYPE="S" TEXT="Edit" PATH="E" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000005" TEXT_TYPE="S" TEXT="Calculate" PATH="C"/>
<pfstatus_mtx CODE="000006" TEXT_TYPE="S" TEXT="Goto" PATH="G" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000007" TEXT_TYPE="S" TEXT="Settings" PATH="S" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000008" TEXT_TYPE="S" TEXT="Layout" PATH="A" INT_NOTE="Sub STANDARD"/>
<pfstatus_mtx CODE="000009" TEXT_TYPE="S" TEXT="Summation levels" PATH="S" INT_NOTE="Sub STANDARD"/>
<pfstatus_mtx CODE="000010" TEXT_TYPE="S" TEXT="Columns" PATH="C"/>
<pfstatus_act CODE="000001" NO="01" MENUCODE="000001"/>
<pfstatus_act CODE="000001" NO="02" MENUCODE="000004"/>
<pfstatus_act CODE="000001" NO="03" MENUCODE="000006"/>
<pfstatus_act CODE="000001" NO="04" MENUCODE="000007"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="01" PFNO="39"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="02" PFNO="37"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="03" PFNO="S"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="04" PFNO="05"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="05" PFNO="06"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="06" PFNO="S"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="07" PFNO="28"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="08" PFNO="40"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="09" PFNO="29"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="10" PFNO="38"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="11" PFNO="S"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="12" PFNO="30"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="13" PFNO="42"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="14" PFNO="S"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="15" PFNO="45"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="16" PFNO="S"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="17" PFNO="32"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="18" PFNO="33"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="19" PFNO="34"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="20" PFNO="09"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="21" PFNO="13"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="22" PFNO="S"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="23" PFNO="41"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="24" PFNO="07"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="25" PFNO="S"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="26" PFNO="18"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="27" PFNO="26"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="28" PFNO="27"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="29" PFNO="19"/>
<pfstatus_pfk CODE="000001" PFNO="01" FUNCODE="&amp;ELP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="02" FUNCODE="&amp;IC1" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="03" FUNCODE="&amp;F03" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="05" FUNCODE="&amp;ALL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="06" FUNCODE="&amp;SAL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="07" FUNCODE="&amp;NFO" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="08" FUNCODE="&amp;NTE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="09" FUNCODE="EXCELBIND" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="12" FUNCODE="&amp;F12" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="13" FUNCODE="EXCELCONV" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="15" FUNCODE="&amp;F15" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="18" FUNCODE="&amp;CRB" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="19" FUNCODE="&amp;CRE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="21" FUNCODE="P--" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="22" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="23" FUNCODE="P+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="24" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="25" FUNCODE="&amp;ABC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="26" FUNCODE="&amp;CRL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="27" FUNCODE="&amp;CRR" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="28" FUNCODE="&amp;OUP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="29" FUNCODE="&amp;ILT" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="30" FUNCODE="&amp;UMC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="31" FUNCODE="%SL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="32" FUNCODE="&amp;OL0" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="33" FUNCODE="&amp;OAD" FUNNO="002"/>
<pfstatus_pfk CODE="000001" PFNO="34" FUNCODE="&amp;AVE" FUNNO="002"/>
<pfstatus_pfk CODE="000001" PFNO="35" FUNCODE="&amp;XPA" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="37" FUNCODE="&amp;EB9" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="38" FUNCODE="&amp;ILD" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="39" FUNCODE="&amp;ETA" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="40" FUNCODE="&amp;ODN" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="41" FUNCODE="&amp;LFO" FUNNO="002"/>
<pfstatus_pfk CODE="000001" PFNO="42" FUNCODE="&amp;SUM" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="43" FUNCODE="&amp;XXL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="44" FUNCODE="&amp;AQW" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="45" FUNCODE="%PC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="46" FUNCODE="&amp;RNT_PREV" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="47" FUNCODE="&amp;OMP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="48" FUNCODE="&amp;XML" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="71" FUNCODE="%SC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="80" FUNCODE="P--" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="81" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="82" FUNCODE="P+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="83" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="84" FUNCODE="%SC+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="86" FUNCODE="&amp;RNT" FUNNO="001"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%CH"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%ML"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%PC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ABC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ALL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AQW"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AUF"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AVE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AVR"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;BS"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;BS+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;BS-"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CDF"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CFI"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;COUNT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRB"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRR"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;DAU"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;DOF"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;DON"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;EB3"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;EB9"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ELP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ERW"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ETA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F03"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F12"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F15"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;IC1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ILD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ILT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;KOM"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;LFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;LIS"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;MAX"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;MIN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;NFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;NTE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OAD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ODN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OL0"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OL1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OLX"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OMP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OPT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OUP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;RNT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;SAL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;SUM"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;UMC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XML"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XPA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XXL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BAC1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BACK"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEB1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEB2"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEB3"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEB9"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEBN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="COL0"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="COLX"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="DETA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="DRUK"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="DSAL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="ENTE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXCEL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXCELBIND"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXCELCELL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXCELCONV"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXIT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXPA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="FILD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="FILT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="GLIS"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="HELP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="INFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="KOMP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P++"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P-"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P--"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PF09"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PF13"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PIC1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PICK"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PRI"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PRIN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PRNT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="RW"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SALL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SAUF"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SAVE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SCRB"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SCRE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SCRL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SCRR"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SKOM"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SODN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SOUP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SUMC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="ZSUM"/>
<pfstatus_doc OBJ_TYPE="A" OBJ_CODE="000001" MODAL="D" INT_NOTE="Standard User Interface STANDARD"/>
<pfstatus_doc OBJ_TYPE="P" OBJ_CODE="000001" MODAL="D" NORM="X" INT_NOTE="Standard Maximum Interaction"/>
<pfstatus_doc OBJ_TYPE="B" OBJ_CODE="000001" SUB_CODE="0001" MODAL="D" INT_NOTE="Standard Maximum Interaction"/>
</pfstatus>
<source>*--------------------------------------------------------------------*
* REPORT ZDEMO_EXCEL32
* Demo for export options from ALV GRID:
* export data from ALV (CL_GUI_ALV_GRID) object or cl_salv_table object
* to Excel.
*--------------------------------------------------------------------*
REPORT zdemo_excel32.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS:
on_user_command FOR EVENT added_function OF cl_salv_events
IMPORTING e_salv_function.
ENDCLASS. &quot;lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_user_command.
PERFORM user_command.&quot; using e_salv_function text-i08.
ENDMETHOD. &quot;on_user_command
ENDCLASS. &quot;lcl_handle_events IMPLEMENTATION
*--------------------------------------------------------------------*
* DATA DECLARATION
*--------------------------------------------------------------------*
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_salv TYPE REF TO cl_salv_table,
gr_events TYPE REF TO lcl_handle_events,
lr_events TYPE REF TO cl_salv_events_table,
gt_sbook TYPE TABLE OF sbook.
DATA: l_path TYPE string, &quot; local dir
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS:
lv_default_file_name TYPE string VALUE &apos;32_Export_ALV.xlsx&apos;,
lv_default_file_name2 TYPE string VALUE &apos;32_Export_Convert.xlsx&apos;.
*--------------------------------------------------------------------*
*START-OF-SELECTION
*--------------------------------------------------------------------*
START-OF-SELECTION.
* get data
* ------------------------------------------
SELECT *
INTO TABLE gt_sbook[]
FROM sbook &quot;#EC CI_NOWHERE
UP TO 100 ROWS.
* Display ALV
* ------------------------------------------
TRY.
cl_salv_table=&gt;factory(
EXPORTING
list_display = abap_false
IMPORTING
r_salv_table = lo_salv
CHANGING
t_table = gt_sbook[] ).
CATCH cx_salv_msg .
ENDTRY.
TRY.
lo_salv-&gt;set_screen_status(
EXPORTING
report = sy-repid
pfstatus = &apos;ALV_STATUS&apos;
set_functions = lo_salv-&gt;c_functions_all ).
CATCH cx_salv_msg .
ENDTRY.
lr_events = lo_salv-&gt;get_event( ).
CREATE OBJECT gr_events.
SET HANDLER gr_events-&gt;on_user_command FOR lr_events.
lo_salv-&gt;display( ).
*&amp;---------------------------------------------------------------------*
*&amp; Form USER_COMMAND
*&amp;---------------------------------------------------------------------*
* ALV user command
*--------------------------------------------------------------------*
FORM user_command .
* get save file path
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = l_path ).
cl_gui_cfw=&gt;flush( ).
cl_gui_frontend_services=&gt;directory_browse(
EXPORTING initial_folder = l_path
CHANGING selected_folder = l_path ).
IF l_path IS INITIAL.
cl_gui_frontend_services=&gt;get_sapgui_workdir(
CHANGING sapworkdir = lv_workdir ).
l_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator(
CHANGING file_separator = lv_file_separator ).
* export file to save file path
CASE sy-ucomm.
WHEN &apos;EXCELBIND&apos;.
CONCATENATE l_path lv_file_separator lv_default_file_name
INTO l_path.
PERFORM export_to_excel_bind.
WHEN &apos;EXCELCONV&apos;.
CONCATENATE l_path lv_file_separator lv_default_file_name2
INTO l_path.
PERFORM export_to_excel_conv.
ENDCASE.
ENDFORM. &quot; USER_COMMAND
*--------------------------------------------------------------------*
* FORM EXPORT_TO_EXCEL_CONV
*--------------------------------------------------------------------*
* This subroutine is principal demo session
*--------------------------------------------------------------------*
FORM export_to_excel_conv.
DATA: lo_converter TYPE REF TO zcl_excel_converter.
CREATE OBJECT lo_converter.
*TRY.
lo_converter-&gt;convert(
EXPORTING
io_alv = lo_salv
it_table = gt_sbook
i_row_int = 2
i_column_int = 2
* i_table =
* i_style_table =
* io_worksheet =
* CHANGING
* co_excel =
).
* CATCH zcx_excel .
*ENDTRY.
lo_converter-&gt;write_file( i_path = l_path ).
ENDFORM. &quot;EXPORT_TO_EXCEL_CONV
*--------------------------------------------------------------------*
* FORM EXPORT_TO_EXCEL_BIND
*--------------------------------------------------------------------*
* This subroutine is principal demo session
*--------------------------------------------------------------------*
FORM export_to_excel_bind.
* create zcl_excel_worksheet object
CREATE OBJECT lo_excel.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
* write to excel using method Bin_object
*try.
lo_worksheet-&gt;bind_alv(
io_alv = lo_salv
it_table = gt_sbook
i_top = 2
i_left = 1
).
* catch zcx_excel .
*endtry.
PERFORM write_file.
ENDFORM. &quot;EXPORT_TO_EXCEL_BIND
*&amp;---------------------------------------------------------------------*
*&amp; Form WRITE_FILE
*&amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --&gt; p1 text
* &lt;-- p2 text
*----------------------------------------------------------------------*
FORM write_file .
DATA: lt_file TYPE solix_tab,
l_bytecount TYPE i,
l_file TYPE xstring.
DATA: lo_excel_writer TYPE REF TO zif_excel_writer.
DATA: ls_seoclass TYPE seoclass.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
l_file = lo_excel_writer-&gt;write_file( lo_excel ).
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = &apos;CL_BCS_CONVERT&apos;.
IF sy-subrc = 0.
CALL METHOD (ls_seoclass-clsname)=&gt;xstring_to_solix
EXPORTING
iv_xstring = l_file
RECEIVING
et_solix = lt_file.
l_bytecount = XSTRLEN( l_file ).
ELSE.
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = l_file
IMPORTING
output_length = l_bytecount
TABLES
binary_tab = lt_file.
ENDIF.
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = l_bytecount
filename = l_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file ).
ENDFORM. &quot; WRITE_FILE</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL33" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Autofilter" LENGTH="27 "/>
<textElement ID="S" KEY="P_EMPTY" ENTRY=" Leave Table Empty" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel33.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_converter TYPE REF TO zcl_excel_converter,
lo_autofilter TYPE REF TO zcl_excel_autofilter.
DATA lt_test TYPE TABLE OF t005t.
DATA: l_cell_value TYPE zexcel_cell_value,
ls_area TYPE zexcel_s_autofilter_area.
CONSTANTS: c_airlines TYPE string VALUE &apos;Airlines&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;33_autofilter.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Internal table&apos;).
SELECT * UP TO 2 ROWS FROM t005t INTO TABLE lt_test. &quot;#EC CI_NOWHERE
CREATE OBJECT lo_converter.
lo_converter-&gt;convert( EXPORTING
it_table = lt_test
i_row_int = 1
i_column_int = 1
io_worksheet = lo_worksheet
CHANGING
co_excel = lo_excel ) .
lo_autofilter = lo_excel-&gt;add_new_autofilter( io_sheet = lo_worksheet ) .
ls_area-row_start = 1.
ls_area-col_start = 1.
ls_area-row_end = lo_worksheet-&gt;get_highest_row( ).
ls_area-col_end = lo_worksheet-&gt;get_highest_column( ).
lo_autofilter-&gt;set_filter_area( is_area = ls_area ).
lo_worksheet-&gt;get_cell( EXPORTING
ip_column = &apos;C&apos;
ip_row = 2
IMPORTING
ep_value = l_cell_value ).
lo_autofilter-&gt;set_value( i_column = 3
i_value = l_cell_value ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL34" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Static Styles (Chess)" LENGTH="37 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL2
*&amp; Test Styles for ABAP2XLSX
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel34.
CONSTANTS: width TYPE f VALUE &apos;10.14&apos;.
CONSTANTS: height TYPE f VALUE &apos;57.75&apos;.
DATA: current_row TYPE i,
col TYPE i,
col_alpha TYPE zexcel_cell_column_alpha,
row TYPE i,
row_board TYPE i,
colorflag TYPE i,
color TYPE zexcel_style_color_argb,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
writing1 TYPE string,
writing2 TYPE string.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;34_Static Styles_Chess.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Spassky_vs_Bronstein&apos; ).
* Header
current_row = 1.
ADD 1 TO current_row.
lo_worksheet-&gt;set_cell( ip_row = current_row ip_column = &apos;B&apos; ip_value = &apos;White&apos; ).
lo_worksheet-&gt;set_cell( ip_row = current_row ip_column = &apos;C&apos; ip_value = &apos;Spassky, Boris V -- wins in turn 23&apos; ).
ADD 1 TO current_row.
lo_worksheet-&gt;set_cell( ip_row = current_row ip_column = &apos;B&apos; ip_value = &apos;Black&apos; ).
lo_worksheet-&gt;set_cell( ip_row = current_row ip_column = &apos;C&apos; ip_value = &apos;Bronstein, David I&apos; ).
ADD 1 TO current_row.
* Set size of column + Writing above chessboard
DO 8 TIMES.
writing1 = zcl_excel_common=&gt;convert_column2alpha( sy-index ).
writing2 = sy-index .
row = current_row + sy-index.
col = sy-index + 1.
col_alpha = zcl_excel_common=&gt;convert_column2alpha( col ).
* Set size of column
column_dimension = lo_worksheet-&gt;get_column_dimension( col_alpha ).
column_dimension-&gt;set_width( width ).
* Set size of row
row_dimension = lo_worksheet-&gt;get_row_dimension( row ).
row_dimension-&gt;set_row_height( height ).
* Set writing on chessboard
lo_worksheet-&gt;set_cell( ip_row = row
ip_column = &apos;A&apos;
ip_value = writing2 ).
lo_worksheet-&gt;change_cell_style( ip_column = &apos;A&apos;
ip_row = row
ip_alignment_vertical = zcl_excel_style_alignment=&gt;c_vertical_center ).
lo_worksheet-&gt;set_cell( ip_row = row
ip_column = &apos;J&apos;
ip_value = writing2 ).
lo_worksheet-&gt;change_cell_style( ip_column = &apos;J&apos;
ip_row = row
ip_alignment_vertical = zcl_excel_style_alignment=&gt;c_vertical_center ).
row = current_row + 9.
lo_worksheet-&gt;set_cell( ip_row = current_row
ip_column = col_alpha
ip_value = writing1 ).
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = current_row
ip_alignment_horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center ).
lo_worksheet-&gt;set_cell( ip_row = row
ip_column = col_alpha
ip_value = writing1 ).
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = row
ip_alignment_horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center ).
ENDDO.
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;A&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;J&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
* Set win-position
CONSTANTS: c_pawn TYPE string VALUE &apos;Pawn&apos;.
CONSTANTS: c_rook TYPE string VALUE &apos;Rook&apos;.
CONSTANTS: c_knight TYPE string VALUE &apos;Knight&apos;.
CONSTANTS: c_bishop TYPE string VALUE &apos;Bishop&apos;.
CONSTANTS: c_queen TYPE string VALUE &apos;Queen&apos;.
CONSTANTS: c_king TYPE string VALUE &apos;King&apos;.
row = current_row + 1.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;B&apos; ip_value = c_rook ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;F&apos; ip_value = c_rook ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;G&apos; ip_value = c_knight ).
row = current_row + 2.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;B&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;C&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;D&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;F&apos; ip_value = c_queen ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;H&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;I&apos; ip_value = c_king ).
row = current_row + 3.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;I&apos; ip_value = c_pawn ).
row = current_row + 4.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;D&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;F&apos; ip_value = c_knight ).
row = current_row + 5.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;E&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;F&apos; ip_value = c_queen ).
row = current_row + 6.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;C&apos; ip_value = c_bishop ).
row = current_row + 7.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;B&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;C&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;H&apos; ip_value = c_pawn ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;I&apos; ip_value = c_pawn ).
row = current_row + 8.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;G&apos; ip_value = c_rook ).
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;H&apos; ip_value = c_king ).
* Set Chessboard
DO 8 TIMES.
IF sy-index &lt;= 3. &quot; Black
color = zcl_excel_style_color=&gt;c_black.
ELSE.
color = zcl_excel_style_color=&gt;c_white.
ENDIF.
row_board = sy-index.
row = current_row + sy-index.
DO 8 TIMES.
col = sy-index + 1.
col_alpha = zcl_excel_common=&gt;convert_column2alpha( col ).
TRY.
* Borders around outer limits
IF row_board = 1.
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = row
ip_borders_top_style = zcl_excel_style_border=&gt;c_border_thick
ip_borders_top_color_rgb = zcl_excel_style_color=&gt;c_black ).
ENDIF.
IF row_board = 8.
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = row
ip_borders_down_style = zcl_excel_style_border=&gt;c_border_thick
ip_borders_down_color_rgb = zcl_excel_style_color=&gt;c_black ).
ENDIF.
IF col = 2.
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = row
ip_borders_left_style = zcl_excel_style_border=&gt;c_border_thick
ip_borders_left_color_rgb = zcl_excel_style_color=&gt;c_black ).
ENDIF.
IF col = 9.
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = row
ip_borders_right_style = zcl_excel_style_border=&gt;c_border_thick
ip_borders_right_color_rgb = zcl_excel_style_color=&gt;c_black ).
ENDIF.
* Style for writing
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = row
ip_font_color_rgb = color
ip_font_bold = &apos;X&apos;
ip_font_size = 16
ip_alignment_horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center
ip_alignment_vertical = zcl_excel_style_alignment=&gt;c_vertical_center
ip_fill_filltype = zcl_excel_style_fill=&gt;c_fill_solid ).
* Color of field
colorflag = ( row + col ) MOD 2.
IF colorflag = 0.
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = row
ip_fill_fgcolor_rgb = &apos;FFB5866A&apos; ).
ELSE.
lo_worksheet-&gt;change_cell_style( ip_column = col_alpha
ip_row = row
ip_fill_fgcolor_rgb = &apos;FFF5DEBF&apos; ).
ENDIF.
CATCH zcx_excel .
ENDTRY.
ENDDO.
ENDDO.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL35" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: static styles" LENGTH="33 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL2
*&amp; Test Styles for ABAP2XLSX
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel35.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style,
lo_style_filled TYPE REF TO zcl_excel_style,
lo_style_border TYPE REF TO zcl_excel_style,
lo_style_button TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lo_border_light TYPE REF TO zcl_excel_style_border.
DATA: lv_style_bold_guid TYPE zexcel_cell_style,
lv_style_underline_guid TYPE zexcel_cell_style,
lv_style_filled_guid TYPE zexcel_cell_style,
lv_style_filled_green_guid TYPE zexcel_cell_style,
lv_style_border_guid TYPE zexcel_cell_style,
lv_style_button_guid TYPE zexcel_cell_style,
lv_style_filled_turquoise_guid TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;35_Static_Styles.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;GET_DESKTOP_DIRECTORY( CHANGING DESKTOP_DIRECTORY = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
sy-title = &apos;ZDEMO_EXCEL2;Issue 139: Change cellstyle retroactivly&apos;.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Create border object
CREATE OBJECT lo_border_dark.
lo_border_dark-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
lo_border_dark-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
CREATE OBJECT lo_border_light.
lo_border_light-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_gray.
lo_border_light-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
&quot; Create a bold / italic style
lo_style_bold = lo_excel-&gt;add_new_style( ).
lo_style_bold-&gt;font-&gt;bold = abap_true.
lo_style_bold-&gt;font-&gt;italic = abap_true.
lo_style_bold-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_arial.
lo_style_bold-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_none.
lo_style_bold-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_red.
lv_style_bold_guid = lo_style_bold-&gt;get_guid( ).
&quot; Create an underline double style
lo_style_underline = lo_excel-&gt;add_new_style( ).
lo_style_underline-&gt;font-&gt;underline = abap_true.
lo_style_underline-&gt;font-&gt;underline_mode = zcl_excel_style_font=&gt;c_underline_double.
lo_style_underline-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_roman.
lo_style_underline-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_none.
lo_style_underline-&gt;font-&gt;family = zcl_excel_style_font=&gt;c_family_roman.
lv_style_underline_guid = lo_style_underline-&gt;get_guid( ).
&quot; Create filled style yellow
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor-theme = zcl_excel_style_color=&gt;c_theme_accent6.
lv_style_filled_guid = lo_style_filled-&gt;get_guid( ).
&quot; Create border with button effects
lo_style_button = lo_excel-&gt;add_new_style( ).
lo_style_button-&gt;borders-&gt;right = lo_border_dark.
lo_style_button-&gt;borders-&gt;down = lo_border_dark.
lo_style_button-&gt;borders-&gt;left = lo_border_light.
lo_style_button-&gt;borders-&gt;top = lo_border_light.
lv_style_button_guid = lo_style_button-&gt;get_guid( ).
&quot;Create style with border
lo_style_border = lo_excel-&gt;add_new_style( ).
lo_style_border-&gt;borders-&gt;allborders = lo_border_dark.
lo_style_border-&gt;borders-&gt;diagonal = lo_border_dark.
lo_style_border-&gt;borders-&gt;diagonal_mode = zcl_excel_style_borders=&gt;c_diagonal_both.
lv_style_border_guid = lo_style_border-&gt;get_guid( ).
&quot; Create filled style green
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor-rgb = zcl_excel_style_color=&gt;c_green.
lo_style_filled-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_cambria.
lo_style_filled-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_major.
lv_style_filled_green_guid = lo_style_filled-&gt;get_guid( ).
&quot; Create filled style turquoise using legacy excel ver &lt;= 2003 palette. (https://code.sdn.sap.com/spaces/abap2xlsx/tickets/92)
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_excel-&gt;legacy_palette-&gt;set_color( &quot;replace built-in color from palette with out custom RGB turquoise
ip_index = 16
ip_color = &apos;0040E0D0&apos; ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor-indexed = 16.
lv_style_filled_turquoise_guid = lo_style_filled-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Styles&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = &apos;Bold text&apos; ip_style = lv_style_bold_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 4 ip_value = &apos;Underlined text&apos; ip_style = lv_style_underline_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;Filled text&apos; ip_style = lv_style_filled_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 6 ip_value = &apos;Borders&apos; ip_style = lv_style_border_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 7 ip_value = &apos;I&apos;&apos;m not a button :)&apos; ip_style = lv_style_button_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 9 ip_value = &apos;Modified color for Excel 2003&apos; ip_style = lv_style_filled_turquoise_guid ).
&quot; Fill the cell and apply one style
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 6 ip_value = &apos;Filled text&apos; ip_style = lv_style_filled_guid ).
&quot; Change the style
lo_worksheet-&gt;set_cell_style( ip_column = &apos;B&apos; ip_row = 6 ip_style = lv_style_filled_green_guid ).
&quot; Add Style to an empty cell to test Fix for Issue
&quot;#44 Exception ZCX_EXCEL thrown when style is set for an empty cell
&quot; https://code.sdn.sap.com/spaces/abap2xlsx/tickets/44-exception-zcx_excel-thrown-when-style-is-set-for-an-empty-cell
lo_worksheet-&gt;set_cell_style( ip_column = &apos;E&apos; ip_row = 6 ip_style = lv_style_filled_green_guid ).
* Demonstrate how to retroactivly change the cellstyle
*Filled text and underlinded text
lo_worksheet-&gt;change_cell_style( ip_column = &apos;B&apos;
ip_row = 5
ip_font_bold = abap_true
ip_font_italic = abap_true ).
lo_worksheet-&gt;change_cell_style( ip_column = &apos;D&apos;
ip_row = 4
ip_font_bold = abap_true
ip_font_italic = abap_true ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL36" VARCL="X" SUBC="1" RSTAT="T" RMAND="007" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Default Styles" LENGTH="31 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL36
REPORT zdemo_excel36.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
col TYPE i.
DATA: lo_style_arial20 TYPE REF TO zcl_excel_style,
lo_style_times11 TYPE REF TO zcl_excel_style,
lo_style_cambria8red TYPE REF TO zcl_excel_style.
DATA: lv_style_arial20_guid TYPE zexcel_cell_style,
lv_style_times11_guid TYPE zexcel_cell_style,
lv_style_cambria8red_guid TYPE zexcel_cell_style.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;36_DefaultStyles.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Create a bold / italic style
lo_style_arial20 = lo_excel-&gt;add_new_style( ).
lo_style_arial20-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_arial.
lo_style_arial20-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_none.
lo_style_arial20-&gt;font-&gt;size = 20.
lv_style_arial20_guid = lo_style_arial20-&gt;get_guid( ).
lo_style_times11 = lo_excel-&gt;add_new_style( ).
lo_style_times11-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_roman.
lo_style_times11-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_none.
lo_style_times11-&gt;font-&gt;size = 11.
lv_style_times11_guid = lo_style_times11-&gt;get_guid( ).
lo_style_cambria8red = lo_excel-&gt;add_new_style( ).
lo_style_cambria8red-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_cambria.
lo_style_cambria8red-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_none.
lo_style_cambria8red-&gt;font-&gt;size = 8.
lo_style_cambria8red-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_red.
lv_style_cambria8red_guid = lo_style_cambria8red-&gt;get_guid( ).
lo_excel-&gt;set_default_style( lv_style_arial20_guid ). &quot; Default for all new worksheets
* 1st sheet - do not change anything --&gt; defaultstyle from lo_excel should apply
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Style for complete document&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 4 ip_value = &apos;All cells in this sheet are set to font Arial, fontsize 20&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 5 ip_value = &apos;because no separate style was passed for this sheet&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 6 ip_value = &apos;but a default style was set for the complete instance of zcl_excel&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 1 ip_value = space ). &quot; Missing feature &quot;set active cell - use this to simulate that
* 2nd sheet - defaultstyle for this sheet set explicitly ( set to Times New Roman 11 )
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Style for this sheet&apos; ).
lo_worksheet-&gt;zif_excel_sheet_properties~set_style( lv_style_times11_guid ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 4 ip_value = &apos;All cells in this sheet are set to font Times New Roman, fontsize 11&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 5 ip_value = &apos;because this style was passed for this sheet&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 6 ip_value = &apos;thus the default style from zcl_excel does not apply to this sheet&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 1 ip_value = space ). &quot; Missing feature &quot;set active cell - use this to simulate that
* 3rd sheet - defaultstyle for columns ( set to Times New Roman 11 )
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Style for 3 columns&apos; ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;B&apos; ).
column_dimension-&gt;set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;C&apos; ).
column_dimension-&gt;set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;F&apos; ).
column_dimension-&gt;set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 4 ip_value = &apos;The columns B,C and F are set to Times New Roman&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 10 ip_value = &apos;All other cells in this sheet are set to font Arial, fontsize 20&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 11 ip_value = &apos;because no separate style was passed for this sheet&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 12 ip_value = &apos;but a default style was set for the complete instance of zcl_excel&apos; ).
lo_worksheet-&gt;set_cell( ip_column = 8 ip_row = 1 ip_value = &apos;Of course&apos; ip_style = lv_style_cambria8red_guid ).
lo_worksheet-&gt;set_cell( ip_column = 8 ip_row = 2 ip_value = &apos;setting a specific style to a cell&apos; ip_style = lv_style_cambria8red_guid ).
lo_worksheet-&gt;set_cell( ip_column = 8 ip_row = 3 ip_value = &apos;takes precedence over all defaults&apos; ip_style = lv_style_cambria8red_guid ).
lo_worksheet-&gt;set_cell( ip_column = 8 ip_row = 4 ip_value = &apos;Here: Cambria 8 in red&apos; ip_style = lv_style_cambria8red_guid ).
* Set entry into each of the first 10 columns
DO 20 TIMES.
col = sy-index.
CASE col.
WHEN 2 &quot; B
OR 3 &quot; C
OR 6.&quot; F
lo_worksheet-&gt;set_cell( ip_column = col ip_row = 6 ip_value = &apos;Times 11&apos; ).
WHEN OTHERS.
lo_worksheet-&gt;set_cell( ip_column = col ip_row = 6 ip_value = &apos;Arial 20&apos; ).
ENDCASE.
ENDDO.
lo_worksheet-&gt;set_cell( ip_column = 2 ip_row = 1 ip_value = space ). &quot; Missing feature &quot;set active cell - use this to simulate that
lo_excel-&gt;set_active_sheet_index( 1 ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL37" VARCL="X" SUBC="1" RSTAT="T" RMAND="100" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="D">
<textElement ID="R" ENTRY="Xlsx-Datei lesen und dann wieder ausgeben" LENGTH="70 "/>
<textElement ID="S" KEY="P_UPFILE" ENTRY=" Hochzuladende Datei" LENGTH="27 "/>
</language>
<language SPRAS="E">
<textElement ID="R" ENTRY="Read xlsx-file and output" LENGTH="25 "/>
<textElement ID="S" KEY="P_UPFILE" ENTRY=" File to upload" LENGTH="22 "/>
</language>
</textPool>
<source>REPORT zdemo_excel37.
DATA: excel TYPE REF TO zcl_excel,
reader TYPE REF TO zif_excel_reader,
go_error TYPE REF TO cx_root,
gv_message type string.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;37-passthrough.xlsx&apos;.
SELECTION-SCREEN BEGIN OF BLOCK blx WITH FRAME.
PARAMETERS: p_upfile TYPE string DEFAULT &apos;c:\temp\whatever.xlsx&apos; LOWER CASE.
SELECTION-SCREEN END OF BLOCK blx.
INCLUDE zdemo_excel_outputopt_incl.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_upfile.
PERFORM f4_p_upfile CHANGING p_upfile.
START-OF-SELECTION.
TRY.
CREATE OBJECT reader TYPE zcl_excel_reader_2007.
* CREATE OBJECT reader TYPE zcl_excel_reader_xlsm.
excel = reader-&gt;load_file( p_upfile ).
&quot;Use template for charts
excel-&gt;use_template = abap_true.
*--------------------------------------------------------------------*
* CL_ABAP_ZIP may have problems reading LibreOffice generated files
* You may have to use alternate ZIP-Class - see comments in issue #234 in abap2xlsx at developers network
* excel = reader-&gt;load_file( i_filename = p_upfile
* iv_use_alternate_zip = &apos;ZCL_EXCEL_ABAP_ZIP&apos; ).
*--------------------------------------------------------------------*
*** Create output
lcl_output=&gt;output( excel ).
CATCH cx_root INTO go_error.
MESSAGE &apos;Error reading excelfile&apos; TYPE &apos;I&apos;.
gv_message = go_error-&gt;get_text( ).
IF gv_message IS NOT INITIAL.
MESSAGE gv_message TYPE &apos;I&apos;.
ENDIF.
ENDTRY.
*&amp;---------------------------------------------------------------------*
*&amp; Form F4_P_UPFILE
*&amp;---------------------------------------------------------------------*
FORM f4_p_upfile CHANGING p_upfile TYPE string.
DATA: lv_repid TYPE syrepid,
lt_fields TYPE dynpread_tabtype,
ls_field LIKE LINE OF lt_fields,
lt_files TYPE filetable.
lv_repid = sy-repid.
CALL FUNCTION &apos;DYNP_VALUES_READ&apos;
EXPORTING
dyname = lv_repid
dynumb = &apos;1000&apos;
request = &apos;A&apos;
TABLES
dynpfields = lt_fields
EXCEPTIONS
invalid_abapworkarea = 01
invalid_dynprofield = 02
invalid_dynproname = 03
invalid_dynpronummer = 04
invalid_request = 05
no_fielddescription = 06
undefind_error = 07.
READ TABLE lt_fields INTO ls_field WITH KEY fieldname = &apos;P_UPFILE&apos;.
p_upfile = ls_field-fieldvalue.
cl_gui_frontend_services=&gt;file_open_dialog( EXPORTING
default_filename = p_upfile
file_filter = zcl_excel_common=&gt;c_xlsx_file_filter
CHANGING
file_table = lt_files
rc = sy-tabix
EXCEPTIONS
OTHERS = 1 ).
READ TABLE lt_files INDEX 1 INTO p_upfile.
ENDFORM. &quot; F4_P_UPFILE</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL38" VARCL="X" SUBC="1" RSTAT="T" RMAND="100" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Read file and output" LENGTH="20 "/>
<textElement ID="S" KEY="S_ICON" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>REPORT.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_drawing TYPE REF TO zcl_excel_drawing.
TYPES: BEGIN OF gty_icon,
* name TYPE icon_name, &quot;Fix #228
name TYPE iconname, &quot;Fix #228
objid TYPE w3objid,
END OF gty_icon,
gtyt_icon TYPE STANDARD TABLE OF gty_icon WITH NON-UNIQUE DEFAULT KEY.
DATA: lt_icon TYPE gtyt_icon,
lv_row TYPE sytabix,
ls_wwwdatatab TYPE wwwdatatab,
lt_mimedata TYPE STANDARD TABLE OF w3mime WITH NON-UNIQUE DEFAULT KEY,
lv_xstring TYPE xstring.
FIELD-SYMBOLS: &lt;icon&gt; LIKE LINE OF lt_icon,
&lt;mimedata&gt; LIKE LINE OF lt_mimedata.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;38_SAP-Icons.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
TABLES: icon.
SELECT-OPTIONS: s_icon FOR icon-name DEFAULT &apos;ICON_LED_*&apos; OPTION CP.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo Icons&apos; ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;A&apos; ).
lo_column_dimension-&gt;set_auto_size( &apos;X&apos; ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
lo_column_dimension-&gt;set_auto_size( &apos;X&apos; ).
* Get all icons
SELECT name
INTO TABLE lt_icon
FROM icon
WHERE name IN s_icon
ORDER BY name.
LOOP AT lt_icon ASSIGNING &lt;icon&gt;.
lv_row = sy-tabix.
*--------------------------------------------------------------------*
* Set name of icon
*--------------------------------------------------------------------*
lo_worksheet-&gt;set_cell( ip_row = lv_row
ip_column = &apos;A&apos;
ip_value = &lt;icon&gt;-name ).
*--------------------------------------------------------------------*
* Check whether the mime-repository holds some icondata for us
*--------------------------------------------------------------------*
* Get key
SELECT SINGLE objid
INTO &lt;icon&gt;-objid
FROM wwwdata
WHERE text = &lt;icon&gt;-name.
CHECK sy-subrc = 0. &quot; :o(
lo_worksheet-&gt;set_cell( ip_row = lv_row
ip_column = &apos;B&apos;
ip_value = &lt;icon&gt;-objid ).
* Load mimedata
CLEAR lt_mimedata.
CLEAR ls_wwwdatatab.
ls_wwwdatatab-relid = &apos;MI&apos; .
ls_wwwdatatab-objid = &lt;icon&gt;-objid.
CALL FUNCTION &apos;WWWDATA_IMPORT&apos;
EXPORTING
key = ls_wwwdatatab
TABLES
mime = lt_mimedata
EXCEPTIONS
wrong_object_type = 1
import_error = 2
OTHERS = 3.
CHECK sy-subrc = 0. &quot; :o(
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = lv_row
ip_from_col = &apos;C&apos; ).
CLEAR lv_xstring.
LOOP AT lt_mimedata ASSIGNING &lt;mimedata&gt;.
CONCATENATE lv_xstring &lt;mimedata&gt;-line INTO lv_xstring IN BYTE MODE.
ENDLOOP.
lo_drawing-&gt;set_media( ip_media = lv_xstring
ip_media_type = zcl_excel_drawing=&gt;c_media_type_jpg
ip_width = 16
ip_height = 14 ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
ENDLOOP.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL39" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Drawings" LENGTH="25 "/>
<textElement ID="S" KEY="POBJTYPE" ENTRY="D ." LENGTH="9 "/>
<textElement ID="S" KEY="P_CLASS" ENTRY="D ." LENGTH="9 "/>
<textElement ID="S" KEY="P_OBJID" ENTRY="D ." LENGTH="9 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL16
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel39.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA lv_value TYPE i.
DATA: ls_io TYPE skwf_io.
DATA: ls_upper TYPE zexcel_drawing_location,
ls_lower TYPE zexcel_drawing_location.
DATA lo_bar1 TYPE REF TO zcl_excel_graph_bars.
DATA lo_bar2 TYPE REF TO zcl_excel_graph_bars.
DATA lo_pie TYPE REF TO zcl_excel_graph_pie.
DATA lo_line TYPE REF TO zcl_excel_graph_line.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;39_Charts.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Create a pie chart and series
CREATE OBJECT lo_pie.
CALL METHOD lo_pie-&gt;create_serie
EXPORTING
ip_order = 0
ip_sheet = &apos;Values&apos;
ip_lbl_from_col = &apos;B&apos;
ip_lbl_from_row = &apos;1&apos;
ip_lbl_to_col = &apos;B&apos;
ip_lbl_to_row = &apos;3&apos;
ip_ref_from_col = &apos;A&apos;
ip_ref_from_row = &apos;1&apos;
ip_ref_to_col = &apos;A&apos;
ip_ref_to_row = &apos;3&apos;
ip_sername = &apos;My serie 1&apos;.
&quot; Set style
lo_pie-&gt;set_style( zcl_excel_graph=&gt;c_style_15 ).
&quot; Create a bar chart, series and axes
CREATE OBJECT lo_bar1.
CALL METHOD lo_bar1-&gt;create_serie
EXPORTING
ip_order = 0
ip_invertifnegative = zcl_excel_graph_bars=&gt;c_invertifnegative_no
ip_lbl = &apos;Values!$D$1:$D$3&apos;
ip_ref = &apos;Values!$C$1:$C$3&apos;
ip_sername = &apos;My serie 1&apos;.
CALL METHOD lo_bar1-&gt;create_serie
EXPORTING
ip_order = 1
ip_invertifnegative = zcl_excel_graph_bars=&gt;c_invertifnegative_no
ip_lbl = &apos;Values!$B$1:$B$3&apos;
ip_ref = &apos;Values!$A$1:$A$3&apos;
ip_sername = &apos;My serie 2&apos;.
CALL METHOD lo_bar1-&gt;create_ax
EXPORTING
* ip_axid =
ip_type = zcl_excel_graph_bars=&gt;c_catax
* ip_orientation =
* ip_delete =
* ip_axpos =
* ip_formatcode =
* ip_sourcelinked =
* ip_majortickmark =
* ip_minortickmark =
* ip_ticklblpos =
* ip_crossax =
* ip_crosses =
* ip_auto =
* ip_lblalgn =
* ip_lbloffset =
* ip_nomultilvllbl =
* ip_crossbetween =
.
CALL METHOD lo_bar1-&gt;create_ax
EXPORTING
* ip_axid =
ip_type = zcl_excel_graph_bars=&gt;c_valax
* ip_orientation =
* ip_delete =
* ip_axpos =
* ip_formatcode =
* ip_sourcelinked =
* ip_majortickmark =
* ip_minortickmark =
* ip_ticklblpos =
* ip_crossax =
* ip_crosses =
* ip_auto =
* ip_lblalgn =
* ip_lbloffset =
* ip_nomultilvllbl =
* ip_crossbetween =
.
&quot; Set style
lo_bar1-&gt;set_style( zcl_excel_graph=&gt;c_style_default ).
&quot; Set label to none
lo_bar1-&gt;set_print_lbl( zcl_excel_graph_bars=&gt;c_show_false ).
&quot; Create a bar chart, series and axes
CREATE OBJECT lo_bar2.
CALL METHOD lo_bar2-&gt;create_serie
EXPORTING
ip_order = 0
ip_invertifnegative = zcl_excel_graph_bars=&gt;c_invertifnegative_yes
ip_lbl = &apos;Values!$D$1:$D$3&apos;
ip_ref = &apos;Values!$C$1:$C$3&apos;
ip_sername = &apos;My serie 1&apos;.
CALL METHOD lo_bar2-&gt;create_ax
EXPORTING
* ip_axid =
ip_type = zcl_excel_graph_bars=&gt;c_catax
* ip_orientation =
* ip_delete =
* ip_axpos =
* ip_formatcode =
* ip_sourcelinked =
* ip_majortickmark =
* ip_minortickmark =
* ip_ticklblpos =
* ip_crossax =
* ip_crosses =
* ip_auto =
* ip_lblalgn =
* ip_lbloffset =
* ip_nomultilvllbl =
* ip_crossbetween =
.
CALL METHOD lo_bar2-&gt;create_ax
EXPORTING
* ip_axid =
ip_type = zcl_excel_graph_bars=&gt;c_valax
* ip_orientation =
* ip_delete =
* ip_axpos =
* ip_formatcode =
* ip_sourcelinked =
* ip_majortickmark =
* ip_minortickmark =
* ip_ticklblpos =
* ip_crossax =
* ip_crosses =
* ip_auto =
* ip_lblalgn =
* ip_lbloffset =
* ip_nomultilvllbl =
* ip_crossbetween =
.
&quot; Set layout
lo_bar2-&gt;set_show_legend_key( zcl_excel_graph_bars=&gt;c_show_true ).
lo_bar2-&gt;set_show_values( zcl_excel_graph_bars=&gt;c_show_true ).
lo_bar2-&gt;set_show_cat_name( zcl_excel_graph_bars=&gt;c_show_true ).
lo_bar2-&gt;set_show_ser_name( zcl_excel_graph_bars=&gt;c_show_true ).
lo_bar2-&gt;set_show_percent( zcl_excel_graph_bars=&gt;c_show_true ).
lo_bar2-&gt;set_varycolor( zcl_excel_graph_bars=&gt;c_show_true ).
&quot; Create a line chart, series and axes
CREATE OBJECT lo_line.
CALL METHOD lo_line-&gt;create_serie
EXPORTING
ip_order = 0
ip_symbol = zcl_excel_graph_line=&gt;c_symbol_auto
ip_smooth = zcl_excel_graph_line=&gt;c_show_false
ip_lbl = &apos;Values!$D$1:$D$3&apos;
ip_ref = &apos;Values!$C$1:$C$3&apos;
ip_sername = &apos;My serie 1&apos;.
CALL METHOD lo_line-&gt;create_serie
EXPORTING
ip_order = 1
ip_symbol = zcl_excel_graph_line=&gt;c_symbol_none
ip_smooth = zcl_excel_graph_line=&gt;c_show_false
ip_lbl = &apos;Values!$B$1:$B$3&apos;
ip_ref = &apos;Values!$A$1:$A$3&apos;
ip_sername = &apos;My serie 2&apos;.
CALL METHOD lo_line-&gt;create_serie
EXPORTING
ip_order = 2
ip_symbol = zcl_excel_graph_line=&gt;c_symbol_auto
ip_smooth = zcl_excel_graph_line=&gt;c_show_false
ip_lbl = &apos;Values!$F$1:$F$3&apos;
ip_ref = &apos;Values!$E$1:$E$3&apos;
ip_sername = &apos;My serie 3&apos;.
CALL METHOD lo_line-&gt;create_ax
EXPORTING
* ip_axid =
ip_type = zcl_excel_graph_line=&gt;c_catax
* ip_orientation =
* ip_delete =
* ip_axpos =
* ip_majortickmark =
* ip_minortickmark =
* ip_ticklblpos =
* ip_crossax =
* ip_crosses =
* ip_auto =
* ip_lblalgn =
* ip_lbloffset =
* ip_nomultilvllbl =
* ip_crossbetween =
.
CALL METHOD lo_line-&gt;create_ax
EXPORTING
* ip_axid =
ip_type = zcl_excel_graph_line=&gt;c_valax
* ip_orientation =
* ip_delete =
* ip_axpos =
* ip_formatcode =
* ip_sourcelinked =
* ip_majortickmark =
* ip_minortickmark =
* ip_ticklblpos =
* ip_crossax =
* ip_crosses =
* ip_auto =
* ip_lblalgn =
* ip_lbloffset =
* ip_nomultilvllbl =
* ip_crossbetween =
.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet (Pie sheet)
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;PieChart&apos; ).
&quot; Create global drawing, set type as pie chart, assign chart, set position and media type
lo_drawing = lo_worksheet-&gt;excel-&gt;add_new_drawing(
ip_type = zcl_excel_drawing=&gt;type_chart
ip_title = &apos;CHART PIE&apos; ).
lo_drawing-&gt;graph = lo_pie.
lo_drawing-&gt;graph_type = zcl_excel_drawing=&gt;c_graph_pie.
&quot;Set chart position (anchor 2 cells)
ls_lower-row = 30.
ls_lower-col = 20.
lo_drawing-&gt;set_position2(
EXPORTING
ip_from = ls_upper
ip_to = ls_lower ).
lo_drawing-&gt;set_media(
EXPORTING
ip_media_type = zcl_excel_drawing=&gt;c_media_type_xml ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; BarChart1 sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;BarChart1&apos; ).
&quot; Create global drawing, set type as bar chart, assign chart, set position and media type
lo_drawing = lo_worksheet-&gt;excel-&gt;add_new_drawing(
ip_type = zcl_excel_drawing=&gt;type_chart
ip_title = &apos;CHART BARS WITH 2 SERIES&apos; ).
lo_drawing-&gt;graph = lo_bar1.
lo_drawing-&gt;graph_type = zcl_excel_drawing=&gt;c_graph_bars.
&quot;Set chart position (anchor 2 cells)
ls_upper-row = 0.
ls_upper-col = 11.
ls_lower-row = 22.
ls_lower-col = 21.
lo_drawing-&gt;set_position2(
EXPORTING
ip_from = ls_upper
ip_to = ls_lower ).
lo_drawing-&gt;set_media(
EXPORTING
ip_media_type = zcl_excel_drawing=&gt;c_media_type_xml ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; BarChart2 sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;BarChart2&apos; ).
&quot; Create global drawing, set type as bar chart, assign chart, set position and media type
lo_drawing = lo_worksheet-&gt;excel-&gt;add_new_drawing(
ip_type = zcl_excel_drawing=&gt;type_chart
ip_title = &apos;CHART BARS WITH 1 SERIE&apos; ).
lo_drawing-&gt;graph = lo_bar2.
lo_drawing-&gt;graph_type = zcl_excel_drawing=&gt;c_graph_bars.
&quot;Set chart position (anchor 2 cells)
ls_upper-row = 0.
ls_upper-col = 0.
ls_lower-row = 30.
ls_lower-col = 20.
lo_drawing-&gt;set_position2(
EXPORTING
ip_from = ls_upper
ip_to = ls_lower ).
lo_drawing-&gt;set_media(
EXPORTING
ip_media_type = zcl_excel_drawing=&gt;c_media_type_xml ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; LineChart sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;LineChart&apos; ).
&quot; Create global drawing, set type as line chart, assign chart, set position and media type
lo_drawing = lo_worksheet-&gt;excel-&gt;add_new_drawing(
ip_type = zcl_excel_drawing=&gt;type_chart
ip_title = &apos;CHART LINES&apos; ).
lo_drawing-&gt;graph = lo_line.
lo_drawing-&gt;graph_type = zcl_excel_drawing=&gt;c_graph_line.
&quot;Set chart position (anchor 2 cells)
ls_upper-row = 0.
ls_upper-col = 0.
ls_lower-row = 30.
ls_lower-col = 20.
lo_drawing-&gt;set_position2(
EXPORTING
ip_from = ls_upper
ip_to = ls_lower ).
lo_drawing-&gt;set_media(
EXPORTING
ip_media_type = zcl_excel_drawing=&gt;c_media_type_xml ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; Values sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Values&apos; ).
&quot; Set values for chart
lv_value = 1.
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 1 ip_value = lv_value ).
lv_value = 2.
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 2 ip_value = lv_value ).
lv_value = 3.
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 3 ip_value = lv_value ).
&quot; Set labels for chart
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 1 ip_value = &apos;One&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Two&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;Three&apos; ).
&quot; Set values for chart
lv_value = 3.
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 1 ip_value = lv_value ).
lv_value = 2.
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 2 ip_value = lv_value ).
lv_value = -1.
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = lv_value ).
&quot; Set labels for chart
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 3 ip_value = &apos;One (Minus)&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 2 ip_value = &apos;Two&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 1 ip_value = &apos;Three&apos; ).
&quot; Set values for chart
lv_value = 3.
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = 1 ip_value = lv_value ).
lv_value = 1.
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = 2 ip_value = lv_value ).
lv_value = 2.
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = 3 ip_value = lv_value ).
&quot; Set labels for chart
lo_worksheet-&gt;set_cell( ip_column = &apos;F&apos; ip_row = 3 ip_value = &apos;Two&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;F&apos; ip_row = 2 ip_value = &apos;One&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;F&apos; ip_row = 1 ip_value = &apos;Three&apos; ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL4" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Create XLXS with multiple sheets" LENGTH="49 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL4
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel4.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lv_tabcolor TYPE zexcel_s_tabcolor,
ls_header TYPE zexcel_s_worksheet_head_foot,
ls_footer TYPE zexcel_s_worksheet_head_foot.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;04_Sheets.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
lo_worksheet-&gt;zif_excel_sheet_properties~selected = zif_excel_sheet_properties=&gt;c_selected.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the first sheet&apos; ).
* Set color to tab with sheetname - Red
lv_tabcolor-rgb = zcl_excel_style_color=&gt;create_new_argb( ip_red = &apos;FF&apos;
ip_green = &apos;00&apos;
ip_blu = &apos;00&apos; ).
lo_worksheet-&gt;set_tabcolor( lv_tabcolor ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet2!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;This is link to second sheet&apos; ip_hyperlink = lo_hyperlink ).
&quot; Page printing settings
lo_worksheet-&gt;sheet_setup-&gt;set_page_margins( ip_header = &apos;1&apos; ip_footer = &apos;1&apos; ip_unit = &apos;cm&apos; ).
lo_worksheet-&gt;sheet_setup-&gt;black_and_white = &apos;X&apos;.
lo_worksheet-&gt;sheet_setup-&gt;fit_to_page = &apos;X&apos;. &quot; you should turn this on to activate fit_to_height and fit_to_width
lo_worksheet-&gt;sheet_setup-&gt;fit_to_height = 0. &quot; used only if ip_fit_to_page = &apos;X&apos;
lo_worksheet-&gt;sheet_setup-&gt;fit_to_width = 2. &quot; used only if ip_fit_to_page = &apos;X&apos;
lo_worksheet-&gt;sheet_setup-&gt;orientation = zcl_excel_sheet_setup=&gt;c_orientation_landscape.
lo_worksheet-&gt;sheet_setup-&gt;page_order = zcl_excel_sheet_setup=&gt;c_ord_downthenover.
lo_worksheet-&gt;sheet_setup-&gt;paper_size = zcl_excel_sheet_setup=&gt;c_papersize_a4.
lo_worksheet-&gt;sheet_setup-&gt;scale = 80. &quot; used only if ip_fit_to_page = SPACE
&quot; Header and Footer
ls_header-right_value = &apos;print date &amp;D&apos;.
ls_header-right_font-size = 8.
ls_header-right_font-name = zcl_excel_style_font=&gt;c_name_arial.
ls_footer-left_value = &apos;&amp;Z&amp;F&apos;. &quot;Path / Filename
ls_footer-left_font = ls_header-right_font.
ls_footer-right_value = &apos;page &amp;P of &amp;N&apos;. &quot;page x of y
ls_footer-right_font = ls_header-right_font.
lo_worksheet-&gt;sheet_setup-&gt;set_header_footer( ip_odd_header = ls_header
ip_odd_footer = ls_footer ).
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet2&apos; ).
* Set color to tab with sheetname - Green
lv_tabcolor-rgb = zcl_excel_style_color=&gt;create_new_argb( ip_red = &apos;00&apos;
ip_green = &apos;FF&apos;
ip_blu = &apos;00&apos; ).
lo_worksheet-&gt;set_tabcolor( lv_tabcolor ).
lo_worksheet-&gt;zif_excel_sheet_properties~selected = zif_excel_sheet_properties=&gt;c_selected.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the second sheet&apos; ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet1!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;This is link to first sheet&apos; ip_hyperlink = lo_hyperlink ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 4 ip_value = &apos;Sheet3 is hidden&apos; ).
lo_worksheet-&gt;sheet_setup-&gt;set_header_footer( ip_odd_header = ls_header
ip_odd_footer = ls_footer ).
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet3&apos; ).
* Set color to tab with sheetname - Blue
lv_tabcolor-rgb = zcl_excel_style_color=&gt;create_new_argb( ip_red = &apos;00&apos;
ip_green = &apos;00&apos;
ip_blu = &apos;FF&apos; ).
lo_worksheet-&gt;set_tabcolor( lv_tabcolor ).
lo_worksheet-&gt;zif_excel_sheet_properties~hidden = zif_excel_sheet_properties=&gt;c_hidden.
lo_worksheet-&gt;sheet_setup-&gt;set_header_footer( ip_odd_header = ls_header
ip_odd_footer = ls_footer ).
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet4&apos; ).
* Set color to tab with sheetname - other color
lv_tabcolor-rgb = zcl_excel_style_color=&gt;create_new_argb( ip_red = &apos;00&apos;
ip_green = &apos;FF&apos;
ip_blu = &apos;FF&apos; ).
lo_worksheet-&gt;set_tabcolor( lv_tabcolor ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Cell B3 has value 0&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = 0 ).
lo_worksheet-&gt;zif_excel_sheet_properties~show_zeros = zif_excel_sheet_properties=&gt;c_hidezero.
lo_worksheet-&gt;sheet_setup-&gt;set_header_footer( ip_odd_header = ls_header
ip_odd_footer = ls_footer ).
lo_excel-&gt;set_active_sheet_index_by_name( &apos;Sheet1&apos; ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL40" VARCL="X" SUBC="1" RSTAT="T" RMAND="100" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Print settings" LENGTH="20 "/>
<textElement ID="S" KEY="S_ICON" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>REPORT.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_row TYPE zexcel_cell_row,
lv_col TYPE i,
lv_row_char TYPE char10,
lv_value TYPE string,
ls_fontcolor TYPE zexcel_style_color_argb.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;40_Printsettings.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo Printsettings&apos; ).
*--------------------------------------------------------------------*
* Prepare sheet with trivial data
* - first 4 columns will have fontocolor set
* - first 3 rows will have fontcolor set
* These marked cells will be used for repeatable rows/columns on printpages
*--------------------------------------------------------------------*
DO 100 TIMES. &quot; Rows
lv_row = sy-index .
WRITE lv_row TO lv_row_char.
DO 20 TIMES.
lv_col = sy-index - 1.
CONCATENATE sy-abcde+lv_col(1) lv_row_char INTO lv_value.
lv_col = sy-index.
lo_worksheet-&gt;set_cell( ip_row = lv_row
ip_column = lv_col
ip_value = lv_value ).
TRY.
IF lv_row &lt;= 3.
lo_worksheet-&gt;change_cell_style( ip_column = lv_col
ip_row = lv_row
ip_fill_filltype = zcl_excel_style_fill=&gt;c_fill_solid
ip_fill_fgcolor_rgb = zcl_excel_style_color=&gt;c_yellow ).
ENDIF.
IF lv_col &lt;= 4.
lo_worksheet-&gt;change_cell_style( ip_column = lv_col
ip_row = lv_row
ip_font_color_rgb = zcl_excel_style_color=&gt;c_red ).
ENDIF.
CATCH zcx_excel .
ENDTRY.
ENDDO.
ENDDO.
*--------------------------------------------------------------------*
* Printsettings
*--------------------------------------------------------------------*
TRY.
lo_worksheet-&gt;zif_excel_sheet_printsettings~set_print_repeat_columns( iv_columns_from = &apos;A&apos;
iv_columns_to = &apos;D&apos; ).
lo_worksheet-&gt;zif_excel_sheet_printsettings~set_print_repeat_rows( iv_rows_from = 1
iv_rows_to = 3 ).
CATCH zcx_excel .
ENDTRY.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL5" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Conditinal formating" LENGTH="37 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL5
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel5.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional.
DATA: ls_iconset TYPE zexcel_conditional_iconset.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;05_Conditional.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset-iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2.
ls_iconset-cfvo1_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo1_value = &apos;0&apos;.
ls_iconset-cfvo2_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo2_value = &apos;33&apos;.
ls_iconset-cfvo3_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo3_value = &apos;66&apos;.
ls_iconset-showvalue = zcl_excel_style_conditional=&gt;c_showvalue_true.
lo_style_conditional-&gt;mode_iconset = ls_iconset.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 4
ip_stop_column = &apos;C&apos;
ip_stop_row = 8 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = 100 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 1000 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 150 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = 500 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset-iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2.
ls_iconset-showvalue = zcl_excel_style_conditional=&gt;c_showvalue_false.
lo_style_conditional-&gt;mode_iconset = ls_iconset.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos;
ip_start_row = 4
ip_stop_column = &apos;E&apos;
ip_stop_row = 8 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;E&apos; ip_value = 100 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;E&apos; ip_value = 1000 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;E&apos; ip_value = 150 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;E&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;E&apos; ip_value = 500 ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL6" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Formulas" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL6
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel6.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_row TYPE syindex,
lv_formula TYPE string.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;06_Formulas.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
*--------------------------------------------------------------------*
* Get some testdata
*--------------------------------------------------------------------*
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = 100 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 1000 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 150 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = -10 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = 500 ).
*--------------------------------------------------------------------*
* Demonstrate using formulas
*--------------------------------------------------------------------*
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;C&apos; ip_formula = &apos;SUM(C4:C8)&apos; ).
*--------------------------------------------------------------------*
* Demonstrate standard EXCEL-behaviour when copying a formula to another cell
* by calculating the resulting formula to put into another cell
*--------------------------------------------------------------------*
DO 10 TIMES.
lv_formula = zcl_excel_common=&gt;shift_formula( iv_reference_formula = &apos;SUM(C4:C8)&apos;
iv_shift_cols = 0 &quot; Offset in Columns - here we copy in same column --&gt; 0
iv_shift_rows = sy-index ). &quot; Offset in Row - here we copy downward --&gt; sy-index
lv_row = 9 + sy-index. &quot; Absolute row = sy-index rows below reference cell
lo_worksheet-&gt;set_cell( ip_row = lv_row ip_column = &apos;C&apos; ip_formula = lv_formula ).
ENDDO.
*--------------------------------------------------------------------*
*** Create output
*--------------------------------------------------------------------*
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL7" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: All conditional formating possibilities" LENGTH="56 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL7
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel7.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional.
DATA: ls_iconset3 TYPE zexcel_conditional_iconset,
ls_iconset4 TYPE zexcel_conditional_iconset,
ls_iconset5 TYPE zexcel_conditional_iconset.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;07_ConditionalAll.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
ls_iconset3-cfvo1_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset3-cfvo1_value = &apos;0&apos;.
ls_iconset3-cfvo2_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset3-cfvo2_value = &apos;33&apos;.
ls_iconset3-cfvo3_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset3-cfvo3_value = &apos;66&apos;.
ls_iconset3-showvalue = zcl_excel_style_conditional=&gt;c_showvalue_true.
ls_iconset4-cfvo1_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset4-cfvo1_value = &apos;0&apos;.
ls_iconset4-cfvo2_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset4-cfvo2_value = &apos;25&apos;.
ls_iconset4-cfvo3_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset4-cfvo3_value = &apos;50&apos;.
ls_iconset4-cfvo4_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset4-cfvo4_value = &apos;75&apos;.
ls_iconset4-showvalue = zcl_excel_style_conditional=&gt;c_showvalue_true.
ls_iconset5-cfvo1_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset5-cfvo1_value = &apos;0&apos;.
ls_iconset5-cfvo2_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset5-cfvo2_value = &apos;20&apos;.
ls_iconset5-cfvo3_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset5-cfvo3_value = &apos;40&apos;.
ls_iconset5-cfvo4_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset5-cfvo4_value = &apos;60&apos;.
ls_iconset5-cfvo5_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset5-cfvo5_value = &apos;80&apos;.
ls_iconset5-showvalue = zcl_excel_style_conditional=&gt;c_showvalue_true.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=&gt;c_iconset_3arrows.
lo_style_conditional-&gt;mode_iconset = ls_iconset3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos;
ip_start_row = 5
ip_stop_column = &apos;B&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_3ARROWS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;B&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;B&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;B&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;B&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=&gt;c_iconset_3arrowsgray.
lo_style_conditional-&gt;mode_iconset = ls_iconset3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 5
ip_stop_column = &apos;C&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_3ARROWSGRAY&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;C&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=&gt;c_iconset_3flags.
lo_style_conditional-&gt;mode_iconset = ls_iconset3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos;
ip_start_row = 5
ip_stop_column = &apos;D&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_3FLAGS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;D&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;D&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;D&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;D&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;D&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights.
lo_style_conditional-&gt;mode_iconset = ls_iconset3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos;
ip_start_row = 5
ip_stop_column = &apos;E&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_3TRAFFICLIGHTS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;E&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;E&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;E&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;E&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;E&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2.
lo_style_conditional-&gt;mode_iconset = ls_iconset3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;F&apos;
ip_start_row = 5
ip_stop_column = &apos;F&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;F&apos; ip_value = &apos;C_ICONSET_3TRAFFICLIGHTS2&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;F&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;F&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;F&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;F&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;F&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=&gt;c_iconset_3signs.
lo_style_conditional-&gt;mode_iconset = ls_iconset3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;G&apos;
ip_start_row = 5
ip_stop_column = &apos;G&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;G&apos; ip_value = &apos;C_ICONSET_3SIGNS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;G&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;G&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;G&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;G&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;G&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=&gt;c_iconset_3symbols.
lo_style_conditional-&gt;mode_iconset = ls_iconset3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;H&apos;
ip_start_row = 5
ip_stop_column = &apos;H&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;H&apos; ip_value = &apos;C_ICONSET_3SYMBOLS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;H&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;H&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;H&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;H&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;H&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=&gt;c_iconset_3symbols2.
lo_style_conditional-&gt;mode_iconset = ls_iconset3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;I&apos;
ip_start_row = 5
ip_stop_column = &apos;I&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;I&apos; ip_value = &apos;C_ICONSET_3SYMBOLS2&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;I&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;I&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;I&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;I&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;I&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=&gt;c_iconset_4arrows.
lo_style_conditional-&gt;mode_iconset = ls_iconset4.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos;
ip_start_row = 12
ip_stop_column = &apos;B&apos;
ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_4ARROWS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;B&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;B&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;B&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;B&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;B&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=&gt;c_iconset_4arrowsgray.
lo_style_conditional-&gt;mode_iconset = ls_iconset4.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 12
ip_stop_column = &apos;C&apos;
ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_4ARROWSGRAY&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;C&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;C&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;C&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;C&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;C&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=&gt;c_iconset_4redtoblack.
lo_style_conditional-&gt;mode_iconset = ls_iconset4.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos;
ip_start_row = 12
ip_stop_column = &apos;D&apos;
ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_4REDTOBLACK&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;D&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;D&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;D&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;D&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;D&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=&gt;c_iconset_4rating.
lo_style_conditional-&gt;mode_iconset = ls_iconset4.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos;
ip_start_row = 12
ip_stop_column = &apos;E&apos;
ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_4RATING&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;E&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;E&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;E&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;E&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;E&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=&gt;c_iconset_4trafficlights.
lo_style_conditional-&gt;mode_iconset = ls_iconset4.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;F&apos;
ip_start_row = 12
ip_stop_column = &apos;F&apos;
ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;F&apos; ip_value = &apos;C_ICONSET_4TRAFFICLIGHTS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;F&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;F&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;F&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;F&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;F&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrows.
lo_style_conditional-&gt;mode_iconset = ls_iconset5.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos;
ip_start_row = 19
ip_stop_column = &apos;B&apos;
ip_stop_row = 23 ).
lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_5ARROWS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;B&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;B&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;B&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;B&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;B&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrowsgray.
lo_style_conditional-&gt;mode_iconset = ls_iconset5.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 19
ip_stop_column = &apos;C&apos;
ip_stop_row = 23 ).
lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_5ARROWSGRAY&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;C&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;C&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;C&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;C&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;C&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=&gt;c_iconset_5rating.
lo_style_conditional-&gt;mode_iconset = ls_iconset5.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos;
ip_start_row = 19
ip_stop_column = &apos;D&apos;
ip_stop_row = 23 ).
lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_5RATING&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;D&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;D&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;D&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;D&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;D&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=&gt;c_iconset_5quarters.
lo_style_conditional-&gt;mode_iconset = ls_iconset5.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos;
ip_start_row = 19
ip_stop_column = &apos;E&apos;
ip_stop_row = 23 ).
lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_5QUARTERS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;E&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;E&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;E&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;E&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;E&apos; ip_value = 50 ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL8" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Define a range" LENGTH="31 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL8
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel8.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range.
DATA: lv_title TYPE zexcel_sheet_title.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;08_Range.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lv_title = &apos;Sheet1&apos;.
lo_worksheet-&gt;set_title( lv_title ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;range&apos;.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;C&apos;
ip_start_row = 4
ip_stop_column = &apos;C&apos;
ip_stop_row = 8 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;Apple&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;Banana&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = &apos;Blueberry&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;Ananas&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;Grapes&apos; ).
&quot; Define another Range with a name longer than 40 characters that
&quot; tests the fix of issue #168 ranges namescan be only up to 20 chars
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;A_range_with_a_name_that_is_longer_than_20_characters&apos;.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;D&apos;
ip_start_row = 4
ip_stop_column = &apos;D&apos;
ip_stop_row = 5 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;Range Value 1&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;D&apos; ip_value = &apos;Range Value 2&apos; ).
&quot; issue #163
&quot; Define another Range with sheet visibility
lo_range = lo_worksheet-&gt;add_new_range( ).
lo_range-&gt;name = &apos;A_range_with_sheet_visibility&apos;.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;E&apos;
ip_start_row = 4
ip_stop_column = &apos;E&apos;
ip_stop_row = 5 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;E&apos; ip_value = &apos;Range Value 3&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;E&apos; ip_value = &apos;Range Value 4&apos; ).
&quot; issue #163
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL9" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Data validations" LENGTH="33 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_SBOOK" ENTRY=" Export SBOOK to Excel?" LENGTH="30 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL9
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp; abap2xlsx Demo: Data validations
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel9.
CONSTANTS: c_fruits TYPE string VALUE &apos;Fruits&apos;,
c_vegetables TYPE string VALUE &apos;Vegetables&apos;,
c_meat TYPE string VALUE &apos;Meat&apos;,
c_fish TYPE string VALUE &apos;Fish&apos;.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: row TYPE zexcel_cell_row.
DATA: lv_title TYPE zexcel_sheet_title.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;09_DataValidation.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_sbook TYPE flag.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lv_title = &apos;Data Validation&apos;.
lo_worksheet-&gt;set_title( lv_title ).
&quot; Set values for dropdown
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;A&apos; ip_value = c_fish ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = &apos;Anchovy&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = &apos;Carp&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;A&apos; ip_value = &apos;Catfish&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = &apos;Cod&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = &apos;Eel&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;A&apos; ip_value = &apos;Haddock&apos; ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = c_fish.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;A&apos;
ip_start_row = 4
ip_stop_column = &apos;A&apos;
ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;B&apos; ip_value = c_meat ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;Pork&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;B&apos; ip_value = &apos;Beef&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = &apos;Chicken&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;B&apos; ip_value = &apos;Turkey&apos; ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = c_meat.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;B&apos;
ip_start_row = 4
ip_stop_column = &apos;B&apos;
ip_stop_row = 7 ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;C&apos; ip_value = c_fruits ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;Apple&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;Banana&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = &apos;Blueberry&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;Ananas&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;Grapes&apos; ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = c_fruits.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;C&apos;
ip_start_row = 4
ip_stop_column = &apos;C&apos;
ip_stop_row = 8 ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;D&apos; ip_value = c_vegetables ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;Cucumber&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;D&apos; ip_value = &apos;Sweet pepper &apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;D&apos; ip_value = &apos;Lettuce&apos; ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = c_vegetables.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;D&apos;
ip_start_row = 4
ip_stop_column = &apos;D&apos;
ip_stop_row = 6 ).
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lv_title = &apos;Table with Data Validation&apos;.
lo_worksheet-&gt;set_title( lv_title ).
&quot; Maximum Text length
lo_worksheet-&gt;set_cell( ip_row = 1 ip_column = &apos;A&apos; ip_value = &apos;Validate Maximum Text length of &lt;= 10 in Cell A2:&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;A&apos; ip_value = &apos;abcdefghij&apos; ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_textlength.
lo_data_validation-&gt;operator = zcl_excel_data_validation=&gt;c_operator_lessthanorequal.
lo_data_validation-&gt;formula1 = 10.
lo_data_validation-&gt;cell_row = 2.
lo_data_validation-&gt;cell_column = &apos;A&apos;.
&quot; Integer Value between 1 and 10
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = &apos;Validate Integer Value between 1 and 10 in Cell A5:&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = &apos;5&apos; ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_whole.
lo_data_validation-&gt;operator = zcl_excel_data_validation=&gt;c_operator_between.
lo_data_validation-&gt;formula1 = 1.
lo_data_validation-&gt;formula2 = 10.
lo_data_validation-&gt;prompttitle = &apos;Range&apos;.
lo_data_validation-&gt;prompt = &apos;Enter a value between 1 and 10&apos;.
lo_data_validation-&gt;errortitle = &apos;Error&apos;.
lo_data_validation-&gt;error = &apos;You have entered a wrong value. Please use only numbers between 1 and 10.&apos;.
lo_data_validation-&gt;cell_row = 5.
lo_data_validation-&gt;cell_column = &apos;A&apos;.
&quot; Evaluation by Formula from issue #161
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = &apos;Validate if B8 contains a &quot;-&quot;:&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = &apos;Text&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;B&apos; ip_value = &apos;-&apos; ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_custom.
lo_data_validation-&gt;formula1 = &apos;&quot;IF(B8&lt;&gt;&quot;&quot;&quot;&quot;;INDIRECT(LEFT(B8;SEARCH(&quot;&quot;-&quot;&quot;;B8;1)));EMPTY)&quot;&apos;.
lo_data_validation-&gt;cell_row = 8.
lo_data_validation-&gt;cell_column = &apos;A&apos;.
&quot; There was an error when data validation was combined with cell merges this should test that:
lo_worksheet-&gt;set_cell( ip_row = 10 ip_column = &apos;A&apos; ip_value = &apos;Demo for data validation with a dropdown list&apos; ).
lo_worksheet-&gt;set_merge( ip_row = 10 ip_column_start = &apos;A&apos; ip_column_end = &apos;F&apos; ).
&quot; Headlines
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;A&apos; ip_value = c_fruits ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;B&apos; ip_value = c_vegetables ).
row = 12.
WHILE row &lt; 20. &quot; Starting with 14500 the data validation is dropped 14000 are still ok
&quot; 1st validation
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = c_fruits.
lo_data_validation-&gt;cell_row = row.
lo_data_validation-&gt;cell_column = &apos;A&apos;.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;A&apos; ip_value = &apos;Select a value&apos; ).
&quot; 2nd
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = c_vegetables.
lo_data_validation-&gt;cell_row = row.
lo_data_validation-&gt;cell_column = &apos;B&apos;.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;B&apos; ip_value = &apos;Select a value&apos; ).
&quot; 3rd
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = c_meat.
lo_data_validation-&gt;cell_row = row.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
&quot; 4th
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = c_fish.
lo_data_validation-&gt;cell_row = row.
lo_data_validation-&gt;cell_column = &apos;D&apos;.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;D&apos; ip_value = &apos;Select a value&apos; ).
&quot; Increment row
row = row + 1.
ENDWHILE.
IF p_sbook = abap_true.
DATA: bookings type TABLE OF sbook.
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lv_title = &apos;SBOOK&apos;.
lo_worksheet-&gt;set_title( lv_title ).
SELECT * from sbook INTO TABLE bookings UP TO 4000 ROWS.
lo_worksheet-&gt;bind_table(
EXPORTING
ip_table = bookings
* it_field_catalog = &quot; Table binding field catalog
* is_table_settings = &quot; Excel table binding settings
* IMPORTING
* es_table_settings = &quot; Excel table binding settings
).
ENDIF.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL_OUTPUTOPT_INCL" VARCL="X" SUBC="I" RMAND="007" RLOAD="E" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Include ZDEMO_EXCEL_OUTPUTOPT_INCL" LENGTH="34 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Include ZDEMO_EXCEL_OUTPUTOPT_INCL
*&amp;---------------------------------------------------------------------*
CLASS lcl_output DEFINITION CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS: output IMPORTING cl_excel TYPE REF TO zcl_excel,
f4_path RETURNING value(selected_folder) TYPE string,
parametertexts.
PRIVATE SECTION.
METHODS: download_frontend,
download_backend,
display_online,
send_email.
DATA: xdata TYPE xstring, &quot; Will be used for sending as email
t_rawdata TYPE solix_tab, &quot; Will be used for downloading or open directly
bytecount TYPE i. &quot; Will be used for downloading or open directly
ENDCLASS. &quot;lcl_output DEFINITION
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE txt_bl1.
PARAMETERS: rb_down RADIOBUTTON GROUP rb1 DEFAULT &apos;X&apos; USER-COMMAND space.
PARAMETERS: rb_back RADIOBUTTON GROUP rb1.
PARAMETERS: rb_show RADIOBUTTON GROUP rb1.
PARAMETERS: rb_send RADIOBUTTON GROUP rb1.
PARAMETERS: p_path TYPE string LOWER CASE MODIF ID pat.
PARAMETERS: p_email TYPE string LOWER CASE MODIF ID ema.
PARAMETERS: p_backfn TYPE text40 NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK bl1.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF rb_down IS INITIAL AND screen-group1 = &apos;PAT&apos;.
screen-input = 0.
screen-invisible = 1.
ENDIF.
IF rb_send IS INITIAL AND screen-group1 = &apos;EMA&apos;.
screen-input = 0.
screen-invisible = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
INITIALIZATION.
IF sy-batch IS INITIAL.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = p_path ).
cl_gui_cfw=&gt;flush( ).
ENDIF.
lcl_output=&gt;parametertexts( ). &quot; If started in language w/o textelements translated set defaults
sy-title = gc_save_file_name.
txt_bl1 = &apos;Output options&apos;(bl1).
p_backfn = gc_save_file_name. &quot; Use as default if nothing else is supplied by submit
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
p_path = lcl_output=&gt;f4_path( ).
*----------------------------------------------------------------------*
* CLASS lcl_output IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_output IMPLEMENTATION.
METHOD output.
DATA: cl_output TYPE REF TO lcl_output,
cl_writer TYPE REF TO zif_excel_writer.
CREATE OBJECT cl_output.
CREATE OBJECT cl_writer TYPE zcl_excel_writer_2007.
cl_output-&gt;xdata = cl_writer-&gt;write_file( cl_excel ).
* After 6.40 via cl_bcs_convert
cl_output-&gt;t_rawdata = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = cl_output-&gt;xdata ).
cl_output-&gt;bytecount = xstrlen( cl_output-&gt;xdata ).
* before 6.40
* CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
* EXPORTING
* buffer = cl_output-&gt;xdata
* IMPORTING
* output_length = cl_output-&gt;bytecount
* TABLES
* binary_tab = cl_output-&gt;t_rawdata.
CASE &apos;X&apos;.
WHEN rb_down.
IF sy-batch IS INITIAL.
cl_output-&gt;download_frontend( ).
ELSE.
MESSAGE e001(00) WITH &apos;Frontenddownload impossible in background processing&apos;.
ENDIF.
WHEN rb_back.
cl_output-&gt;download_backend( ).
WHEN rb_show.
IF sy-batch IS INITIAL.
cl_output-&gt;display_online( ).
ELSE.
MESSAGE e001(00) WITH &apos;Online display absurd in background processing&apos;.
ENDIF.
WHEN rb_send.
cl_output-&gt;send_email( ).
ENDCASE.
ENDMETHOD. &quot;output
METHOD f4_path.
DATA: new_path TYPE string,
repid TYPE syrepid,
dynnr TYPE sydynnr,
lt_dynpfields TYPE TABLE OF dynpread,
ls_dynpfields LIKE LINE OF lt_dynpfields.
* Get current value
dynnr = sy-dynnr.
repid = sy-repid.
ls_dynpfields-fieldname = &apos;P_PATH&apos;.
APPEND ls_dynpfields TO lt_dynpfields.
CALL FUNCTION &apos;DYNP_VALUES_READ&apos;
EXPORTING
dyname = repid
dynumb = dynnr
TABLES
dynpfields = lt_dynpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc &lt;&gt; 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.
READ TABLE lt_dynpfields INTO ls_dynpfields INDEX 1.
new_path = ls_dynpfields-fieldvalue.
selected_folder = new_path.
cl_gui_frontend_services=&gt;directory_browse(
EXPORTING
window_title = &apos;Select path to download EXCEL-file&apos;
initial_folder = new_path
CHANGING
selected_folder = new_path
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4
).
cl_gui_cfw=&gt;flush( ).
CHECK new_path IS NOT INITIAL.
selected_folder = new_path.
ENDMETHOD. &quot;f4_path
METHOD parametertexts.
* If started in language w/o textelements translated set defaults
* Furthermore I don&apos;t have to change the selectiontexts of all demoreports.
DEFINE default_parametertext.
if %_&amp;1_%_app_%-text = &apos;&amp;1&apos; or
%_&amp;1_%_app_%-text is initial.
%_&amp;1_%_app_%-text = &amp;2.
endif.
END-OF-DEFINITION.
default_parametertext: rb_down &apos;Save to frontend&apos;,
rb_back &apos;Save to backend&apos;,
rb_show &apos;Direct display&apos;,
rb_send &apos;Send via email&apos;,
p_path &apos;Frontend-path to download to&apos;,
p_email &apos;Email to send xlsx to&apos;.
ENDMETHOD. &quot;parametertexts
METHOD: download_frontend.
DATA: filename TYPE string.
* I don&apos;t like p_path here - but for this include it&apos;s ok
filename = p_path.
* Add trailing &quot;\&quot; or &quot;/&quot;
IF filename CA &apos;/&apos;.
REPLACE REGEX &apos;([^/])\s*$&apos; IN filename WITH &apos;$1/&apos; .
ELSE.
REPLACE REGEX &apos;([^\\])\s*$&apos; IN filename WITH &apos;$1\\&apos;.
ENDIF.
CONCATENATE filename gc_save_file_name INTO filename.
* Get trailing blank
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = bytecount
filename = filename
filetype = &apos;BIN&apos;
CHANGING data_tab = t_rawdata ).
ENDMETHOD. &quot;download_frontend
METHOD download_backend.
DATA: bytes_remain TYPE i.
FIELD-SYMBOLS: &lt;rawdata&gt; LIKE LINE OF t_rawdata.
OPEN DATASET p_backfn FOR OUTPUT IN BINARY MODE.
CHECK sy-subrc = 0.
bytes_remain = bytecount.
LOOP AT t_rawdata ASSIGNING &lt;rawdata&gt;.
AT LAST.
CHECK bytes_remain &gt;= 0.
TRANSFER &lt;rawdata&gt; TO p_backfn LENGTH bytes_remain.
EXIT.
ENDAT.
TRANSFER &lt;rawdata&gt; TO p_backfn.
SUBTRACT 255 FROM bytes_remain. &quot; Solix hat Länge 255
ENDLOOP.
CLOSE DATASET p_backfn.
IF sy-calld = &apos;X&apos;. &quot; no need to display anything if download was selected and report was called for demo purposes
LEAVE PROGRAM.
ELSE.
MESSAGE &apos;Data transferred to default backend directory&apos; TYPE &apos;I&apos;.
ENDIF.
ENDMETHOD. &quot;download_backend
METHOD display_online.
DATA:error TYPE REF TO i_oi_error,
t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
cl_control TYPE REF TO i_oi_container_control,&quot;OIContainerCtrl
cl_document TYPE REF TO i_oi_document_proxy. &quot;Office Dokument
c_oi_container_control_creator=&gt;get_container_control( IMPORTING control = cl_control
error = error ).
APPEND error TO t_errors.
cl_control-&gt;init_control( EXPORTING inplace_enabled = &apos;X&apos;
no_flush = &apos;X&apos;
r3_application_name = &apos;Demo Document Container&apos;
parent = cl_gui_container=&gt;screen0
IMPORTING error = error
EXCEPTIONS OTHERS = 2 ).
APPEND error TO t_errors.
cl_control-&gt;get_document_proxy( EXPORTING document_type = &apos;Excel.Sheet&apos; &quot; EXCEL
no_flush = &apos; &apos;
IMPORTING document_proxy = cl_document
error = error ).
APPEND error TO t_errors.
* Errorhandling should be inserted here
cl_document-&gt;open_document_from_table( EXPORTING document_size = bytecount
document_table = t_rawdata
open_inplace = &apos;X&apos; ).
WRITE: &apos;.&apos;. &quot; To create an output. That way screen0 will exist
ENDMETHOD. &quot;display_online
METHOD send_email.
* Needed to send emails
DATA: bcs_exception TYPE REF TO cx_bcs,
errortext TYPE string,
cl_send_request TYPE REF TO cl_bcs,
cl_document TYPE REF TO cl_document_bcs,
cl_recipient TYPE REF TO if_recipient_bcs,
cl_sender TYPE REF TO cl_cam_address_bcs,
t_attachment_header TYPE soli_tab,
wa_attachment_header LIKE LINE OF t_attachment_header,
attachment_subject TYPE sood-objdes,
sood_bytecount TYPE sood-objlen,
mail_title TYPE so_obj_des,
t_mailtext TYPE soli_tab,
wa_mailtext LIKE LINE OF t_mailtext,
send_to TYPE adr6-smtp_addr,
sent TYPE os_boolean.
mail_title = &apos;Mail title&apos;.
wa_mailtext = &apos;Mailtext&apos;.
APPEND wa_mailtext TO t_mailtext.
TRY.
* Create send request
cl_send_request = cl_bcs=&gt;create_persistent( ).
* Create new document with mailtitle and mailtextg
cl_document = cl_document_bcs=&gt;create_document( i_type = &apos;RAW&apos; &quot;#EC NOTEXT
i_text = t_mailtext
i_subject = mail_title ).
* Add attachment to document
* since the new excelfiles have an 4-character extension .xlsx but the attachment-type only holds 3 charactes .xls,
* we have to specify the real filename via attachment header
* Use attachment_type xls to have SAP display attachment with the excel-icon
attachment_subject = gc_save_file_name.
CONCATENATE &apos;&amp;SO_FILENAME=&apos; attachment_subject INTO wa_attachment_header.
APPEND wa_attachment_header TO t_attachment_header.
* Attachment
sood_bytecount = bytecount. &quot; next method expects sood_bytecount instead of any positive integer *sigh*
cl_document-&gt;add_attachment( i_attachment_type = &apos;XLS&apos; &quot;#EC NOTEXT
i_attachment_subject = attachment_subject
i_attachment_size = sood_bytecount
i_att_content_hex = t_rawdata
i_attachment_header = t_attachment_header ).
* add document to send request
cl_send_request-&gt;set_document( cl_document ).
* set sender in case if no own email is availabe
* cl_sender = cl_cam_address_bcs=&gt;create_internet_address( &apos;sender@sender.sender&apos; ).
* cl_send_request-&gt;set_sender( cl_sender ).
* add recipient(s) - here only 1 will be needed
send_to = p_email.
IF send_to IS INITIAL.
send_to = &apos;no_email@no_email.no_email&apos;. &quot; Place into SOST in any case for demonstration purposes
ENDIF.
cl_recipient = cl_cam_address_bcs=&gt;create_internet_address( send_to ).
cl_send_request-&gt;add_recipient( cl_recipient ).
* Und abschicken
sent = cl_send_request-&gt;send( i_with_error_screen = &apos;X&apos; ).
COMMIT WORK.
IF sent IS INITIAL.
MESSAGE i500(sbcoms) WITH p_email.
ELSE.
MESSAGE s022(so).
MESSAGE &apos;Document ready to be sent - Check SOST or SCOT&apos; TYPE &apos;I&apos;.
ENDIF.
CATCH cx_bcs INTO bcs_exception.
errortext = bcs_exception-&gt;if_message~get_text( ).
MESSAGE errortext TYPE &apos;I&apos;.
ENDTRY.
ENDMETHOD. &quot;send_email
ENDCLASS. &quot;lcl_output IMPLEMENTATION</source>
</PROG>
<PROG NAME="ZDEMO_TECHED1" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED1
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched1.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* Selection screen management *
*******************************
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo01&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED10" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched3.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_reader TYPE REF TO zif_excel_reader,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: lt_files TYPE filetable,
ls_file TYPE file_table,
lv_rc TYPE i,
lv_value TYPE zexcel_cell_value.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
*******************************
* abap2xlsx read XLSX *
*******************************
CREATE OBJECT lo_excel_reader TYPE zcl_excel_reader_2007.
lo_excel = lo_excel_reader-&gt;load_file( lv_full_path ).
lo_excel-&gt;set_active_sheet_index( 1 ).
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;get_cell( EXPORTING ip_column = &apos;C&apos;
ip_row = 10
IMPORTING ep_value = lv_value ).
WRITE: &apos;abap2xlsx total score is &apos;, lv_value.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED2" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED2
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched2.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lv_style_title_guid TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* Selection screen management *
*******************************
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Styles
lo_style_title = lo_excel-&gt;add_new_style( ).
lo_style_title-&gt;font-&gt;bold = abap_true.
lo_style_title-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_blue.
lv_style_title_guid = lo_style_title-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo TechEd&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;TechEd demo&apos; ip_style = lv_style_title_guid ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED3" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched3.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* Selection screen management *
*******************************
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Styles
lo_style_title = lo_excel-&gt;add_new_style( ).
lo_style_title-&gt;font-&gt;bold = abap_true.
lo_style_title-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_blue.
lv_style_title_guid = lo_style_title-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo TechEd&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;TechEd demo&apos; ip_style = lv_style_title_guid ).
&quot; add logo from SMWO
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 2
ip_from_col = &apos;B&apos; ).
ls_key-relid = &apos;MI&apos;.
ls_key-objid = &apos;WBLOGO&apos;.
lo_drawing-&gt;set_media_www( ip_key = ls_key
ip_width = 140
ip_height = 64 ).
&quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED4" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched3.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* Selection screen management *
*******************************
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Styles
lo_style_title = lo_excel-&gt;add_new_style( ).
lo_style_title-&gt;font-&gt;bold = abap_true.
lo_style_title-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_blue.
lv_style_title_guid = lo_style_title-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo TechEd&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;TechEd demo&apos; ip_style = lv_style_title_guid ).
&quot; add logo from SMWO
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 2
ip_from_col = &apos;B&apos; ).
ls_key-relid = &apos;MI&apos;.
ls_key-objid = &apos;WBLOGO&apos;.
lo_drawing-&gt;set_media_www( ip_key = ls_key
ip_width = 140
ip_height = 64 ).
&quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; Add new sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Values&apos; ).
&quot; Set values for range
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = 1 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = 2 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;A&apos; ip_value = 3 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = 4 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = 5 ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;Values&apos;.
lo_range-&gt;set_value( ip_sheet_name = &apos;Values&apos;
ip_start_column = &apos;A&apos;
ip_start_row = 4
ip_stop_column = &apos;A&apos;
ip_stop_row = 8 ).
lo_excel-&gt;set_active_sheet_index( 1 ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED5" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched3.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* Selection screen management *
*******************************
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Styles
lo_style_title = lo_excel-&gt;add_new_style( ).
lo_style_title-&gt;font-&gt;bold = abap_true.
lo_style_title-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_blue.
lv_style_title_guid = lo_style_title-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo TechEd&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;TechEd demo&apos; ip_style = lv_style_title_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 7 ip_value = &apos;Is abap2xlsx simple&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Is abap2xlsx CooL&apos; ).
&quot; add logo from SMWO
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 2
ip_from_col = &apos;B&apos; ).
ls_key-relid = &apos;MI&apos;.
ls_key-objid = &apos;WBLOGO&apos;.
lo_drawing-&gt;set_media_www( ip_key = ls_key
ip_width = 140
ip_height = 64 ).
&quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; Add new sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Values&apos; ).
&quot; Set values for range
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = 1 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = 2 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;A&apos; ip_value = 3 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = 4 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = 5 ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;Values&apos;.
lo_range-&gt;set_value( ip_sheet_name = &apos;Values&apos;
ip_start_column = &apos;A&apos;
ip_start_row = 4
ip_stop_column = &apos;A&apos;
ip_stop_row = 8 ).
lo_excel-&gt;set_active_sheet_index( 1 ).
&quot; add data validation
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 7.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 8.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED6" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched3.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* Selection screen management *
*******************************
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Styles
lo_style_title = lo_excel-&gt;add_new_style( ).
lo_style_title-&gt;font-&gt;bold = abap_true.
lo_style_title-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_blue.
lv_style_title_guid = lo_style_title-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo TechEd&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;TechEd demo&apos; ip_style = lv_style_title_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 7 ip_value = &apos;Is abap2xlsx simple&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Is abap2xlsx CooL&apos; ).
&quot; add logo from SMWO
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 2
ip_from_col = &apos;B&apos; ).
ls_key-relid = &apos;MI&apos;.
ls_key-objid = &apos;WBLOGO&apos;.
lo_drawing-&gt;set_media_www( ip_key = ls_key
ip_width = 140
ip_height = 64 ).
&quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; Add new sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Values&apos; ).
&quot; Set values for range
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = 1 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = 2 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;A&apos; ip_value = 3 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = 4 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = 5 ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;Values&apos;.
lo_range-&gt;set_value( ip_sheet_name = &apos;Values&apos;
ip_start_column = &apos;A&apos;
ip_start_row = 4
ip_stop_column = &apos;A&apos;
ip_stop_row = 8 ).
lo_excel-&gt;set_active_sheet_index( 1 ).
&quot; add data validation
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 7.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 8.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
&quot; add autosize (column width)
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;C&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED7" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched3.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* Selection screen management *
*******************************
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Styles
lo_style_title = lo_excel-&gt;add_new_style( ).
lo_style_title-&gt;font-&gt;bold = abap_true.
lo_style_title-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_blue.
lv_style_title_guid = lo_style_title-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo TechEd&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;TechEd demo&apos; ip_style = lv_style_title_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 7 ip_value = &apos;Is abap2xlsx simple&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Is abap2xlsx CooL&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 10 ip_value = &apos;Total score&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 10 ip_formula = &apos;SUM(C7:C8)&apos; ).
&quot; add logo from SMWO
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 2
ip_from_col = &apos;B&apos; ).
ls_key-relid = &apos;MI&apos;.
ls_key-objid = &apos;WBLOGO&apos;.
lo_drawing-&gt;set_media_www( ip_key = ls_key
ip_width = 140
ip_height = 64 ).
&quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; Add new sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Values&apos; ).
&quot; Set values for range
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = 1 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = 2 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;A&apos; ip_value = 3 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = 4 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = 5 ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;Values&apos;.
lo_range-&gt;set_value( ip_sheet_name = &apos;Values&apos;
ip_start_column = &apos;A&apos;
ip_start_row = 4
ip_stop_column = &apos;A&apos;
ip_stop_row = 8 ).
lo_excel-&gt;set_active_sheet_index( 1 ).
&quot; add data validation
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 7.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 8.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
&quot; add autosize (column width)
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;C&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED8" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched3.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_style_green TYPE REF TO zcl_excel_style,
lo_style_yellow TYPE REF TO zcl_excel_style,
lo_style_red TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
lv_style_yellow_guid TYPE zexcel_cell_style,
lv_style_red_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* Selection screen management *
*******************************
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Styles
lo_style_title = lo_excel-&gt;add_new_style( ).
lo_style_title-&gt;font-&gt;bold = abap_true.
lo_style_title-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_blue.
lv_style_title_guid = lo_style_title-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo TechEd&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;TechEd demo&apos; ip_style = lv_style_title_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 7 ip_value = &apos;Is abap2xlsx simple&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Is abap2xlsx CooL&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 10 ip_value = &apos;Total score&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 10 ip_formula = &apos;SUM(C7:C8)&apos; ).
&quot; add logo from SMWO
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 2
ip_from_col = &apos;B&apos; ).
* ls_key-relid = &apos;MI&apos;.
* ls_key-objid = &apos;WBLOGO&apos;.
* lo_drawing-&gt;set_media_www( ip_key = ls_key
* ip_width = 140
* ip_height = 64 ).
&quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; Add new sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Values&apos; ).
&quot; Set values for range
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = 1 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = 2 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;A&apos; ip_value = 3 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = 4 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = 5 ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;Values&apos;.
lo_range-&gt;set_value( ip_sheet_name = &apos;Values&apos;
ip_start_column = &apos;A&apos;
ip_start_row = 4
ip_stop_column = &apos;A&apos;
ip_stop_row = 8 ).
lo_excel-&gt;set_active_sheet_index( 1 ).
&quot; add data validation
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 7.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 8.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
&quot; add autosize (column width)
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;C&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
&quot; defne conditional styles
lo_style_green = lo_excel-&gt;add_new_style( ).
lo_style_green-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_green-&gt;fill-&gt;bgcolor-rgb = zcl_excel_style_color=&gt;c_green.
lv_style_green_guid = lo_style_green-&gt;get_guid( ).
lo_style_yellow = lo_excel-&gt;add_new_style( ).
lo_style_yellow-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_yellow-&gt;fill-&gt;bgcolor-rgb = zcl_excel_style_color=&gt;c_yellow.
lv_style_yellow_guid = lo_style_yellow-&gt;get_guid( ).
lo_style_red = lo_excel-&gt;add_new_style( ).
lo_style_red-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_red-&gt;fill-&gt;bgcolor-rgb = zcl_excel_style_color=&gt;c_red.
lv_style_red_guid = lo_style_red-&gt;get_guid( ).
&quot; add conditional formatting
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis-formula = &apos;5&apos;.
ls_cellis-operator = zcl_excel_style_conditional=&gt;c_operator_greaterthan.
ls_cellis-cell_style = lv_style_green_guid.
lo_style_conditional-&gt;mode_cellis = ls_cellis.
lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 10
ip_stop_column = &apos;C&apos;
ip_stop_row = 10 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis-formula = &apos;5&apos;.
ls_cellis-operator = zcl_excel_style_conditional=&gt;c_operator_equal.
ls_cellis-cell_style = lv_style_yellow_guid.
lo_style_conditional-&gt;mode_cellis = ls_cellis.
lo_style_conditional-&gt;priority = 2.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 10
ip_stop_column = &apos;C&apos;
ip_stop_row = 10 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis-formula = &apos;0&apos;.
ls_cellis-operator = zcl_excel_style_conditional=&gt;c_operator_greaterthan.
ls_cellis-cell_style = lv_style_red_guid.
lo_style_conditional-&gt;mode_cellis = ls_cellis.
lo_style_conditional-&gt;priority = 3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 10
ip_stop_column = &apos;C&apos;
ip_stop_row = 10 ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_TECHED9" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_TECHED3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_teched3.
*******************************
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_style_green TYPE REF TO zcl_excel_style,
lo_style_yellow TYPE REF TO zcl_excel_style,
lo_style_red TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
lv_style_yellow_guid TYPE zexcel_cell_style,
lv_style_red_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis,
ls_key TYPE wwwdatatab.
DATA: lo_send_request TYPE REF TO cl_bcs,
lo_document TYPE REF TO cl_document_bcs,
lo_sender TYPE REF TO cl_sapuser_bcs,
lo_recipient TYPE REF TO cl_sapuser_bcs,
lo_recipient_i TYPE REF TO CL_CAM_ADDRESS_BCS.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lv_bytecount_c TYPE sood-objlen,
lt_file_tab TYPE solix_tab.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;TechEd01.xlsx&apos;.
*******************************
* abap2xlsx create XLSX *
*******************************
&quot; Create excel instance
CREATE OBJECT lo_excel.
&quot; Styles
lo_style_title = lo_excel-&gt;add_new_style( ).
lo_style_title-&gt;font-&gt;bold = abap_true.
lo_style_title-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_blue.
lv_style_title_guid = lo_style_title-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo TechEd&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;TechEd demo&apos; ip_style = lv_style_title_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 7 ip_value = &apos;Is abap2xlsx simple&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Is abap2xlsx CooL&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 10 ip_value = &apos;Total score&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 10 ip_formula = &apos;SUM(C7:C8)&apos; ).
&quot; add logo from SMWO
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 2
ip_from_col = &apos;B&apos; ).
ls_key-relid = &apos;MI&apos;.
ls_key-objid = &apos;WBLOGO&apos;.
lo_drawing-&gt;set_media_www( ip_key = ls_key
ip_width = 140
ip_height = 64 ).
&quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; Add new sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Values&apos; ).
&quot; Set values for range
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = 1 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = 2 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;A&apos; ip_value = 3 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = 4 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = 5 ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;Values&apos;.
lo_range-&gt;set_value( ip_sheet_name = &apos;Values&apos;
ip_start_column = &apos;A&apos;
ip_start_row = 4
ip_stop_column = &apos;A&apos;
ip_stop_row = 8 ).
lo_excel-&gt;set_active_sheet_index( 1 ).
&quot; add data validation
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 7.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = &apos;Values&apos;.
lo_data_validation-&gt;cell_row = 8.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
&quot; add autosize (column width)
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;C&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
&quot; defne conditional styles
lo_style_green = lo_excel-&gt;add_new_style( ).
lo_style_green-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_green-&gt;fill-&gt;bgcolor-rgb = zcl_excel_style_color=&gt;c_green.
lv_style_green_guid = lo_style_green-&gt;get_guid( ).
lo_style_yellow = lo_excel-&gt;add_new_style( ).
lo_style_yellow-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_yellow-&gt;fill-&gt;bgcolor-rgb = zcl_excel_style_color=&gt;c_yellow.
lv_style_yellow_guid = lo_style_yellow-&gt;get_guid( ).
lo_style_red = lo_excel-&gt;add_new_style( ).
lo_style_red-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_red-&gt;fill-&gt;bgcolor-rgb = zcl_excel_style_color=&gt;c_red.
lv_style_red_guid = lo_style_red-&gt;get_guid( ).
&quot; add conditional formatting
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis-formula = &apos;5&apos;.
ls_cellis-operator = zcl_excel_style_conditional=&gt;c_operator_greaterthan.
ls_cellis-cell_style = lv_style_green_guid.
lo_style_conditional-&gt;mode_cellis = ls_cellis.
lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 10
ip_stop_column = &apos;C&apos;
ip_stop_row = 10 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis-formula = &apos;5&apos;.
ls_cellis-operator = zcl_excel_style_conditional=&gt;c_operator_equal.
ls_cellis-cell_style = lv_style_yellow_guid.
lo_style_conditional-&gt;mode_cellis = ls_cellis.
lo_style_conditional-&gt;priority = 2.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 10
ip_stop_column = &apos;C&apos;
ip_stop_row = 10 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis-formula = &apos;0&apos;.
ls_cellis-operator = zcl_excel_style_conditional=&gt;c_operator_greaterthan.
ls_cellis-cell_style = lv_style_red_guid.
lo_style_conditional-&gt;mode_cellis = ls_cellis.
lo_style_conditional-&gt;priority = 3.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 10
ip_stop_column = &apos;C&apos;
ip_stop_row = 10 ).
&quot; Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*******************************
* Output *
*******************************
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
lv_bytecount_c = lv_bytecount.
&quot; Send via email
lo_document = cl_document_bcs=&gt;create_document( i_type = &apos;RAW&apos;
i_subject = &apos;Demo TechEd&apos; ).
lo_document-&gt;add_attachment( i_attachment_type = &apos;EXT&apos;
i_attachment_subject = &apos;abap2xlsx.xlsx&apos;
i_attachment_size = lv_bytecount_c
i_att_content_hex = lt_file_tab ).
lo_sender = cl_sapuser_bcs=&gt;create( sy-uname ).
lo_recipient = cl_sapuser_bcs=&gt;create( sy-uname ).
* lo_recipient_i = cl_cam_address_bcs=&gt;create_internet_address( &apos;ivan.femia@techedge.it&apos; ).
lo_send_request = cl_bcs=&gt;create_persistent( ).
lo_send_request-&gt;set_document( lo_document ).
lo_send_request-&gt;set_sender( lo_sender ).
lo_send_request-&gt;add_recipient( lo_recipient ).
lo_send_request-&gt;set_send_immediately( abap_true ).
lo_send_request-&gt;send( ).</source>
</PROG>
<PROG NAME="ZABAP2XLSX_DEMO_SHOW" VARCL="X" SUBC="1" RSTAT="T" RMAND="007" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo Show" LENGTH="19 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZABAP2XLSX_DEMO_SHOW
*&amp;---------------------------------------------------------------------*
REPORT zabap2xlsx_demo_like_se83.
*----------------------------------------------------------------------*
* CLASS lcl_perform DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_perform DEFINITION CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS: setup_objects,
collect_reports,
handle_nav FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row.
PRIVATE SECTION.
TYPES: BEGIN OF ty_reports,
progname TYPE reposrc-progname,
sort TYPE reposrc-progname,
filename TYPE string,
END OF ty_reports.
CLASS-DATA:
lo_grid TYPE REF TO cl_gui_alv_grid,
lo_text TYPE REF TO cl_gui_textedit,
cl_document TYPE REF TO i_oi_document_proxy,
t_reports TYPE STANDARD TABLE OF ty_reports WITH NON-UNIQUE DEFAULT KEY.
CLASS-DATA:error TYPE REF TO i_oi_error,
t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
cl_control TYPE REF TO i_oi_container_control. &quot;Office Dokument
ENDCLASS. &quot;lcl_perform DEFINITION
START-OF-SELECTION.
lcl_perform=&gt;collect_reports( ).
lcl_perform=&gt;setup_objects( ).
END-OF-SELECTION.
WRITE &apos;.&apos;. &quot; Force output
*----------------------------------------------------------------------*
* CLASS lcl_perform IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_perform IMPLEMENTATION.
METHOD setup_objects.
DATA: lo_split TYPE REF TO cl_gui_splitter_container,
lo_container TYPE REF TO cl_gui_container.
DATA: it_fieldcat TYPE lvc_t_fcat,
is_layout TYPE lvc_s_layo,
is_variant TYPE disvariant.
FIELD-SYMBOLS: &lt;fc&gt; LIKE LINE OF it_fieldcat.
CREATE OBJECT lo_split
EXPORTING
parent = cl_gui_container=&gt;screen0
rows = 1
columns = 3
no_autodef_progid_dynnr = &apos;X&apos;.
lo_split-&gt;set_column_width( EXPORTING id = 1
width = 20 ).
lo_split-&gt;set_column_width( EXPORTING id = 2
width = 40 ).
* Left: List of reports
lo_container = lo_split-&gt;get_container( row = 1
column = 1 ).
CREATE OBJECT lo_grid
EXPORTING
i_parent = lo_container.
SET HANDLER lcl_perform=&gt;handle_nav FOR lo_grid.
is_variant-report = sy-repid.
is_variant-handle = &apos;0001&apos;.
is_layout-cwidth_opt = &apos;X&apos;.
APPEND INITIAL LINE TO it_fieldcat ASSIGNING &lt;fc&gt;.
&lt;fc&gt;-fieldname = &apos;PROGNAME&apos;.
&lt;fc&gt;-tabname = &apos;REPOSRC&apos;.
APPEND INITIAL LINE TO it_fieldcat ASSIGNING &lt;fc&gt;.
&lt;fc&gt;-fieldname = &apos;SORT&apos;.
&lt;fc&gt;-ref_field = &apos;PROGNAME&apos;.
&lt;fc&gt;-ref_table = &apos;REPOSRC&apos;.
lo_grid-&gt;set_table_for_first_display( EXPORTING
is_variant = is_variant
i_save = &apos;A&apos;
is_layout = is_layout
CHANGING
it_outtab = t_reports
it_fieldcatalog = it_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4 ).
* Middle: Text with coding
lo_container = lo_split-&gt;get_container( row = 1
column = 2 ).
CREATE OBJECT lo_text
EXPORTING
parent = lo_container.
lo_text-&gt;set_readonly_mode( cl_gui_textedit=&gt;true ).
lo_text-&gt;set_font_fixed( ).
* right: DemoOutput
lo_container = lo_split-&gt;get_container( row = 1
column = 3 ).
c_oi_container_control_creator=&gt;get_container_control( IMPORTING control = cl_control
error = error ).
APPEND error TO t_errors.
cl_control-&gt;init_control( EXPORTING inplace_enabled = &apos;X&apos;
no_flush = &apos;X&apos;
r3_application_name = &apos;Demo Document Container&apos;
parent = lo_container
IMPORTING error = error
EXCEPTIONS OTHERS = 2 ).
APPEND error TO t_errors.
cl_control-&gt;get_document_proxy( EXPORTING document_type = &apos;Excel.Sheet&apos; &quot; EXCEL
no_flush = &apos; &apos;
IMPORTING document_proxy = cl_document
error = error ).
APPEND error TO t_errors.
* Errorhandling should be inserted here
ENDMETHOD. &quot;setup_objects
&quot;collect_reports
METHOD collect_reports.
FIELD-SYMBOLS:&lt;report&gt; LIKE LINE OF t_reports.
DATA: t_source TYPE STANDARD TABLE OF text255 WITH NON-UNIQUE DEFAULT KEY.
* Get all demoreports
SELECT progname
INTO CORRESPONDING FIELDS OF TABLE t_reports
FROM reposrc
WHERE progname LIKE &apos;ZDEMO_EXCEL%&apos;
AND progname &lt;&gt; sy-repid
AND subc = &apos;1&apos;.
LOOP AT t_reports ASSIGNING &lt;report&gt;.
* Check if already switched to new outputoptions
READ REPORT &lt;report&gt;-progname INTO t_source.
IF sy-subrc = 0.
FIND &apos;INCLUDE zdemo_excel_outputopt_incl.&apos; IN TABLE t_source IGNORING CASE.
ENDIF.
IF sy-subrc &lt;&gt; 0.
DELETE t_reports.
CONTINUE.
ENDIF.
* Build half-numeric sort
&lt;report&gt;-sort = &lt;report&gt;-progname.
REPLACE REGEX &apos;(ZDEMO_EXCEL)(\d\d)\s*$&apos; IN &lt;report&gt;-sort WITH &apos;$1\0$2&apos;. &quot; REPLACE REGEX &apos;(ZDEMO_EXCEL)([^][^])*$&apos; IN &lt;report&gt;-sort WITH &apos;$1$2&apos;.REPLACE REGEX &apos;(ZDEMO_EXCEL)([^][^])*$&apos; IN &lt;report&gt;-sort WITH &apos;$1$2&apos;.REPLACE
REPLACE REGEX &apos;(ZDEMO_EXCEL)(\d)\s*$&apos; IN &lt;report&gt;-sort WITH &apos;$1\0\0$2&apos;.
ENDLOOP.
SORT t_reports BY sort progname.
ENDMETHOD. &quot;collect_reports
METHOD handle_nav.
CONSTANTS: filename TYPE text80 VALUE &apos;ZABAP2XLSX_DEMO_SHOW.xlsx&apos;.
DATA: wa_report LIKE LINE OF t_reports,
t_source TYPE STANDARD TABLE OF text255,
t_rawdata TYPE solix_tab,
wa_rawdata LIKE LINE OF t_rawdata,
bytecount TYPE i,
length TYPE i,
add_selopt TYPE flag.
READ TABLE t_reports INTO wa_report INDEX e_row-index.
CHECK sy-subrc = 0.
* Set new text into middle frame
READ REPORT wa_report-progname INTO t_source.
lo_text-&gt;set_text_as_r3table( EXPORTING table = t_source ).
* Unload old xls-file
cl_document-&gt;close_document( ).
* Get the demo
* If additional parameters found on selection screen, start via selection screen , otherwise start w/o
CLEAR add_selopt.
FIND &apos;PARAMETERS&apos; IN TABLE t_source.
IF sy-subrc = 0.
add_selopt = &apos;X&apos;.
ELSE.
FIND &apos;SELECT-OPTIONS&apos; IN TABLE t_source.
IF sy-subrc = 0.
add_selopt = &apos;X&apos;.
ENDIF.
ENDIF.
IF add_selopt IS INITIAL.
SUBMIT (wa_report-progname) AND RETURN
WITH p_backfn = filename
WITH rb_back = &apos;X&apos;
WITH rb_down = &apos; &apos;
WITH rb_send = &apos; &apos;
WITH rb_show = &apos; &apos;.
ELSE.
SUBMIT (wa_report-progname) VIA SELECTION-SCREEN AND RETURN
WITH p_backfn = filename
WITH rb_back = &apos;X&apos;
WITH rb_down = &apos; &apos;
WITH rb_send = &apos; &apos;
WITH rb_show = &apos; &apos;.
ENDIF.
OPEN DATASET filename FOR INPUT IN BINARY MODE.
IF sy-subrc = 0.
DO.
CLEAR wa_rawdata.
READ DATASET filename INTO wa_rawdata LENGTH length.
IF sy-subrc &lt;&gt; 0.
APPEND wa_rawdata TO t_rawdata.
ADD length TO bytecount.
EXIT.
ENDIF.
APPEND wa_rawdata TO t_rawdata.
ADD length TO bytecount.
ENDDO.
CLOSE DATASET filename.
ENDIF.
cl_control-&gt;get_document_proxy( EXPORTING document_type = &apos;Excel.Sheet&apos; &quot; EXCEL
no_flush = &apos; &apos;
IMPORTING document_proxy = cl_document
error = error ).
cl_document-&gt;open_document_from_table( EXPORTING document_size = bytecount
document_table = t_rawdata
open_inplace = &apos;X&apos; ).
ENDMETHOD. &quot;handle_nav
ENDCLASS. &quot;lcl_perform IMPLEMENTATION</source>
</PROG>
<PROG NAME="ZANGRY_BIRDS" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Styles" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZANGRY_BIRDS
*&amp; Just for fun
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zangry_birds.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_border_light TYPE REF TO zcl_excel_style_border,
lo_style_color0 TYPE REF TO zcl_excel_style,
lo_style_color1 TYPE REF TO zcl_excel_style,
lo_style_color2 TYPE REF TO zcl_excel_style,
lo_style_color3 TYPE REF TO zcl_excel_style,
lo_style_color4 TYPE REF TO zcl_excel_style,
lo_style_color5 TYPE REF TO zcl_excel_style,
lo_style_color6 TYPE REF TO zcl_excel_style,
lo_style_color7 TYPE REF TO zcl_excel_style,
lo_style_credit TYPE REF TO zcl_excel_style,
lo_style_link TYPE REF TO zcl_excel_style,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_style_color0_guid TYPE zexcel_cell_style,
lv_style_color1_guid TYPE zexcel_cell_style,
lv_style_color2_guid TYPE zexcel_cell_style,
lv_style_color3_guid TYPE zexcel_cell_style,
lv_style_color4_guid TYPE zexcel_cell_style,
lv_style_color5_guid TYPE zexcel_cell_style,
lv_style_color6_guid TYPE zexcel_cell_style,
lv_style_color7_guid TYPE zexcel_cell_style,
lv_style_credit_guid TYPE zexcel_cell_style,
lv_style_link_guid TYPE zexcel_cell_style,
lv_style TYPE zexcel_cell_style.
DATA: lv_col_str TYPE zexcel_cell_column_alpha,
lv_row TYPE i,
lv_col TYPE i,
lt_mapper TYPE TABLE OF zexcel_cell_style,
ls_mapper TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;angry_birds.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
CREATE OBJECT lo_border_light.
lo_border_light-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_white.
lo_border_light-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
&quot; Create color white
lo_style_color0 = lo_excel-&gt;add_new_style( ).
lo_style_color0-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_color0-&gt;fill-&gt;fgcolor-rgb = &apos;FFFFFFFF&apos;.
lo_style_color0-&gt;borders-&gt;allborders = lo_border_light.
lv_style_color0_guid = lo_style_color0-&gt;get_guid( ).
&quot; Create color black
lo_style_color1 = lo_excel-&gt;add_new_style( ).
lo_style_color1-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_color1-&gt;fill-&gt;fgcolor-rgb = &apos;FF252525&apos;.
lo_style_color1-&gt;borders-&gt;allborders = lo_border_light.
lv_style_color1_guid = lo_style_color1-&gt;get_guid( ).
&quot; Create color dark green
lo_style_color2 = lo_excel-&gt;add_new_style( ).
lo_style_color2-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_color2-&gt;fill-&gt;fgcolor-rgb = &apos;FF75913A&apos;.
lo_style_color2-&gt;borders-&gt;allborders = lo_border_light.
lv_style_color2_guid = lo_style_color2-&gt;get_guid( ).
&quot; Create color light green
lo_style_color3 = lo_excel-&gt;add_new_style( ).
lo_style_color3-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_color3-&gt;fill-&gt;fgcolor-rgb = &apos;FF9DFB73&apos;.
lo_style_color3-&gt;borders-&gt;allborders = lo_border_light.
lv_style_color3_guid = lo_style_color3-&gt;get_guid( ).
&quot; Create color green
lo_style_color4 = lo_excel-&gt;add_new_style( ).
lo_style_color4-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_color4-&gt;fill-&gt;fgcolor-rgb = &apos;FF92CF56&apos;.
lo_style_color4-&gt;borders-&gt;allborders = lo_border_light.
lv_style_color4_guid = lo_style_color4-&gt;get_guid( ).
&quot; Create color 2dark green
lo_style_color5 = lo_excel-&gt;add_new_style( ).
lo_style_color5-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_color5-&gt;fill-&gt;fgcolor-rgb = &apos;FF506228&apos;.
lo_style_color5-&gt;borders-&gt;allborders = lo_border_light.
lv_style_color5_guid = lo_style_color5-&gt;get_guid( ).
&quot; Create color yellow
lo_style_color6 = lo_excel-&gt;add_new_style( ).
lo_style_color6-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_color6-&gt;fill-&gt;fgcolor-rgb = &apos;FFC3E224&apos;.
lo_style_color6-&gt;borders-&gt;allborders = lo_border_light.
lv_style_color6_guid = lo_style_color6-&gt;get_guid( ).
&quot; Create color yellow
lo_style_color7 = lo_excel-&gt;add_new_style( ).
lo_style_color7-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_color7-&gt;fill-&gt;fgcolor-rgb = &apos;FFB3C14F&apos;.
lo_style_color7-&gt;borders-&gt;allborders = lo_border_light.
lv_style_color7_guid = lo_style_color7-&gt;get_guid( ).
&quot; Credits
lo_style_credit = lo_excel-&gt;add_new_style( ).
lo_style_credit-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_credit-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lo_style_credit-&gt;font-&gt;size = 20.
lv_style_credit_guid = lo_style_credit-&gt;get_guid( ).
&quot; Link
lo_style_link = lo_excel-&gt;add_new_style( ).
lo_style_link-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_link-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
* lo_style_link-&gt;font-&gt;size = 20.
lv_style_link_guid = lo_style_link-&gt;get_guid( ).
&quot; Create image map &quot; line 2
DO 30 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 3
DO 28 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 4
DO 27 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 5
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 15 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 6
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 13 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 7
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 11 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 8
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 9
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 10
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 11
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 7 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 12
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 13
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 14
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 12 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 15
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 16
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 7 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 17
DO 8 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 13 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 18
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 23 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 19
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 27 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 20
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 23 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 21
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 19 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 22
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 23
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 24
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 25
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 26
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 27
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 28
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 29
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 30
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 31
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 32
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 33
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 34
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 35
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 36
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 37
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 38
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 39
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 22 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 40
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 41
DO 8 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 15 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 42
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 43
DO 11 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 7 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 44
DO 13 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 45
DO 16 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 13 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; line 46
DO 18 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. &quot; escape
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Angry Birds&apos; ).
lv_row = 1.
lv_col = 1.
LOOP AT lt_mapper INTO ls_mapper.
lv_col_str = zcl_excel_common=&gt;convert_column2alpha( lv_col ).
IF ls_mapper IS INITIAL.
lo_row_dimension = lo_worksheet-&gt;get_row_dimension( ip_row = lv_row ).
lo_row_dimension-&gt;set_row_height( ip_row_height = 8 ).
lv_col = 1.
lv_row = lv_row + 1.
CONTINUE.
ENDIF.
lo_worksheet-&gt;set_cell( ip_column = lv_col_str
ip_row = lv_row
ip_value = space
ip_style = ls_mapper ).
lv_col = lv_col + 1.
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = lv_col_str ).
lo_column_dimension-&gt;set_width( ip_width = 2 ).
ENDLOOP.
lo_worksheet-&gt;set_show_gridlines( i_show_gridlines = abap_false ).
lo_worksheet-&gt;set_cell( ip_column = &apos;AP&apos;
ip_row = 15
ip_value = &apos;Created with abap2xlsx&apos;
ip_style = lv_style_credit_guid ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_external_link( iv_url = &apos;http://www.abap2xlsx.org&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;AP&apos;
ip_row = 24
ip_value = &apos;http://www.abap2xlsx.org&apos;
ip_style = lv_style_link_guid
ip_hyperlink = lo_hyperlink ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;AP&apos; ).
lo_column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
lo_worksheet-&gt;set_merge( ip_row = 15 ip_column_start = &apos;AP&apos; ip_row_to = 22 ip_column_end = &apos;AR&apos; ).
lo_worksheet-&gt;set_merge( ip_row = 24 ip_column_start = &apos;AP&apos; ip_row_to = 26 ip_column_end = &apos;AR&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_CALENDAR" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="D">
<textElement ID="I" KEY="000" ENTRY="Ausrichtung" LENGTH="11 "/>
<textElement ID="I" KEY="001" ENTRY="KW" LENGTH="4 "/>
<textElement ID="I" KEY="002" ENTRY="Erzeugt mit abap2xlsx. Weitere Informationen unter http://abap2xlsx.org." LENGTH="100 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Erzeugen eines Kalenders mit Bildern" LENGTH="70 "/>
<textElement ID="S" KEY="P_LANDS" ENTRY=" Querformat" LENGTH="18 "/>
<textElement ID="S" KEY="P_PORTR" ENTRY=" Hochformat" LENGTH="18 "/>
<textElement ID="S" KEY="P_FROM" ENTRY="D ." LENGTH="17 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_TO" ENTRY="D ." LENGTH="15 "/>
</language>
<language SPRAS="E">
<textElement ID="I" KEY="000" ENTRY="Orientation" LENGTH="11 "/>
<textElement ID="I" KEY="001" ENTRY="CW" LENGTH="4 "/>
<textElement ID="I" KEY="002" ENTRY="Created with abap2xlsx. Find more information at http://abap2xlsx.org." LENGTH="100 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Create Calendar with Pictures" LENGTH="45 "/>
<textElement ID="S" KEY="P_FROM" ENTRY="D ." LENGTH="17 "/>
<textElement ID="S" KEY="P_LANDS" ENTRY=" Landscape" LENGTH="17 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_PORTR" ENTRY=" Portrait" LENGTH="16 "/>
<textElement ID="S" KEY="P_TO" ENTRY="D ." LENGTH="15 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_CALENDAR
*&amp; abap2xlsx Demo: Create Calendar with Pictures
*&amp;---------------------------------------------------------------------*
*&amp; This report creates a monthly calendar in the specified date range.
*&amp; Each month is put on a seperate worksheet. The pictures for each
*&amp; month can be specified in a tab delimited file called &quot;Calendar.txt&quot;
*&amp; which is saved in the Export Directory. By default this is the SAP
*&amp; Workdir. The file contains 3 fields:
*&amp;
*&amp; Month (with leading 0)
*&amp; Image Filename
*&amp; Image Description
*&amp; URL for the Description
*&amp;
*&amp; The Images should be landscape JPEG&apos;s with a 3:2 ratio and min.
*&amp; 450 pixel height. They must also be saved in the Export Directory.
*&amp; In my tests I&apos;ve discovered a limit of 20 MB in the
*&amp; cl_gui_frontend_services=&gt;gui_download method. So keep your images
*&amp; smaller or chnage to a server export using OPEN DATASET.
*&amp;---------------------------------------------------------------------*
REPORT zdemo_calendar.
TYPE-POOLS: abap.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;Calendar.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
INCLUDE zdemo_calendar_classes.
DATA: lv_workdir TYPE string.
PARAMETERS: p_from TYPE dfrom DEFAULT &apos;20130101&apos;,
p_to TYPE dto DEFAULT &apos;20131231&apos;.
SELECTION-SCREEN BEGIN OF BLOCK orientation WITH FRAME TITLE orient.
PARAMETERS: p_portr TYPE flag RADIOBUTTON GROUP orie,
p_lands TYPE flag RADIOBUTTON GROUP orie DEFAULT &apos;X&apos;.
SELECTION-SCREEN END OF BLOCK orientation.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
orient = &apos;Orientation&apos;(000).
START-OF-SELECTION.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: lo_style_month TYPE REF TO zcl_excel_style,
lv_style_month_guid TYPE zexcel_cell_style.
DATA: lo_style_border TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lv_style_border_guid TYPE zexcel_cell_style.
DATA: lo_style_center TYPE REF TO zcl_excel_style,
lv_style_center_guid TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
image_descr_path TYPE string,
lv_file_separator TYPE c.
DATA: lv_content TYPE xstring,
width TYPE i,
lv_height TYPE i,
lv_from_row TYPE zexcel_cell_row.
DATA: month TYPE i,
month_nr TYPE fcmnr,
count TYPE i VALUE 1,
title TYPE zexcel_sheet_title,
value TYPE string,
image_path TYPE string,
date_from TYPE datum,
date_to TYPE datum,
row TYPE zexcel_cell_row,
to_row TYPE zexcel_cell_row,
to_col TYPE zexcel_cell_column_alpha,
to_col_end TYPE zexcel_cell_column_alpha,
to_col_int TYPE i.
DATA: month_names TYPE TABLE OF t247.
FIELD-SYMBOLS: &lt;month_name&gt; LIKE LINE OF month_names.
TYPES: BEGIN OF tt_datatab,
month_nr TYPE fcmnr,
filename TYPE string,
descr TYPE string,
url TYPE string,
END OF tt_datatab.
DATA: image_descriptions TYPE TABLE OF tt_datatab.
FIELD-SYMBOLS: &lt;img_descr&gt; LIKE LINE OF image_descriptions.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;Calendar&apos;, &quot;#EC NOTEXT
c_from_row_portrait TYPE zexcel_cell_row VALUE 28,
c_from_row_landscape TYPE zexcel_cell_row VALUE 38,
from_col TYPE zexcel_cell_column_alpha VALUE &apos;C&apos;,
c_height_portrait TYPE i VALUE 450, &quot; Image Height in Portrait Mode
c_height_landscape TYPE i VALUE 670, &quot; Image Height in Landscape Mode
c_factor TYPE f VALUE &apos;1.5&apos;. &quot; Image Ratio, default 3:2
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name &apos;.xlsx&apos; INTO lv_full_path. &quot;#EC NOTEXT
&quot; Read Image Names for Month and Description
CONCATENATE p_path lv_file_separator lv_default_file_name &apos;.txt&apos; INTO image_descr_path. &quot;#EC NOTEXT
cl_gui_frontend_services=&gt;gui_upload(
EXPORTING
filename = image_descr_path &quot; Name of file
filetype = &apos;ASC&apos; &quot; File Type (ASCII, Binary)
has_field_separator = &apos;X&apos;
read_by_line = &apos;X&apos; &quot; File Written Line-By-Line to the Internal Table
CHANGING
data_tab = image_descriptions &quot; Transfer table for file contents
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19
).
IF sy-subrc &lt;&gt; 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Create Styles
&quot; Create an underline double style
lo_style_month = lo_excel-&gt;add_new_style( ).
&quot; lo_style_month-&gt;font-&gt;underline = abap_true.
&quot; lo_style_month-&gt;font-&gt;underline_mode = zcl_excel_style_font=&gt;c_underline_single.
lo_style_month-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_roman.
lo_style_month-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_none.
lo_style_month-&gt;font-&gt;family = zcl_excel_style_font=&gt;c_family_roman.
lo_style_month-&gt;font-&gt;bold = abap_true.
lo_style_month-&gt;font-&gt;size = 36.
lv_style_month_guid = lo_style_month-&gt;get_guid( ).
&quot; Create border object
CREATE OBJECT lo_border_dark.
lo_border_dark-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
lo_border_dark-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
&quot;Create style with border
lo_style_border = lo_excel-&gt;add_new_style( ).
lo_style_border-&gt;borders-&gt;allborders = lo_border_dark.
lo_style_border-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_right.
lo_style_border-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_top.
lv_style_border_guid = lo_style_border-&gt;get_guid( ).
&quot;Create style alignment center
lo_style_center = lo_excel-&gt;add_new_style( ).
lo_style_center-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_center-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_top.
lv_style_center_guid = lo_style_center-&gt;get_guid( ).
&quot; Get Month Names
CALL FUNCTION &apos;MONTH_NAMES_GET&apos;
TABLES
month_names = month_names.
zcl_date_calculation=&gt;months_between_two_dates(
EXPORTING
i_date_from = p_from
i_date_to = p_to
i_incl_to = abap_true
IMPORTING
e_month = month
).
date_from = p_from.
WHILE count &lt;= month.
IF count = 1.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
ELSE.
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
ENDIF.
lo_worksheet-&gt;zif_excel_sheet_properties~selected = zif_excel_sheet_properties=&gt;c_selected.
title = count.
value = count.
CONDENSE title.
CONDENSE value.
lo_worksheet-&gt;set_title( title ).
lo_worksheet-&gt;set_print_gridlines( abap_false ).
lo_worksheet-&gt;sheet_setup-&gt;paper_size = zcl_excel_sheet_setup=&gt;c_papersize_a4.
lo_worksheet-&gt;sheet_setup-&gt;horizontal_centered = abap_true.
lo_worksheet-&gt;sheet_setup-&gt;vertical_centered = abap_true.
lo_col_dim = lo_worksheet-&gt;get_column_dimension( &apos;A&apos; ).
lo_col_dim-&gt;set_width( &apos;1.0&apos; ).
lo_col_dim = lo_worksheet-&gt;get_column_dimension( &apos;B&apos; ).
lo_col_dim-&gt;set_width( &apos;2.0&apos; ).
IF p_lands = abap_true.
lo_worksheet-&gt;sheet_setup-&gt;orientation = zcl_excel_sheet_setup=&gt;c_orientation_landscape.
lv_height = c_height_landscape.
lv_from_row = c_from_row_landscape.
lo_worksheet-&gt;sheet_setup-&gt;margin_top = &apos;0.10&apos;.
lo_worksheet-&gt;sheet_setup-&gt;margin_left = &apos;0.10&apos;.
lo_worksheet-&gt;sheet_setup-&gt;margin_right = &apos;0.10&apos;.
lo_worksheet-&gt;sheet_setup-&gt;margin_bottom = &apos;0.10&apos;.
ELSE.
lo_col_dim = lo_worksheet-&gt;get_column_dimension( &apos;K&apos; ).
lo_col_dim-&gt;set_width( &apos;3.0&apos; ).
lo_worksheet-&gt;sheet_setup-&gt;margin_top = &apos;0.80&apos;.
lo_worksheet-&gt;sheet_setup-&gt;margin_left = &apos;0.55&apos;.
lo_worksheet-&gt;sheet_setup-&gt;margin_right = &apos;0.05&apos;.
lo_worksheet-&gt;sheet_setup-&gt;margin_bottom = &apos;0.30&apos;.
lv_height = c_height_portrait.
lv_from_row = c_from_row_portrait.
ENDIF.
&quot; Add Month Name
month_nr = date_from+4(2).
IF p_portr = abap_true.
READ TABLE month_names WITH KEY mnr = month_nr ASSIGNING &lt;month_name&gt;.
CONCATENATE &lt;month_name&gt;-ltx ` ` date_from(4) INTO value.
row = lv_from_row - 2.
to_col = from_col.
ELSE.
row = lv_from_row - 1.
to_col_int = zcl_excel_common=&gt;convert_column2int( from_col ) + 32.
to_col = zcl_excel_common=&gt;convert_column2alpha( to_col_int ).
to_col_int = to_col_int + 1.
to_col_end = zcl_excel_common=&gt;convert_column2alpha( to_col_int ).
CONCATENATE month_nr &apos;/&apos; date_from+2(2) INTO value.
to_row = row + 2.
lo_worksheet-&gt;set_merge(
EXPORTING
ip_column_start = to_col &quot; Cell Column Start
ip_column_end = to_col_end &quot; Cell Column End
ip_row = row &quot; Cell Row
ip_row_to = to_row &quot; Cell Row
).
ENDIF.
lo_worksheet-&gt;set_cell(
EXPORTING
ip_column = to_col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = value &quot; Cell Value
ip_style = lv_style_month_guid
).
* to_col_int = zcl_excel_common=&gt;convert_column2int( from_col ) + 7.
* to_col = zcl_excel_common=&gt;convert_column2alpha( to_col_int ).
*
* lo_worksheet-&gt;set_merge(
* EXPORTING
* ip_column_start = from_col &quot; Cell Column Start
* ip_column_end = to_col &quot; Cell Column End
* ip_row = row &quot; Cell Row
* ip_row_to = row &quot; Cell Row
* ).
&quot; Add drawing from a XSTRING read from a file
UNASSIGN &lt;img_descr&gt;.
READ TABLE image_descriptions WITH KEY month_nr = month_nr ASSIGNING &lt;img_descr&gt;.
IF &lt;img_descr&gt; IS ASSIGNED.
value = &lt;img_descr&gt;-descr.
IF p_portr = abap_true.
row = lv_from_row - 3.
ELSE.
row = lv_from_row - 2.
ENDIF.
IF NOT &lt;img_descr&gt;-url IS INITIAL.
hyperlink = zcl_excel_hyperlink=&gt;create_external_link( &lt;img_descr&gt;-url ).
lo_worksheet-&gt;set_cell(
EXPORTING
ip_column = from_col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = value &quot; Cell Value
ip_hyperlink = hyperlink
).
ELSE.
lo_worksheet-&gt;set_cell(
EXPORTING
ip_column = from_col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = value &quot; Cell Value
).
ENDIF.
lo_row_dim = lo_worksheet-&gt;get_row_dimension( row ).
lo_row_dim-&gt;set_row_height( &apos;22.0&apos; ).
&quot; In Landscape mode the row between the description and the
&quot; dates should be not so high
IF p_lands = abap_true.
row = lv_from_row - 3.
lo_worksheet-&gt;set_cell(
EXPORTING
ip_column = from_col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = &apos; &apos; &quot; Cell Value
).
lo_row_dim = lo_worksheet-&gt;get_row_dimension( row ).
lo_row_dim-&gt;set_row_height( &apos;7.0&apos; ).
row = lv_from_row - 1.
lo_row_dim = lo_worksheet-&gt;get_row_dimension( row ).
lo_row_dim-&gt;set_row_height( &apos;5.0&apos; ).
ENDIF.
CONCATENATE p_path lv_file_separator &lt;img_descr&gt;-filename INTO image_path.
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 1
ip_from_col = &apos;B&apos; ).
lv_content = zcl_helper=&gt;load_image( image_path ).
width = lv_height * c_factor.
lo_drawing-&gt;set_media( ip_media = lv_content
ip_media_type = zcl_excel_drawing=&gt;c_media_type_jpg
ip_width = width
ip_height = lv_height ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
ENDIF.
&quot; Add Calendar
CALL FUNCTION &apos;SLS_MISC_GET_LAST_DAY_OF_MONTH&apos;
EXPORTING
day_in = date_from
IMPORTING
last_day_of_month = date_to.
IF p_portr = abap_true.
zcl_helper=&gt;add_calendar(
EXPORTING
i_date_from = date_from
i_date_to = date_to
i_from_row = lv_from_row
i_from_col = from_col
i_day_style = lv_style_border_guid
i_cw_style = lv_style_center_guid
CHANGING
c_worksheet = lo_worksheet
).
ELSE.
zcl_helper=&gt;add_calendar_landscape(
EXPORTING
i_date_from = date_from
i_date_to = date_to
i_from_row = lv_from_row
i_from_col = from_col
i_day_style = lv_style_border_guid
i_cw_style = lv_style_center_guid
CHANGING
c_worksheet = lo_worksheet
).
ENDIF.
count = count + 1.
date_from = date_to + 1.
ENDWHILE.
lo_excel-&gt;set_active_sheet_index_by_name( &apos;1&apos; ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_CALENDAR_CLASSES" VARCL="X" SUBC="I" RMAND="001" RLOAD="E" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Include ZDEMO_CALENDAR_CLASSES" LENGTH="30 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Include ZDEMO_CALENDAR_CLASSES
*&amp;---------------------------------------------------------------------*
*&amp;---------------------------------------------------------------------*
*&amp; Class ZCL_DATE_CALCULATION
*&amp;---------------------------------------------------------------------*
* Text
*----------------------------------------------------------------------*
CLASS zcl_date_calculation DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: months_between_two_dates
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_incl_to TYPE flag
EXPORTING
e_month TYPE i.
ENDCLASS. &quot;ZCL_DATE_CALCULATION
*----------------------------------------------------------------------*
* CLASS ZCL_DATE_CALCULATION IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_date_calculation IMPLEMENTATION.
METHOD months_between_two_dates.
DATA: date_to TYPE datum.
DATA: BEGIN OF datum_von,
jjjj(4) TYPE n,
mm(2) TYPE n,
tt(2) TYPE n,
END OF datum_von.
DATA: BEGIN OF datum_bis,
jjjj(4) TYPE n,
mm(2) TYPE n,
tt(2) TYPE n,
END OF datum_bis.
e_month = 0.
CHECK NOT ( i_date_from IS INITIAL )
AND NOT ( i_date_to IS INITIAL ).
date_to = i_date_to.
IF i_incl_to = abap_true.
date_to = date_to + 1.
ENDIF.
datum_von = i_date_from.
datum_bis = date_to.
e_month = ( datum_bis-jjjj - datum_von-jjjj ) * 12
+ ( datum_bis-mm - datum_von-mm ).
ENDMETHOD. &quot;MONTHS_BETWEEN_TWO_DATES
ENDCLASS. &quot;ZCL_DATE_CALCULATION IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS zcl_date_calculation_test DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_date_calculation_test DEFINITION FOR TESTING
&quot; DURATION SHORT
&quot; RISK LEVEL HARMLESS
&quot;#AU Duration Medium
&quot;#AU Risk_Level Harmless
.
PUBLIC SECTION.
METHODS:
months_between_two_dates FOR TESTING.
ENDCLASS. &quot;zcl_date_calculation_test DEFINITION
*----------------------------------------------------------------------*
* CLASS zcl_date_calculation_test IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_date_calculation_test IMPLEMENTATION.
METHOD months_between_two_dates.
DATA: date_from TYPE datum VALUE &apos;20120101&apos;,
date_to TYPE datum VALUE &apos;20121231&apos;.
DATA: month TYPE i.
zcl_date_calculation=&gt;months_between_two_dates(
EXPORTING
i_date_from = date_from
i_date_to = date_to
i_incl_to = abap_true
IMPORTING
e_month = month
).
cl_aunit_assert=&gt;assert_equals(
exp = 12 &quot; Data Object with Expected Type
act = month &quot; Data Object with Current Value
msg = &apos;Calculated date is wrong&apos; &quot; Message in Case of Error
).
ENDMETHOD. &quot;months_between_two_dates
ENDCLASS. &quot;zcl_date_calculation_test IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS zcl_helper DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_helper DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
load_image
IMPORTING
filename TYPE string
RETURNING value(r_image) TYPE xstring,
add_calendar
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
i_day_style TYPE zexcel_cell_style
i_cw_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet,
add_calendar_landscape
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
i_day_style TYPE zexcel_cell_style
i_cw_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet,
add_a2x_footer
IMPORTING
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet,
add_calender_week
IMPORTING
i_date TYPE datum
i_row TYPE zexcel_cell_row
i_col TYPE zexcel_cell_column_alpha
i_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet.
ENDCLASS. &quot;zcl_helper DEFINITION
*----------------------------------------------------------------------*
* CLASS zcl_helper IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_helper IMPLEMENTATION.
METHOD load_image.
&quot;Load samle image
DATA: lt_bin TYPE solix_tab,
lv_len TYPE i.
CALL METHOD cl_gui_frontend_services=&gt;gui_upload
EXPORTING
filename = filename
filetype = &apos;BIN&apos;
IMPORTING
filelength = lv_len
CHANGING
data_tab = lt_bin
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.
IF sy-subrc &lt;&gt; 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING
input_length = lv_len
IMPORTING
buffer = r_image
TABLES
binary_tab = lt_bin
EXCEPTIONS
failed = 1
OTHERS = 2.
IF sy-subrc &lt;&gt; 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMETHOD. &quot;load_image
METHOD add_calendar.
DATA: day_names TYPE TABLE OF t246.
DATA: row TYPE zexcel_cell_row,
row_max TYPE i,
col_int TYPE zexcel_cell_column,
col_max TYPE i,
from_col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha,
lr_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lr_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_date TYPE datum,
value TYPE string,
weekday TYPE wotnr,
weekrow TYPE wotnr VALUE 1,
day TYPE i,
width TYPE f,
height TYPE f.
DATA: hyperlink TYPE REF TO zcl_excel_hyperlink.
FIELD-SYMBOLS: &lt;day_name&gt; LIKE LINE OF day_names.
lv_date = i_date_from.
from_col_int = zcl_excel_common=&gt;convert_column2int( i_from_col ).
&quot; Add description for Calendar Week
c_worksheet-&gt;set_cell(
EXPORTING
ip_column = i_from_col &quot; Cell Column
ip_row = i_from_row &quot; Cell Row
ip_value = &apos;CW&apos;(001) &quot; Cell Value
ip_style = i_cw_style
).
&quot; Add Days
CALL FUNCTION &apos;DAY_NAMES_GET&apos;
TABLES
day_names = day_names.
LOOP AT day_names ASSIGNING &lt;day_name&gt;.
row = i_from_row.
col_int = from_col_int + &lt;day_name&gt;-wotnr.
col = zcl_excel_common=&gt;convert_column2alpha( col_int ).
value = &lt;day_name&gt;-langt.
c_worksheet-&gt;set_cell(
EXPORTING
ip_column = col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = value &quot; Cell Value
ip_style = i_cw_style
).
ENDLOOP.
WHILE lv_date &lt;= i_date_to.
day = lv_date+6(2).
CALL FUNCTION &apos;FIMA_X_DAY_IN_MONTH_COMPUTE&apos;
EXPORTING
i_datum = lv_date
IMPORTING
e_wochentag_nr = weekday.
row = i_from_row + weekrow.
col_int = from_col_int + weekday.
col = zcl_excel_common=&gt;convert_column2alpha( col_int ).
value = day.
CONDENSE value.
c_worksheet-&gt;set_cell(
EXPORTING
ip_column = col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = value &quot; Cell Value
ip_style = i_day_style &quot; Single-Character Indicator
).
IF weekday = 7.
&quot; Add Calender Week
zcl_helper=&gt;add_calender_week(
EXPORTING
i_date = lv_date
i_row = row
i_col = i_from_col
i_style = i_cw_style
CHANGING
c_worksheet = c_worksheet
).
weekrow = weekrow + 1.
ENDIF.
lv_date = lv_date + 1.
ENDWHILE.
&quot; Add Calender Week
zcl_helper=&gt;add_calender_week(
EXPORTING
i_date = lv_date
i_row = row
i_col = i_from_col
i_style = i_cw_style
CHANGING
c_worksheet = c_worksheet
).
&quot; Add Created with abap2xlsx
row = row + 2.
zcl_helper=&gt;add_a2x_footer(
EXPORTING
i_from_row = row
i_from_col = i_from_col
CHANGING
c_worksheet = c_worksheet
).
col_int = from_col_int.
col_max = from_col_int + 7.
WHILE col_int &lt;= col_max.
col = zcl_excel_common=&gt;convert_column2alpha( col_int ).
IF sy-index = 1.
width = &apos;5.0&apos;.
ELSE.
width = &apos;11.4&apos;.
ENDIF.
lr_col_dim = c_worksheet-&gt;get_column_dimension( col ).
lr_col_dim-&gt;set_width( width ).
col_int = col_int + 1.
ENDWHILE.
row = i_from_row + 1.
row_max = i_from_row + 6.
WHILE row &lt;= row_max.
height = 50.
lr_row_dim = c_worksheet-&gt;get_row_dimension( row ).
lr_row_dim-&gt;set_row_height( height ).
row = row + 1.
ENDWHILE.
ENDMETHOD. &quot;add_calendar
METHOD add_a2x_footer.
DATA: value TYPE string,
hyperlink TYPE REF TO zcl_excel_hyperlink.
value = &apos;Created with abap2xlsx. Find more information at http://abap2xlsx.org.&apos;(002).
hyperlink = zcl_excel_hyperlink=&gt;create_external_link( &apos;http://abap2xlsx.org&apos; ). &quot;#EC NOTEXT
c_worksheet-&gt;set_cell(
EXPORTING
ip_column = i_from_col &quot; Cell Column
ip_row = i_from_row &quot; Cell Row
ip_value = value &quot; Cell Value
ip_hyperlink = hyperlink
).
ENDMETHOD. &quot;add_a2x_footer
METHOD add_calendar_landscape.
DATA: day_names TYPE TABLE OF t246.
DATA: lv_date TYPE datum,
day TYPE i,
value TYPE string,
weekday TYPE wotnr.
DATA: row TYPE zexcel_cell_row,
from_col_int TYPE zexcel_cell_column,
col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha.
DATA: lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi.
FIELD-SYMBOLS: &lt;day_name&gt; LIKE LINE OF day_names.
lv_date = i_date_from.
&quot; Add Days
CALL FUNCTION &apos;DAY_NAMES_GET&apos;
TABLES
day_names = day_names.
WHILE lv_date &lt;= i_date_to.
day = lv_date+6(2).
CALL FUNCTION &apos;FIMA_X_DAY_IN_MONTH_COMPUTE&apos;
EXPORTING
i_datum = lv_date
IMPORTING
e_wochentag_nr = weekday.
&quot; Day name row
row = i_from_row.
col_int = from_col_int + day + 2.
col = zcl_excel_common=&gt;convert_column2alpha( col_int ).
READ TABLE day_names ASSIGNING &lt;day_name&gt;
WITH KEY wotnr = weekday.
value = &lt;day_name&gt;-kurzt.
c_worksheet-&gt;set_cell(
EXPORTING
ip_column = col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = value &quot; Cell Value
ip_style = i_cw_style
).
&quot; Day row
row = i_from_row + 1.
value = day.
CONDENSE value.
c_worksheet-&gt;set_cell(
EXPORTING
ip_column = col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = value &quot; Cell Value
ip_style = i_day_style &quot; Single-Character Indicator
).
&quot; width
lo_col_dim = c_worksheet-&gt;get_column_dimension( col ).
lo_col_dim-&gt;set_width( &apos;3.6&apos; ).
lv_date = lv_date + 1.
ENDWHILE.
&quot; Add ABAP2XLSX Footer
row = i_from_row + 2.
c_worksheet-&gt;set_cell(
EXPORTING
ip_column = col &quot; Cell Column
ip_row = row &quot; Cell Row
ip_value = &apos; &apos; &quot; Cell Value
).
lo_row_dim = c_worksheet-&gt;get_row_dimension( row ).
lo_row_dim-&gt;set_row_height( &apos;5.0&apos; ).
row = i_from_row + 3.
zcl_helper=&gt;add_a2x_footer(
EXPORTING
i_from_row = row
i_from_col = i_from_col
CHANGING
c_worksheet = c_worksheet
).
&quot; Set with for all 31 coulumns
WHILE day &lt; 32.
day = day + 1.
col_int = from_col_int + day + 2.
col = zcl_excel_common=&gt;convert_column2alpha( col_int ).
&quot; width
lo_col_dim = c_worksheet-&gt;get_column_dimension( col ).
lo_col_dim-&gt;set_width( &apos;3.6&apos; ).
ENDWHILE.
ENDMETHOD. &quot;ADD_CALENDAR_LANDSCAPE
METHOD add_calender_week.
DATA: week TYPE kweek,
week_int TYPE i,
value TYPE string.
&quot; Add Calender Week
CALL FUNCTION &apos;DATE_GET_WEEK&apos;
EXPORTING
date = i_date &quot; Date for which the week should be calculated
IMPORTING
week = week. &quot; Week for date (format:YYYYWW)
value = week+4(2).
week_int = value.
value = week_int.
CONDENSE value.
c_worksheet-&gt;set_cell(
EXPORTING
ip_column = i_col &quot; Cell Column
ip_row = i_row &quot; Cell Row
ip_value = value &quot; Cell Value
ip_style = i_style
).
ENDMETHOD. &quot;add_calender_week
ENDCLASS. &quot;zcl_helper IMPLEMENTATION</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL" VARCL="X" SUBC="1" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="S" KEY="P_PATH" ENTRY=" Select output path" LENGTH="26 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel.
DATA: lv_workdir TYPE string,
lv_upfile TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = sy-lisel ).
CONCATENATE p_path sy-lisel &apos;01_HelloWorld.xlsx&apos; INTO lv_upfile.
SUBMIT zdemo_excel1 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Hello world
SUBMIT zdemo_excel2 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Styles
SUBMIT zdemo_excel3 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: iTab binding
SUBMIT zdemo_excel4 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Multi sheets, page setup and sheet properties
SUBMIT zdemo_excel5 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Conditional formatting
SUBMIT zdemo_excel6 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Formulas
SUBMIT zdemo_excel7 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Conditional formatting
SUBMIT zdemo_excel8 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Ranges
SUBMIT zdemo_excel9 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Data validation
SUBMIT zdemo_excel10 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Bind table with field catalog
&quot; zdemo_excel11 is not added because it has a selection screen and
&quot; you also need to have business partners maintained in transaction BP
SUBMIT zdemo_excel12 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Column size
SUBMIT zdemo_excel13 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Merge cell
SUBMIT zdemo_excel14 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Alignment
SUBMIT zdemo_excel16 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Drawing
SUBMIT zdemo_excel17 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Lock sheet
SUBMIT zdemo_excel18 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Lock workbook
SUBMIT zdemo_excel19 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Set active sheet
&quot; zdemo_excel20 is not added because it uses ALV and cannot be processed (OLE2)
SUBMIT zdemo_excel21 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Color Picker
SUBMIT zdemo_excel22 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Bind table with field catalog &amp; sheet style
SUBMIT zdemo_excel23 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Multiple sheets with and w/o grid lines, print options
SUBMIT zdemo_excel24 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Multiple sheets with different default date formats
SUBMIT zdemo_excel25 AND RETURN. &quot; abap2xlsx Demo: Create and xlsx on Application Server (could be executed in batch mode)
&quot; zdemo_excel26 is not added because it uses ALV and cannot be processed (Native)
SUBMIT zdemo_excel27 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Conditional Formatting
SUBMIT zdemo_excel28 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: CSV writer
&quot; SUBMIT zdemo_excel29 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Macro enabled workbook
SUBMIT zdemo_excel30 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: ABAP Cell data types
SUBMIT zdemo_excel31 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Autosize Column with different Font sizes
&quot; zdemo_excel32 is not added because it uses ALV and cannot be processed (Native)
SUBMIT zdemo_excel33 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Table autofilter
SUBMIT zdemo_excel34 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Static Styles Chess
SUBMIT zdemo_excel35 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Static Styles
SUBMIT zdemo_excel36 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Style applied to sheet, column and single cell
SUBMIT zdemo_excel37 WITH p_upfile = lv_upfile
WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Simplest call of the reader and writer - passthrough data
SUBMIT zdemo_excel38 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Show off integration of drawings ( here using the SAP-Icons )
SUBMIT ZDEMO_EXCEL39 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Charts
&quot;
&quot; Reader/Writer Demo must always run at the end
&quot; to make sure all documents where created
&quot;
SUBMIT zdemo_excel15 WITH p_path = p_path AND RETURN. &quot; Read Excel and write it back</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL1" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
<textElement ID="S" KEY="RB_BACK" LENGTH="17 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="28 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL1
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel1.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;01_HelloWorld.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
* lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = sy-datum ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = sy-uzeit ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_external_link( iv_url = &apos;http://www.abap2xlsx.org&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 4 ip_value = &apos;Click here to visit abap2xlsx homepage&apos; ip_hyperlink = lo_hyperlink ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
column_dimension-&gt;set_width( ip_width = 11 ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL10" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Format internal table with field catalog" LENGTH="57 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL10
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel10.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_iconset TYPE zexcel_conditional_iconset.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;10_iTabFieldCatalog.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
FIELD-SYMBOLS: &lt;fs_field_catalog&gt; TYPE zexcel_s_fieldcatalog.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Internal table&apos; ).
ls_iconset-iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrows.
ls_iconset-cfvo1_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo1_value = &apos;0&apos;.
ls_iconset-cfvo2_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo2_value = &apos;20&apos;.
ls_iconset-cfvo3_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo3_value = &apos;40&apos;.
ls_iconset-cfvo4_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo4_value = &apos;60&apos;.
ls_iconset-cfvo5_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
ls_iconset-cfvo5_value = &apos;80&apos;.
ls_iconset-showvalue = zcl_excel_style_conditional=&gt;c_showvalue_true.
&quot;Conditional style
lo_style_conditional2 = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional2-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional2-&gt;mode_iconset = ls_iconset.
lo_style_conditional2-&gt;priority = 1.
DATA lt_test TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_test. &quot;#EC CI_NOWHERE
lt_field_catalog = zcl_excel_common=&gt;get_fieldcatalog( ip_table = lt_test ).
LOOP AT lt_field_catalog ASSIGNING &lt;fs_field_catalog&gt;.
CASE &lt;fs_field_catalog&gt;-fieldname.
WHEN &apos;CARRID&apos;.
&lt;fs_field_catalog&gt;-position = 3.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
&lt;fs_field_catalog&gt;-totals_function = zcl_excel_table=&gt;totals_function_count.
WHEN &apos;CONNID&apos;.
&lt;fs_field_catalog&gt;-position = 4.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;FLDATE&apos;.
&lt;fs_field_catalog&gt;-position = 2.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;PRICE&apos;.
&lt;fs_field_catalog&gt;-position = 1.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
&lt;fs_field_catalog&gt;-totals_function = zcl_excel_table=&gt;totals_function_sum.
&lt;fs_field_catalog&gt;-cond_style = lo_style_conditional2.
WHEN OTHERS.
&lt;fs_field_catalog&gt;-dynpfld = abap_false.
ENDCASE.
ENDLOOP.
ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium5.
lo_worksheet-&gt;bind_table( ip_table = lt_test
is_table_settings = ls_table_settings
it_field_catalog = lt_field_catalog ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;D&apos; ). &quot;make date field a bit wider
column_dimension-&gt;set_width( ip_width = 13 ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL11" VARCL="X" SUBC="1" RSTAT="K" RMAND="000" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="I" KEY="00A" ENTRY="Select by master data" LENGTH="132 "/>
<textElement ID="I" KEY="00B" ENTRY="Select by relationship" LENGTH="132 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Export Organisation and Contact Persons" LENGTH="55 "/>
<textElement ID="S" KEY="COUNTRY" ENTRY="D ." LENGTH="19 "/>
<textElement ID="S" KEY="MAXSEL" ENTRY="D ." LENGTH="27 "/>
<textElement ID="S" KEY="MD" ENTRY=" Select by master data" LENGTH="29 "/>
<textElement ID="S" KEY="PARTNER" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="PARTNERC" ENTRY="D ." LENGTH="19 "/>
<textElement ID="S" KEY="POSTLCOD" ENTRY="D ." LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="21 "/>
<textElement ID="S" KEY="REL" ENTRY=" Select by relationship" LENGTH="30 "/>
<textElement ID="S" KEY="RELTYP" ENTRY="D ." LENGTH="25 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL11
*&amp; Export Organisation and Contact Persons using ABAP2XLSX
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel11.
TYPE-POOLS: abap.
DATA: central_search TYPE bapibus1006_central_search,
addressdata_search TYPE bapibus1006_addr_search,
others_search TYPE bapibus1006_other_data.
DATA: searchresult TYPE TABLE OF bapibus1006_bp_addr,
return TYPE TABLE OF bapiret2.
DATA: lines TYPE i.
FIELD-SYMBOLS: &lt;searchresult_line&gt; LIKE LINE OF searchresult.
DATA: centraldata TYPE bapibus1006_central,
centraldataperson TYPE bapibus1006_central_person,
centraldataorganization TYPE bapibus1006_central_organ.
DATA: addressdata TYPE bapibus1006_address.
DATA: relationships TYPE TABLE OF bapibus1006_relations.
FIELD-SYMBOLS: &lt;relationship&gt; LIKE LINE OF relationships.
DATA: relationship_centraldata TYPE bapibus1006002_central.
DATA: relationship_addresses TYPE TABLE OF bapibus1006002_addresses.
FIELD-SYMBOLS: &lt;relationship_address&gt; LIKE LINE OF relationship_addresses.
DATA: lt_download TYPE TABLE OF zexcel_s_org_rel.
FIELD-SYMBOLS: &lt;download&gt; LIKE LINE OF lt_download.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;11_Export_Org_and_Contact.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: md TYPE flag RADIOBUTTON GROUP act.
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-00a.
PARAMETERS: partnerc TYPE bu_type DEFAULT 2, &quot; Organizations
postlcod TYPE ad_pstcd1 DEFAULT &apos;8334*&apos;,
country TYPE land1 DEFAULT &apos;DE&apos;,
maxsel TYPE bu_maxsel DEFAULT 100.
SELECTION-SCREEN END OF BLOCK a.
PARAMETERS: rel TYPE flag RADIOBUTTON GROUP act DEFAULT &apos;X&apos;.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-00b.
PARAMETERS: reltyp TYPE bu_reltyp DEFAULT &apos;BUR011&apos;,
partner TYPE bu_partner DEFAULT &apos;191&apos;.
SELECTION-SCREEN END OF BLOCK b.
START-OF-SELECTION.
IF md = abap_true.
&quot; Read all Companies by Master Data
central_search-partnercategory = partnerc.
addressdata_search-postl_cod1 = postlcod.
addressdata_search-country = country.
others_search-maxsel = maxsel.
others_search-no_search_for_contactperson = &apos;X&apos;.
CALL FUNCTION &apos;BAPI_BUPA_SEARCH_2&apos;
EXPORTING
centraldata = central_search
addressdata = addressdata_search
OTHERS = others_search
TABLES
searchresult = searchresult
return = return.
SORT searchresult BY partner.
DELETE ADJACENT DUPLICATES FROM searchresult COMPARING partner.
ELSEIF rel = abap_true.
&quot; Read by Relationship
SELECT but050~partner1 AS partner FROM but050
INNER JOIN but000 ON but000~partner = but050~partner1 AND but000~type = &apos;2&apos;
INTO CORRESPONDING FIELDS OF TABLE searchresult
WHERE but050~partner2 = partner
AND but050~reltyp = reltyp.
ENDIF.
DESCRIBE TABLE searchresult LINES lines.
WRITE: / &apos;Number of search results: &apos;, lines.
LOOP AT searchresult ASSIGNING &lt;searchresult_line&gt;.
&quot; Read Details of Organization
CALL FUNCTION &apos;BAPI_BUPA_CENTRAL_GETDETAIL&apos;
EXPORTING
businesspartner = &lt;searchresult_line&gt;-partner
IMPORTING
centraldataorganization = centraldataorganization.
&quot; Read Standard Address of Organization
CALL FUNCTION &apos;BAPI_BUPA_ADDRESS_GETDETAIL&apos;
EXPORTING
businesspartner = &lt;searchresult_line&gt;-partner
IMPORTING
addressdata = addressdata.
&quot; Add Organization to Download
APPEND INITIAL LINE TO lt_download ASSIGNING &lt;download&gt;.
&quot; Fill Organization Partner Numbers
CALL FUNCTION &apos;BAPI_BUPA_GET_NUMBERS&apos;
EXPORTING
businesspartner = &lt;searchresult_line&gt;-partner
IMPORTING
businesspartnerout = &lt;download&gt;-org_number
businesspartnerguidout = &lt;download&gt;-org_guid.
MOVE-CORRESPONDING centraldataorganization TO &lt;download&gt;.
MOVE-CORRESPONDING addressdata TO &lt;download&gt;.
CLEAR: addressdata.
&quot; Read all Relationships
CLEAR: relationships.
CALL FUNCTION &apos;BAPI_BUPA_RELATIONSHIPS_GET&apos;
EXPORTING
businesspartner = &lt;searchresult_line&gt;-partner
TABLES
relationships = relationships.
DELETE relationships WHERE relationshipcategory &lt;&gt; &apos;BUR001&apos;.
LOOP AT relationships ASSIGNING &lt;relationship&gt;.
&quot; Read details of Contact person
CALL FUNCTION &apos;BAPI_BUPA_CENTRAL_GETDETAIL&apos;
EXPORTING
businesspartner = &lt;relationship&gt;-partner2
IMPORTING
centraldata = centraldata
centraldataperson = centraldataperson.
&quot; Read details of the Relationship
CALL FUNCTION &apos;BAPI_BUPR_CONTP_GETDETAIL&apos;
EXPORTING
businesspartner = &lt;relationship&gt;-partner1
contactperson = &lt;relationship&gt;-partner2
IMPORTING
centraldata = relationship_centraldata.
&quot; Read relationship address
CLEAR: relationship_addresses.
CALL FUNCTION &apos;BAPI_BUPR_CONTP_ADDRESSES_GET&apos;
EXPORTING
businesspartner = &lt;relationship&gt;-partner1
contactperson = &lt;relationship&gt;-partner2
TABLES
addresses = relationship_addresses.
READ TABLE relationship_addresses
ASSIGNING &lt;relationship_address&gt;
WITH KEY standardaddress = &apos;X&apos;.
IF &lt;relationship_address&gt; IS ASSIGNED.
&quot; Read Relationship Address
CLEAR addressdata.
CALL FUNCTION &apos;BAPI_BUPA_ADDRESS_GETDETAIL&apos;
EXPORTING
businesspartner = &lt;searchresult_line&gt;-partner
addressguid = &lt;relationship_address&gt;-addressguid
IMPORTING
addressdata = addressdata.
APPEND INITIAL LINE TO lt_download ASSIGNING &lt;download&gt;.
CALL FUNCTION &apos;BAPI_BUPA_GET_NUMBERS&apos;
EXPORTING
businesspartner = &lt;relationship&gt;-partner1
IMPORTING
businesspartnerout = &lt;download&gt;-org_number
businesspartnerguidout = &lt;download&gt;-org_guid.
CALL FUNCTION &apos;BAPI_BUPA_GET_NUMBERS&apos;
EXPORTING
businesspartner = &lt;relationship&gt;-partner2
IMPORTING
businesspartnerout = &lt;download&gt;-contpers_number
businesspartnerguidout = &lt;download&gt;-contpers_guid.
MOVE-CORRESPONDING centraldataorganization TO &lt;download&gt;.
MOVE-CORRESPONDING addressdata TO &lt;download&gt;.
MOVE-CORRESPONDING centraldataperson TO &lt;download&gt;.
MOVE-CORRESPONDING relationship_centraldata TO &lt;download&gt;.
WRITE: / &lt;relationship&gt;-partner1, &lt;relationship&gt;-partner2.
WRITE: centraldataorganization-name1(20), centraldataorganization-name2(10).
WRITE: centraldataperson-firstname(15), centraldataperson-lastname(15).
WRITE: addressdata-street(25), addressdata-house_no,
addressdata-postl_cod1, addressdata-city(25).
ENDIF.
ENDLOOP.
ENDLOOP.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_body TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_style_body_even_guid TYPE zexcel_cell_style,
lv_style_body_green TYPE zexcel_cell_style.
DATA: row TYPE zexcel_cell_row.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings.
DATA: column TYPE zexcel_cell_column,
column_alpha TYPE zexcel_cell_column_alpha,
value TYPE zexcel_cell_value.
FIELD-SYMBOLS: &lt;fs_field_catalog&gt; TYPE zexcel_s_fieldcatalog.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Create border object
CREATE OBJECT lo_border_dark.
lo_border_dark-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
lo_border_dark-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
&quot;Create style with border even
lo_style_body = lo_excel-&gt;add_new_style( ).
lo_style_body-&gt;fill-&gt;fgcolor-rgb = zcl_excel_style_color=&gt;c_yellow.
lo_style_body-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_body_even_guid = lo_style_body-&gt;get_guid( ).
&quot;Create style with border and green fill
lo_style_body = lo_excel-&gt;add_new_style( ).
lo_style_body-&gt;fill-&gt;fgcolor-rgb = zcl_excel_style_color=&gt;c_green.
lo_style_body-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_body_green = lo_style_body-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Internal table&apos; ).
lt_field_catalog = zcl_excel_common=&gt;get_fieldcatalog( ip_table = lt_download ).
LOOP AT lt_field_catalog ASSIGNING &lt;fs_field_catalog&gt;.
CASE &lt;fs_field_catalog&gt;-fieldname.
WHEN &apos;ORG_NUMBER&apos;.
&lt;fs_field_catalog&gt;-position = 1.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;CONTPERS_NUMBER&apos;.
&lt;fs_field_catalog&gt;-position = 2.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;NAME1&apos;.
&lt;fs_field_catalog&gt;-position = 3.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;NAME2&apos;.
&lt;fs_field_catalog&gt;-position = 4.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;STREET&apos;.
&lt;fs_field_catalog&gt;-position = 5.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;HOUSE_NO&apos;.
&lt;fs_field_catalog&gt;-position = 6.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;POSTL_COD1&apos;.
&lt;fs_field_catalog&gt;-position = 7.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;CITY&apos;.
&lt;fs_field_catalog&gt;-position = 8.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;COUNTRYISO&apos;.
&lt;fs_field_catalog&gt;-position = 9.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;FIRSTNAME&apos;.
&lt;fs_field_catalog&gt;-position = 10.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;LASTNAME&apos;.
&lt;fs_field_catalog&gt;-position = 11.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;FUNCTIONNAME&apos;.
&lt;fs_field_catalog&gt;-position = 12.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;DEPARTMENTNAME&apos;.
&lt;fs_field_catalog&gt;-position = 13.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;TEL1_NUMBR&apos;.
&lt;fs_field_catalog&gt;-position = 14.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;TEL1_EXT&apos;.
&lt;fs_field_catalog&gt;-position = 15.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;FAX_NUMBER&apos;.
&lt;fs_field_catalog&gt;-position = 16.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;FAX_EXTENS&apos;.
&lt;fs_field_catalog&gt;-position = 17.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN &apos;E_MAIL&apos;.
&lt;fs_field_catalog&gt;-position = 18.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
WHEN OTHERS.
&lt;fs_field_catalog&gt;-dynpfld = abap_false.
ENDCASE.
ENDLOOP.
ls_table_settings-top_left_column = &apos;A&apos;.
ls_table_settings-top_left_row = &apos;2&apos;.
ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium5.
lo_worksheet-&gt;bind_table( ip_table = lt_download
is_table_settings = ls_table_settings
it_field_catalog = lt_field_catalog ).
LOOP AT lt_download ASSIGNING &lt;download&gt;.
row = sy-tabix + 2.
IF NOT &lt;download&gt;-org_number IS INITIAL
AND &lt;download&gt;-contpers_number IS INITIAL.
&quot; Mark fields of Organization which can be changed green
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;C&apos;
ip_row = row
ip_style = lv_style_body_green
).
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;D&apos;
ip_row = row
ip_style = lv_style_body_green
).
* CATCH zcx_excel. &quot; Exceptions for ABAP2XLSX
ELSEIF NOT &lt;download&gt;-org_number IS INITIAL
AND NOT &lt;download&gt;-contpers_number IS INITIAL.
&quot; Mark fields of Relationship which can be changed green
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;L&apos; ip_row = row ip_style = lv_style_body_green
).
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;M&apos; ip_row = row ip_style = lv_style_body_green
).
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;N&apos; ip_row = row ip_style = lv_style_body_green
).
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;O&apos; ip_row = row ip_style = lv_style_body_green
).
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;P&apos; ip_row = row ip_style = lv_style_body_green
).
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;Q&apos; ip_row = row ip_style = lv_style_body_green
).
lo_worksheet-&gt;set_cell_style(
ip_column = &apos;R&apos; ip_row = row ip_style = lv_style_body_green
).
ENDIF.
ENDLOOP.
&quot; Add Fieldnames in first row and hide the row
LOOP AT lt_field_catalog ASSIGNING &lt;fs_field_catalog&gt;
WHERE position &lt;&gt; &apos;&apos; AND dynpfld = abap_true.
column = &lt;fs_field_catalog&gt;-position.
column_alpha = zcl_excel_common=&gt;convert_column2alpha( column ).
value = &lt;fs_field_catalog&gt;-fieldname.
lo_worksheet-&gt;set_cell( ip_column = column_alpha
ip_row = 1
ip_value = value
ip_style = lv_style_body_even_guid ).
ENDLOOP.
&quot; Hide first row
row_dimension = lo_worksheet-&gt;get_row_dimension( 1 ).
row_dimension-&gt;set_visible( abap_false ).
DATA: highest_column TYPE zexcel_cell_column,
count TYPE int4,
col_alpha TYPE zexcel_cell_column_alpha.
highest_column = lo_worksheet-&gt;get_highest_column( ).
count = 1.
WHILE count &lt;= highest_column.
col_alpha = zcl_excel_common=&gt;convert_column2alpha( ip_column = count ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = col_alpha ).
column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
count = count + 1.
ENDWHILE.
* &quot; Set Column width manuall
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;A&apos; ).
* column_dimension-&gt;set_width( ip_width = 11 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
* column_dimension-&gt;set_width( ip_width = 11 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;C&apos; ).
* column_dimension-&gt;set_width( ip_width = 35 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;E&apos; ).
* column_dimension-&gt;set_width( ip_width = 18 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;F&apos; ).
* column_dimension-&gt;set_width( ip_width = 5 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;G&apos; ).
* column_dimension-&gt;set_width( ip_width = 6 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;H&apos; ).
* column_dimension-&gt;set_width( ip_width = 12 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;I&apos; ).
* column_dimension-&gt;set_width( ip_width = 3 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;J&apos; ).
* column_dimension-&gt;set_width( ip_width = 13 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;K&apos; ).
* column_dimension-&gt;set_width( ip_width = 13 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;L&apos; ).
* column_dimension-&gt;set_width( ip_width = 13 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;M&apos; ).
* column_dimension-&gt;set_width( ip_width = 13 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;N&apos; ).
* column_dimension-&gt;set_width( ip_width = 12 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;O&apos; ).
* column_dimension-&gt;set_width( ip_width = 9 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;P&apos; ).
* column_dimension-&gt;set_width( ip_width = 12 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;Q&apos; ).
* column_dimension-&gt;set_width( ip_width = 9 ).
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;R&apos; ).
* column_dimension-&gt;set_width( ip_width = 40 ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL12" VARCL="X" SUBC="1" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hide Columns" LENGTH="29 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL12
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel12.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;12_HideSizeOutlineRowsAndColumns.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world in AutoSize column&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = &apos;Hello world in a column width size 50&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 4 ip_value = &apos;Hello world (hidden column)&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;F&apos; ip_row = 2 ip_value = &apos;Outline column level 0&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;G&apos; ip_row = 2 ip_value = &apos;Outline column level 1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;H&apos; ip_row = 2 ip_value = &apos;Outline column level 2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;I&apos; ip_row = 2 ip_value = &apos;Small&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 1 ip_value = &apos;Hello world (hidden row)&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = 5 ip_value = &apos;Hello world in a row height size 20&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 6 ip_value = &apos;Outline row level 0&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 7 ip_value = &apos;Outline row level 1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Outline row level 2&apos; ).
lo_worksheet-&gt;zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=&gt;c_below_off. &quot; By default is on
lo_worksheet-&gt;zif_excel_sheet_properties~summaryright = zif_excel_sheet_properties=&gt;c_right_off. &quot; By default is on
&quot; Column Settings
&quot; Auto size
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;I&apos; ).
column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
&quot; Manual Width
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;C&apos; ).
column_dimension-&gt;set_width( ip_width = 50 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;D&apos; ).
column_dimension-&gt;set_visible( ip_visible = abap_false ).
&quot; Implementation in the Writer is not working yet ===== TODO =====
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;F&apos; ).
column_dimension-&gt;set_outline_level( ip_outline_level = 0 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;G&apos; ).
column_dimension-&gt;set_outline_level( ip_outline_level = 1 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;H&apos; ).
column_dimension-&gt;set_outline_level( ip_outline_level = 2 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( ip_row = 1 ).
row_dimension-&gt;set_visible( ip_visible = abap_false ).
row_dimension = lo_worksheet-&gt;get_row_dimension( ip_row = 5 ).
row_dimension-&gt;set_row_height( ip_row_height = 20 ).
&quot; Implementation in the Writer is not working yet ===== TODO =====
row_dimension = lo_worksheet-&gt;get_row_dimension( ip_row = 6 ).
row_dimension-&gt;set_outline_level( ip_outline_level = 0 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( ip_row = 7 ).
row_dimension-&gt;set_outline_level( ip_outline_level = 1 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( ip_row = 8 ).
row_dimension-&gt;set_outline_level( ip_outline_level = 2 ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL13" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Merge cells" LENGTH="28 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL13
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp; Example by: Alvaro &quot;Blag&quot; Tejada Galindo.
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel13.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_bold_border_guid TYPE zexcel_cell_style,
lo_style_bold_border TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;13_MergedCells.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;sheet1&apos; ).
CREATE OBJECT lo_border_dark.
lo_border_dark-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
lo_border_dark-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
lo_style_bold_border = lo_excel-&gt;add_new_style( ).
lo_style_bold_border-&gt;font-&gt;bold = abap_true.
lo_style_bold_border-&gt;font-&gt;italic = abap_false.
lo_style_bold_border-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_black.
lo_style_bold_border-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_bold_border-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_bold_border_guid = lo_style_bold_border-&gt;get_guid( ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;A&apos; ip_value = &apos;Test&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;B&apos; ip_value = &apos;Banana&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;C&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;D&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;E&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;F&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;G&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;Apple&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;E&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;F&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;G&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_merge( ip_row = 4 ip_column_start = &apos;B&apos; ip_column_end = &apos;G&apos; ).
&quot; Test also if merge works when oher merged chells are empty
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = &apos;Tomato&apos; ).
lo_worksheet-&gt;set_merge( ip_row = 6 ip_column_start = &apos;B&apos; ip_column_end = &apos;G&apos; ).
&quot; Test the patch provided by Victor Alekhin to merge cells in one column
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;B&apos; ip_value = &apos;Merge cells also over multiple rows by Victor Alekhin&apos; ).
lo_worksheet-&gt;set_merge( ip_row = 8 ip_column_start = &apos;B&apos; ip_column_end = &apos;G&apos; ip_row_to = 10 ).
&quot; Test the patch provided by Alexander Budeyev with different column merges
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;B&apos; ip_value = &apos;Merge cells with different merges by Alexander Budeyev&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;B&apos; ip_value = &apos;Test&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;D&apos; ip_value = &apos;Banana&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;D&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;E&apos; ip_value = &apos;Apple&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;F&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
&quot; Test merge (issue)
lo_worksheet-&gt;set_merge( ip_row = 13 ip_column_start = &apos;B&apos; ip_column_end = &apos;C&apos; ip_row_to = 15 ).
lo_worksheet-&gt;set_merge( ip_row = 13 ip_column_start = &apos;D&apos; ip_column_end = &apos;D&apos; ip_row_to = 14 ).
lo_worksheet-&gt;set_merge( ip_row = 13 ip_column_start = &apos;E&apos; ip_column_end = &apos;F&apos; ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL14" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Alignment" LENGTH="26 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL14
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel14.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_center TYPE REF TO zcl_excel_style,
lo_style_right TYPE REF TO zcl_excel_style,
lo_style_left TYPE REF TO zcl_excel_style,
lo_style_general TYPE REF TO zcl_excel_style,
lo_style_bottom TYPE REF TO zcl_excel_style,
lo_style_middle TYPE REF TO zcl_excel_style,
lo_style_top TYPE REF TO zcl_excel_style,
lo_style_justify TYPE REF TO zcl_excel_style,
lo_style_mixed TYPE REF TO zcl_excel_style,
lo_style_mixed_wrap TYPE REF TO zcl_excel_style,
lo_style_rotated TYPE REF TO zcl_excel_style,
lo_style_shrink TYPE REF TO zcl_excel_style,
lo_style_indent TYPE REF TO zcl_excel_style,
lv_style_center_guid TYPE zexcel_cell_style,
lv_style_right_guid TYPE zexcel_cell_style,
lv_style_left_guid TYPE zexcel_cell_style,
lv_style_general_guid TYPE zexcel_cell_style,
lv_style_bottom_guid TYPE zexcel_cell_style,
lv_style_middle_guid TYPE zexcel_cell_style,
lv_style_top_guid TYPE zexcel_cell_style,
lv_style_justify_guid TYPE zexcel_cell_style,
lv_style_mixed_guid TYPE zexcel_cell_style,
lv_style_mixed_wrap_guid TYPE zexcel_cell_style,
lv_style_rotated_guid TYPE zexcel_cell_style,
lv_style_shrink_guid TYPE zexcel_cell_style,
lv_style_indent_guid TYPE zexcel_cell_style.
DATA: lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;14_Alignment.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;sheet1&apos; ).
&quot;Center
lo_style_center = lo_excel-&gt;add_new_style( ).
lo_style_center-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lv_style_center_guid = lo_style_center-&gt;get_guid( ).
&quot;Right
lo_style_right = lo_excel-&gt;add_new_style( ).
lo_style_right-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_right.
lv_style_right_guid = lo_style_right-&gt;get_guid( ).
&quot;Left
lo_style_left = lo_excel-&gt;add_new_style( ).
lo_style_left-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_left.
lv_style_left_guid = lo_style_left-&gt;get_guid( ).
&quot;General
lo_style_general = lo_excel-&gt;add_new_style( ).
lo_style_general-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_general.
lv_style_general_guid = lo_style_general-&gt;get_guid( ).
&quot;Bottom
lo_style_bottom = lo_excel-&gt;add_new_style( ).
lo_style_bottom-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_bottom.
lv_style_bottom_guid = lo_style_bottom-&gt;get_guid( ).
&quot;Middle
lo_style_middle = lo_excel-&gt;add_new_style( ).
lo_style_middle-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lv_style_middle_guid = lo_style_middle-&gt;get_guid( ).
&quot;Top
lo_style_top = lo_excel-&gt;add_new_style( ).
lo_style_top-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_top.
lv_style_top_guid = lo_style_top-&gt;get_guid( ).
&quot;Justify
lo_style_justify = lo_excel-&gt;add_new_style( ).
lo_style_justify-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_justify.
lv_style_justify_guid = lo_style_justify-&gt;get_guid( ).
&quot;Shrink
lo_style_shrink = lo_excel-&gt;add_new_style( ).
lo_style_shrink-&gt;alignment-&gt;shrinktofit = abap_true.
lv_style_shrink_guid = lo_style_shrink-&gt;get_guid( ).
&quot;Indent
lo_style_indent = lo_excel-&gt;add_new_style( ).
lo_style_indent-&gt;alignment-&gt;indent = 5.
lv_style_indent_guid = lo_style_indent-&gt;get_guid( ).
&quot;Middle / Centered / Wrap
lo_style_mixed_wrap = lo_excel-&gt;add_new_style( ).
lo_style_mixed_wrap-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_mixed_wrap-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lo_style_mixed_wrap-&gt;alignment-&gt;wraptext = abap_true.
lv_style_mixed_wrap_guid = lo_style_mixed_wrap-&gt;get_guid( ).
&quot;Middle / Centered / Wrap
lo_style_mixed = lo_excel-&gt;add_new_style( ).
lo_style_mixed-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_mixed-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lv_style_mixed_guid = lo_style_mixed-&gt;get_guid( ).
&quot;Center
lo_style_rotated = lo_excel-&gt;add_new_style( ).
lo_style_rotated-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_rotated-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lo_style_rotated-&gt;alignment-&gt;textrotation = 165. &quot; -75ð == 90ð + 75ð
lv_style_rotated_guid = lo_style_rotated-&gt;get_guid( ).
&quot; Set row size for first 7 rows to 40
DO 7 TIMES.
lo_row_dimension = lo_worksheet-&gt;get_row_dimension( sy-index ).
lo_row_dimension-&gt;set_row_height( 40 ).
ENDDO.
&quot;Horizontal alignment
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;Centered Text&apos; ip_style = lv_style_center_guid ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;B&apos; ip_value = &apos;Right Text&apos; ip_style = lv_style_right_guid ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = &apos;Left Text&apos; ip_style = lv_style_left_guid ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;B&apos; ip_value = &apos;General Text&apos; ip_style = lv_style_general_guid ).
&quot; Shrink &amp; indent
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;F&apos; ip_value = &apos;Text shrinked&apos; ip_style = lv_style_shrink_guid ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;F&apos; ip_value = &apos;Text indented&apos; ip_style = lv_style_indent_guid ).
&quot;Vertical alignment
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;Bottom Text&apos; ip_style = lv_style_bottom_guid ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;D&apos; ip_value = &apos;Middle Text&apos; ip_style = lv_style_middle_guid ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;D&apos; ip_value = &apos;Top Text&apos; ip_style = lv_style_top_guid ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;D&apos; ip_value = &apos;Justify Text&apos; ip_style = lv_style_justify_guid ).
&quot; Wrapped
lo_worksheet-&gt;set_cell( ip_row = 10 ip_column = &apos;B&apos;
ip_value = &apos;This is a wrapped text centered in the middle&apos;
ip_style = lv_style_mixed_wrap_guid ).
&quot; Rotated
lo_worksheet-&gt;set_cell( ip_row = 10 ip_column = &apos;D&apos;
ip_value = &apos;This is a centered text rotated by -75ð&apos;
ip_style = lv_style_rotated_guid ).
&quot; forced line break
DATA: lv_value TYPE string.
CONCATENATE &apos;This is a wrapped text centered in the middle&apos; cl_abap_char_utilities=&gt;cr_lf
&apos;and a manuall line break.&apos; INTO lv_value.
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;B&apos;
ip_value = lv_value
ip_style = lv_style_mixed_guid ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL15" VARCL="X" SUBC="1" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Reader" LENGTH="22 "/>
<textElement ID="S" KEY="P_NOOUT" ENTRY=" Hide output" LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL15
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp; 2010-10-30, Gregor Wolf:
*&amp; Added the functionality to ouput the read table content
*&amp; 2011-12-19, Shahrin Shahrulzaman:
*&amp; Added the functionality to have multiple input and output files
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel15.
TYPE-POOLS: abap.
TYPES:
BEGIN OF t_demo_excel15,
input TYPE string,
END OF t_demo_excel15.
DATA: excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
reader TYPE REF TO zif_excel_reader.
DATA: ex TYPE REF TO zcx_excel,
msg TYPE string.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_workdir TYPE string,
output_file_path TYPE string,
input_file_path TYPE string,
lv_file_separator TYPE c.
DATA: worksheet TYPE REF TO zcl_excel_worksheet,
highest_column TYPE zexcel_cell_column,
highest_row TYPE int4,
column TYPE zexcel_cell_column VALUE 1,
col_str TYPE zexcel_cell_column_alpha,
row TYPE int4 VALUE 1,
value TYPE zexcel_cell_value.
DATA:
lt_files TYPE TABLE OF t_demo_excel15.
FIELD-SYMBOLS: &lt;wa_files&gt; TYPE t_demo_excel15.
PARAMETERS: p_path TYPE zexcel_export_dir,
p_noout TYPE xfeld DEFAULT abap_true.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
APPEND INITIAL LINE TO lt_files ASSIGNING &lt;wa_files&gt;.
&lt;wa_files&gt;-input = &apos;01_HelloWorld.xlsx&apos;.
APPEND INITIAL LINE TO lt_files ASSIGNING &lt;wa_files&gt;.
&lt;wa_files&gt;-input = &apos;02_Styles.xlsx&apos;.
APPEND INITIAL LINE TO lt_files ASSIGNING &lt;wa_files&gt;.
&lt;wa_files&gt;-input = &apos;03_iTab.xlsx&apos;.
APPEND INITIAL LINE TO lt_files ASSIGNING &lt;wa_files&gt;.
&lt;wa_files&gt;-input = &apos;04_Sheets.xlsx&apos;.
APPEND INITIAL LINE TO lt_files ASSIGNING &lt;wa_files&gt;.
&lt;wa_files&gt;-input = &apos;08_Range.xlsx&apos;.
APPEND INITIAL LINE TO lt_files ASSIGNING &lt;wa_files&gt;.
&lt;wa_files&gt;-input = &apos;13_MergedCells.xlsx&apos;.
APPEND INITIAL LINE TO lt_files ASSIGNING &lt;wa_files&gt;.
&lt;wa_files&gt;-input = &apos;31_AutosizeWithDifferentFontSizes.xlsx&apos;.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
LOOP AT lt_files ASSIGNING &lt;wa_files&gt;.
CONCATENATE p_path lv_file_separator &lt;wa_files&gt;-input INTO input_file_path.
CONCATENATE p_path lv_file_separator &apos;15_&apos; &lt;wa_files&gt;-input INTO output_file_path.
REPLACE &apos;.xlsx&apos; IN output_file_path WITH &apos;FromReader.xlsx&apos;.
TRY.
CREATE OBJECT reader TYPE zcl_excel_reader_2007.
excel = reader-&gt;load_file( input_file_path ).
IF p_noout EQ abap_false.
worksheet = excel-&gt;get_active_worksheet( ).
highest_column = worksheet-&gt;get_highest_column( ).
highest_row = worksheet-&gt;get_highest_row( ).
WRITE: &apos;Highest column: &apos;, highest_column, &apos;Highest row: &apos;, highest_row.
WRITE: /.
WHILE row &lt;= highest_row.
WHILE column &lt;= highest_column.
col_str = zcl_excel_common=&gt;convert_column2alpha( column ).
worksheet-&gt;get_cell(
EXPORTING
ip_column = col_str
ip_row = row
IMPORTING
ep_value = value
).
WRITE: value.
column = column + 1.
ENDWHILE.
WRITE: /.
column = 1.
row = row + 1.
ENDWHILE.
ENDIF.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = output_file_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).
CATCH zcx_excel INTO ex. &quot; Exceptions for ABAP2XLSX
msg = ex-&gt;get_text( ).
WRITE: / msg.
ENDTRY.
ENDLOOP.</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL16" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Drawings" LENGTH="25 "/>
<textElement ID="S" KEY="POBJTYPE" ENTRY="D ." LENGTH="9 "/>
<textElement ID="S" KEY="P_CLASS" ENTRY="D ." LENGTH="9 "/>
<textElement ID="S" KEY="P_OBJID" ENTRY="D ." LENGTH="9 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL16
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel16.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: ls_io TYPE skwf_io.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;16_Drawings.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_objid TYPE sdok_docid DEFAULT &apos;456694429165174BE10000000A1550C0&apos;, &quot; Question mark in standard Web Dynpro WDT_QUIZ
p_class TYPE sdok_class DEFAULT &apos;M_IMAGE_P&apos;,
pobjtype TYPE skwf_ioty DEFAULT &apos;P&apos;.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot;Load samle image
DATA: lt_bin TYPE solix_tab,
lv_len TYPE i,
lv_content TYPE xstring,
ls_key TYPE wwwdatatab.
CALL METHOD cl_gui_frontend_services=&gt;gui_upload
EXPORTING
filename = &apos;c:\Program Files\SAP\FrontEnd\SAPgui\wwi\graphics\W_bio.bmp&apos;
filetype = &apos;BIN&apos;
IMPORTING
filelength = lv_len
CHANGING
data_tab = lt_bin
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING
input_length = lv_len
IMPORTING
buffer = lv_content
TABLES
binary_tab = lt_bin
EXCEPTIONS
failed = 1
OTHERS = 2.
IF sy-subrc &lt;&gt; 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Image from web repository (SMW0)&apos; ).
&quot; create global drawing, set position and media from web repository
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 3
ip_from_col = &apos;B&apos; ).
ls_key-relid = &apos;MI&apos;.
ls_key-objid = &apos;SAPLOGO.GIF&apos;.
lo_drawing-&gt;set_media_www( ip_key = ls_key
ip_width = 166
ip_height = 75 ).
&quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; another drawing from a XSTRING read from a file
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Image from a file (c:\Program Files\SAP\FrontEnd\SAPgui\wwi\graphics\W_bio.bmp)&apos; ).
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 9
ip_from_col = &apos;B&apos; ).
lo_drawing-&gt;set_media( ip_media = lv_content
ip_media_type = zcl_excel_drawing=&gt;c_media_type_bmp
ip_width = 83
ip_height = 160 ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
ls_io-objid = p_objid.
ls_io-class = p_class.
ls_io-objtype = pobjtype.
IF ls_io IS NOT INITIAL.
&quot; another drawing from a XSTRING read from a file
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 18 ip_value = &apos;Mime repository (by default Question mark in standard Web Dynpro WDT_QUIZ)&apos; ).
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 19
ip_from_col = &apos;B&apos; ).
lo_drawing-&gt;set_media_mime( ip_io = ls_io
ip_width = 126
ip_height = 145 ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
ENDIF.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL29" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Marco-Enabled workbook" LENGTH="38 "/>
<textElement ID="S" KEY="P_PATH" ENTRY=" Macro-enabled Workbook" LENGTH="30 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL26
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel29.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_excel_reader TYPE REF TO zif_excel_reader.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_filename TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
PARAMETERS: p_path TYPE zexcel_export_dir OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
DATA: lt_filetable TYPE filetable,
lv_rc TYPE i.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
CALL METHOD cl_gui_frontend_services=&gt;file_open_dialog
EXPORTING
window_title = &apos;Select Macro-Enabled Workbook template&apos;
default_extension = &apos;*.xlsm&apos;
file_filter = &apos;Excel Macro-Enabled Workbook (*.xlsm)|*.xlsm&apos;
initial_directory = lv_workdir
CHANGING
file_table = lt_filetable
rc = lv_rc
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc &lt;&gt; 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
READ TABLE lt_filetable INTO lv_filename INDEX 1.
p_path = lv_filename.
START-OF-SELECTION.
lv_full_path = p_path.
CREATE OBJECT lo_excel_reader TYPE zcl_excel_reader_xlsm.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_xlsm.
lo_excel = lo_excel_reader-&gt;load_file( lv_full_path ).
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
REPLACE &apos;.xlsm&apos; IN lv_full_path WITH &apos;FromReader.xlsm&apos;.
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL28" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: export in CSV" LENGTH="29 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL28
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel28.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;28_HelloWorld.csv&apos;.
PARAMETERS: p_path TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = p_path ).
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = sy-datum ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = sy-uzeit ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;B&apos; ).
column_dimension-&gt;set_width( 11 ).
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the second sheet&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_csv.
zcl_excel_writer_csv=&gt;set_delimiter( ip_value = cl_abap_char_utilities=&gt;horizontal_tab ).
zcl_excel_writer_csv=&gt;set_enclosure( ip_value = &apos;&apos;&apos;&apos; ).
zcl_excel_writer_csv=&gt;set_endofline( ip_value = cl_abap_char_utilities=&gt;cr_lf ).
zcl_excel_writer_csv=&gt;set_active_sheet_index( i_active_worksheet = 2 ).
* zcl_excel_writer_csv=&gt;set_active_sheet_index_by_name( I_WORKSHEET_NAME = &apos;Sheet2&apos; ).
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
REPLACE FIRST OCCURRENCE OF &apos;.csv&apos; IN lv_full_path WITH &apos;_Sheet2.csv&apos;.
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).
* zcl_excel_writer_csv=&gt;set_active_sheet_index( i_active_worksheet = 2 ).
zcl_excel_writer_csv=&gt;set_active_sheet_index_by_name( I_WORKSHEET_NAME = &apos;Sheet1&apos; ).
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
REPLACE FIRST OCCURRENCE OF &apos;_Sheet2.csv&apos; IN lv_full_path WITH &apos;_Sheet1.csv&apos;.
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL27" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Data conditional formatting with styles" LENGTH="56 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_READER" ENTRY=" Write back after using Reader" LENGTH="37 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL27
*&amp; Test Styles for ABAP2XLSX
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel27.
CONSTANTS: c_fish TYPE string VALUE &apos;Fish&apos;.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lo_style_1 TYPE REF TO zcl_excel_style,
lo_style_2 TYPE REF TO zcl_excel_style,
lv_style_1_guid TYPE zexcel_cell_style,
lv_style_2_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis.
DATA: lv_title TYPE zexcel_sheet_title.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;27_ConditionalFormatting.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
lo_style_1 = lo_excel-&gt;add_new_style( ).
lo_style_1-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_1-&gt;fill-&gt;bgcolor-rgb = zcl_excel_style_color=&gt;c_green.
lv_style_1_guid = lo_style_1-&gt;get_guid( ).
lo_style_2 = lo_excel-&gt;add_new_style( ).
lo_style_2-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_2-&gt;fill-&gt;bgcolor-rgb = zcl_excel_style_color=&gt;c_red.
lv_style_2_guid = lo_style_2-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lv_title = &apos;Data Validation&apos;.
lo_worksheet-&gt;set_title( lv_title ).
&quot; Set values for dropdown
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;A&apos; ip_value = c_fish ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = &apos;Anchovy&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;A&apos; ip_value = &apos;Carp&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;A&apos; ip_value = &apos;Catfish&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;A&apos; ip_value = &apos;Cod&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;A&apos; ip_value = &apos;Eel&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;A&apos; ip_value = &apos;Haddock&apos; ).
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = c_fish.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;A&apos;
ip_start_row = 4
ip_stop_column = &apos;A&apos;
ip_stop_row = 9 ).
&quot; 1st validation
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = c_fish.
lo_data_validation-&gt;cell_row = 2.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;C&apos; ip_value = &apos;Select a value&apos; ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis-formula = &apos;&quot;Anchovy&quot;&apos;.
ls_cellis-operator = zcl_excel_style_conditional=&gt;c_operator_equal.
ls_cellis-cell_style = lv_style_1_guid.
lo_style_conditional-&gt;mode_cellis = ls_cellis.
lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 2
ip_stop_column = &apos;C&apos;
ip_stop_row = 2 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_cellis.
ls_cellis-formula = &apos;&quot;Carp&quot;&apos;.
ls_cellis-operator = zcl_excel_style_conditional=&gt;c_operator_equal.
ls_cellis-cell_style = lv_style_2_guid.
lo_style_conditional-&gt;mode_cellis = ls_cellis.
lo_style_conditional-&gt;priority = 2.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 2
ip_stop_column = &apos;C&apos;
ip_stop_row = 2 ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL26" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Test Excel Reader (Now in ZDEMO_EXCEL15)" LENGTH="56 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_READER" ENTRY=" Write back after using Reader" LENGTH="37 "/>
</language>
</textPool>
<pfstatus>
<pfstatus_sta CODE="ALV_STATUS" MODAL="D" ACTCODE="000001" PFKCODE="000001" BUTCODE="0001" INT_NOTE="Standard for General List Output"/>
<pfstatus_fun CODE="%PC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_EXPORT" ICON_ID="@49@" FUN_TEXT="Local file..."/>
<pfstatus_fun CODE="%SC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH" ICON_ID="@13@" FUN_TEXT="Find"/>
<pfstatus_fun CODE="%SC+" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH_NEXT" ICON_ID="@4E@" FUN_TEXT="Find next"/>
<pfstatus_fun CODE="%SL" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Mail recipient"/>
<pfstatus_fun CODE="&amp;ABC" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="ABC Analysis"/>
<pfstatus_fun CODE="&amp;ALL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_ALL" ICON_ID="@4B@" FUN_TEXT="Select all"/>
<pfstatus_fun CODE="&amp;AQW" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Word processing..."/>
<pfstatus_fun CODE="&amp;AVE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_SAVE" ICON_ID="@DN@" FUN_TEXT="Save layout..."/>
<pfstatus_fun CODE="&amp;CRB" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_LEFT" ICON_ID="@0B@" FUN_TEXT="First Column"/>
<pfstatus_fun CODE="&amp;CRE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_RIGHT" ICON_ID="@0C@" FUN_TEXT="Last column"/>
<pfstatus_fun CODE="&amp;CRL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_LEFT" ICON_ID="@0D@" FUN_TEXT="Column left"/>
<pfstatus_fun CODE="&amp;CRR" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_RIGHT" ICON_ID="@0E@" FUN_TEXT="Column right"/>
<pfstatus_fun CODE="&amp;EB9" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TABLE_SETTINGS" ICON_ID="@36@" FUN_TEXT="Call Up Report"/>
<pfstatus_fun CODE="&amp;ETA" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Details"/>
<pfstatus_fun CODE="&amp;F03" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Back"/>
<pfstatus_fun CODE="&amp;F12" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_CANCEL" ICON_ID="@0W@" FUN_TEXT="Cancel"/>
<pfstatus_fun CODE="&amp;F15" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Exit"/>
<pfstatus_fun CODE="&amp;IC1" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Choose" PATH="S"/>
<pfstatus_fun CODE="&amp;ILD" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FILTER_UNDO" ICON_ID="@GD@" FUN_TEXT="Delete Filter"/>
<pfstatus_fun CODE="&amp;ILT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME=" ICON_FILTER" ICON_ID="@4G@" FUN_TEXT="Set filter"/>
<pfstatus_fun CODE="&amp;LFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="List status..."/>
<pfstatus_fun CODE="&amp;NFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="Selections..." INFO_TEXT="Selections"/>
<pfstatus_fun CODE="&amp;NTE" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Refresh"/>
<pfstatus_fun CODE="&amp;OAD" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_CHOOSE" ICON_ID="@DM@" FUN_TEXT="Select layout..."/>
<pfstatus_fun CODE="&amp;ODN" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_DOWN" ICON_ID="@3F@" FUN_TEXT="Sort in descendin."/>
<pfstatus_fun CODE="&amp;OL0" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANTS" ICON_ID="@LZ@" FUN_TEXT="Change layout..."/>
<pfstatus_fun CODE="&amp;OMP" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Collapse"/>
<pfstatus_fun CODE="&amp;OUP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_UP" ICON_ID="@3E@" FUN_TEXT="Sort in Ascending..."/>
<pfstatus_fun CODE="&amp;RNT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_PRINT" ICON_ID="@0X@" FUN_TEXT="Print"/>
<pfstatus_fun CODE="&amp;RNT_PREV" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Print preview"/>
<pfstatus_fun CODE="&amp;SAL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_DESELECT_ALL" ICON_ID="@4D@" FUN_TEXT="Deselect all"/>
<pfstatus_fun CODE="&amp;SUM" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INTERMEDIATE_SUM" ICON_ID="@5V@" FUN_TEXT="Subtotals..."/>
<pfstatus_fun CODE="&amp;UMC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SUM" ICON_ID="@3Z@" FUN_TEXT="Total"/>
<pfstatus_fun CODE="&amp;XML" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="XML Export..."/>
<pfstatus_fun CODE="&amp;XPA" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Expand"/>
<pfstatus_fun CODE="&amp;XXL" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Spreadsheet..."/>
<pfstatus_fun CODE="EXCEL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XLV" ICON_ID="@J3@" FUN_TEXT="Excel" ICON_TEXT="Export to Excel" INFO_TEXT="Export to Excel"/>
<pfstatus_fun CODE="P" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="First Page"/>
<pfstatus_fun CODE="P+" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_NEXT_PAGE" ICON_ID="@30@" FUN_TEXT="Next page"/>
<pfstatus_fun CODE="P++" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_LAST_PAGE" ICON_ID="@31@" FUN_TEXT="Last Page"/>
<pfstatus_fun CODE="P-" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_PREVIOUS_PAGE" ICON_ID="@2Z@" FUN_TEXT="Previous Page"/>
<pfstatus_fun CODE="P--" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FIRST_PAGE" ICON_ID="@2Y@" FUN_TEXT="First Page"/>
<pfstatus_mtx CODE="000001" TEXT_TYPE="S" TEXT="List"/>
<pfstatus_mtx CODE="000002" TEXT_TYPE="S" TEXT="Edit"/>
<pfstatus_mtx CODE="000003" TEXT_TYPE="S" TEXT="Goto"/>
<pfstatus_mtx CODE="000004" TEXT_TYPE="S" TEXT="Settings"/>
<pfstatus_act CODE="000001" NO="01" MENUCODE="000001"/>
<pfstatus_act CODE="000001" NO="02" MENUCODE="000002"/>
<pfstatus_act CODE="000001" NO="03" MENUCODE="000003"/>
<pfstatus_act CODE="000001" NO="04" MENUCODE="000004"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="01" PFNO="39"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="02" PFNO="37"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="04" PFNO="05"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="05" PFNO="06"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="07" PFNO="28"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="08" PFNO="40"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="09" PFNO="29"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="10" PFNO="38"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="12" PFNO="30"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="13" PFNO="42"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="15" PFNO="45"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="17" PFNO="32"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="18" PFNO="33"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="19" PFNO="34"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="20" PFNO="09"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="22" PFNO="41"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="23" PFNO="07"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="25" PFNO="18"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="26" PFNO="26"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="27" PFNO="27"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="28" PFNO="19"/>
<pfstatus_pfk CODE="000001" PFNO="02" FUNCODE="&amp;IC1" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="03" FUNCODE="&amp;F03" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="05" FUNCODE="&amp;ALL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="06" FUNCODE="&amp;SAL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="07" FUNCODE="&amp;NFO" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="08" FUNCODE="&amp;NTE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="09" FUNCODE="EXCEL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="12" FUNCODE="&amp;F12" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="15" FUNCODE="&amp;F15" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="18" FUNCODE="&amp;CRB" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="19" FUNCODE="&amp;CRE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="21" FUNCODE="P" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="22" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="23" FUNCODE="P+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="24" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="25" FUNCODE="&amp;ABC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="26" FUNCODE="&amp;CRL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="27" FUNCODE="&amp;CRR" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="28" FUNCODE="&amp;OUP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="29" FUNCODE="&amp;ILT" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="30" FUNCODE="&amp;UMC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="31" FUNCODE="%SL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="32" FUNCODE="&amp;OL0" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="33" FUNCODE="&amp;OAD" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="34" FUNCODE="&amp;AVE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="35" FUNCODE="&amp;XPA" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="37" FUNCODE="&amp;EB9" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="38" FUNCODE="&amp;ILD" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="39" FUNCODE="&amp;ETA" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="40" FUNCODE="&amp;ODN" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="41" FUNCODE="&amp;LFO" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="42" FUNCODE="&amp;SUM" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="43" FUNCODE="&amp;XXL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="44" FUNCODE="&amp;AQW" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="45" FUNCODE="%PC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="46" FUNCODE="&amp;RNT_PREV" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="47" FUNCODE="&amp;OMP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="48" FUNCODE="&amp;XML" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="71" FUNCODE="%SC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="80" FUNCODE="P--" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="81" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="82" FUNCODE="P+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="83" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="84" FUNCODE="%SC+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="86" FUNCODE="&amp;RNT" FUNNO="001"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%PC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ABC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ALL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AQW"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AVE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRB"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRR"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;EB9"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ETA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F03"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F12"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F15"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;IC1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ILD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ILT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;LFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;NFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;NTE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OAD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ODN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OL0"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OMP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OUP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;RNT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;RNT_PREV"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;SAL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;SUM"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;UMC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XML"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XPA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XXL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXCEL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P++"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P-"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P--"/>
<pfstatus_doc OBJ_TYPE="A" OBJ_CODE="000001" MODAL="D" INT_NOTE="Standard for General List Output"/>
<pfstatus_doc OBJ_TYPE="P" OBJ_CODE="000001" MODAL="D" INT_NOTE="Standard for General List Output"/>
<pfstatus_doc OBJ_TYPE="B" OBJ_CODE="000001" SUB_CODE="0001" MODAL="D" INT_NOTE="Standard for General List Output"/>
</pfstatus>
<source>*--------------------------------------------------------------------*
* REPORT ZDEMO_EXCEL26
* Demo for method zcl_excel_worksheet-bind_object:
* export data from ALV (CL_GUI_ALV_GRID) object or cl_salv_table object
* to Excel.
*--------------------------------------------------------------------*
report zdemo_excel26.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events definition.
public section.
methods:
on_user_command for event added_function of cl_salv_events
importing e_salv_function.
endclass. &quot;lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events implementation.
method on_user_command.
perform user_command.&quot; using e_salv_function text-i08.
endmethod. &quot;on_user_command
endclass. &quot;lcl_handle_events IMPLEMENTATION
*--------------------------------------------------------------------*
* DATA DECLARATION
*--------------------------------------------------------------------*
data: lo_excel type ref to zcl_excel,
lo_worksheet type ref to zcl_excel_worksheet,
lo_salv type ref to cl_salv_table,
gr_events type ref to lcl_handle_events,
lr_events type ref to cl_salv_events_table,
gt_sbook type table of sbook.
data: l_path type string, &quot; local dir
lv_workdir type string,
lv_file_separator type c.
constants:
lv_default_file_name type string value &apos;26_Bind_ALV.xlsx&apos;.
*--------------------------------------------------------------------*
*START-OF-SELECTION
*--------------------------------------------------------------------*
start-of-selection.
* get data
* ------------------------------------------
select *
into table gt_sbook[]
from sbook &quot;#EC CI_NOWHERE
up to 10 rows.
* Display ALV
* ------------------------------------------
try.
cl_salv_table=&gt;factory(
exporting
list_display = abap_false
importing
r_salv_table = lo_salv
changing
t_table = gt_sbook[] ).
catch cx_salv_msg .
endtry.
try.
lo_salv-&gt;set_screen_status(
exporting
report = sy-repid
pfstatus = &apos;ALV_STATUS&apos;
set_functions = lo_salv-&gt;c_functions_all ).
catch cx_salv_msg .
endtry.
lr_events = lo_salv-&gt;get_event( ).
create object gr_events.
set handler gr_events-&gt;on_user_command for lr_events.
lo_salv-&gt;display( ).
*&amp;---------------------------------------------------------------------*
*&amp; Form USER_COMMAND
*&amp;---------------------------------------------------------------------*
* ALV user command
*--------------------------------------------------------------------*
form user_command .
if sy-ucomm = &apos;EXCEL&apos;.
* get save file path
cl_gui_frontend_services=&gt;get_sapgui_workdir( changing sapworkdir = l_path ).
cl_gui_cfw=&gt;flush( ).
cl_gui_frontend_services=&gt;directory_browse(
exporting initial_folder = l_path
changing selected_folder = l_path ).
if l_path is initial.
cl_gui_frontend_services=&gt;get_sapgui_workdir(
changing sapworkdir = lv_workdir ).
l_path = lv_workdir.
endif.
cl_gui_frontend_services=&gt;get_file_separator(
changing file_separator = lv_file_separator ).
concatenate l_path lv_file_separator lv_default_file_name
into l_path.
* export file to save file path
perform export_to_excel.
endif.
endform. &quot; USER_COMMAND
*--------------------------------------------------------------------*
* FORM EXPORT_TO_EXCEL
*--------------------------------------------------------------------*
* This subroutine is principal demo session
*--------------------------------------------------------------------*
form export_to_excel.
data: lo_converter type ref to zcl_excel_converter.
* create zcl_excel_worksheet object
create object lo_excel.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
* write to excel using method Bin_object
try.
lo_worksheet-&gt;bind_alv(
io_alv = lo_salv
it_table = gt_sbook
i_top = 2
i_left = 1
).
catch zcx_excel .
endtry.
perform write_file.
endform. &quot;EXPORT_TO_EXCEL
*&amp;---------------------------------------------------------------------*
*&amp; Form WRITE_FILE
*&amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --&gt; p1 text
* &lt;-- p2 text
*----------------------------------------------------------------------*
form write_file .
data: lt_file type solix_tab,
l_bytecount type i,
l_file type xstring.
data: lo_excel_writer type ref to zif_excel_writer.
data: ls_seoclass type seoclass.
create object lo_excel_writer type zcl_excel_writer_2007.
l_file = lo_excel_writer-&gt;write_file( lo_excel ).
select single * into ls_seoclass
from seoclass
where clsname = &apos;CL_BCS_CONVERT&apos;.
if sy-subrc = 0.
call method (ls_seoclass-clsname)=&gt;xstring_to_solix
exporting
iv_xstring = l_file
receiving
et_solix = lt_file.
l_bytecount = xstrlen( l_file ).
else.
&quot; Convert to binary
call function &apos;SCMS_XSTRING_TO_BINARY&apos;
exporting
buffer = l_file
importing
output_length = l_bytecount
tables
binary_tab = lt_file.
endif.
cl_gui_frontend_services=&gt;gui_download( exporting bin_filesize = l_bytecount
filename = l_path
filetype = &apos;BIN&apos;
changing data_tab = lt_file ).
endform. &quot; WRITE_FILE</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL25" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Write Hello World using Logical Path on the App Server" LENGTH="70 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL25
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel25.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_exception TYPE REF TO cx_root.
DATA: lv_file TYPE xstring.
CONSTANTS: lv_file_name TYPE string VALUE &apos;25_HelloWorld.xlsx&apos;.
DATA: lv_default_file_name TYPE string.
DATA: lv_error TYPE string.
CALL FUNCTION &apos;FILE_GET_NAME_USING_PATH&apos;
EXPORTING
logical_path = &apos;LOCAL_TEMPORARY_FILES&apos; &quot; Logical path&apos;
file_name = lv_file_name &quot; File name
IMPORTING
file_name_with_path = lv_default_file_name. &quot; File name with path
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
TRY.
OPEN DATASET lv_default_file_name FOR OUTPUT IN BINARY MODE.
TRANSFER lv_file TO lv_default_file_name.
CLOSE DATASET lv_default_file_name.
CATCH cx_root INTO lo_exception.
lv_error = lo_exception-&gt;get_text( ).
MESSAGE lv_error TYPE &apos;I&apos;.
ENDTRY.</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL24" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Multiple sheets with different default date formats" LENGTH="70 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL23
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel24.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: lv_value TYPE string.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;24_Sheets_with_different_default_date_formats.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 1 ip_value = &apos;Default Date Format&apos; ).
&quot; Insert current date
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 3 ip_value = &apos;Current Date:&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 4 ip_value = sy-datum ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet2!A1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 6 ip_value = &apos;This is a link to the second sheet&apos; ip_hyperlink = lo_hyperlink ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;A&apos; ).
column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
&quot; Second sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_default_excel_date_format( zcl_excel_style_number_format=&gt;c_format_date_yyyymmdd ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 1 ip_value = &apos;Date Format set to YYYYMMDD&apos; ).
&quot; Insert current date
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 3 ip_value = &apos;Current Date:&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 4 ip_value = sy-datum ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet3!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 6 ip_value = &apos;This is link to the third sheet&apos; ip_hyperlink = lo_hyperlink ).
&quot; Third sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
&quot; TODO: It seems that the zcl_excel_style_number_format=&gt;c_format_date_yyyymmddslash
&quot; does not produce a valid output
lo_worksheet-&gt;set_default_excel_date_format( zcl_excel_style_number_format=&gt;c_format_date_yyyymmddslash ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet3&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 1 ip_value = &apos;Date Format set to YYYY/MM/DD&apos; ).
&quot; Insert current date
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 3 ip_value = &apos;Current Date:&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 4 ip_value = sy-datum ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet4!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 6 ip_value = &apos;This is link to the 4th sheet&apos; ip_hyperlink = lo_hyperlink ).
&quot; 4th sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
&quot; Illustrate the Problem caused by:
&quot; Excel 2000 incorrectly assumes that the year 1900 is a leap year.
&quot; http://support.microsoft.com/kb/214326/en-us
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet4&apos; ).
&quot; Loop from Start Date to the Max Date current data in daily steps
CONSTANTS: lv_max type d VALUE &apos;19000302&apos;.
DATA: lv_date TYPE d VALUE &apos;19000226&apos;,
lv_row TYPE i.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;Formated date&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = &apos;Integer value for this date&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 3 ip_value = &apos;Date as string&apos; ).
lv_row = 4.
WHILE lv_date &lt; lv_max.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = lv_row ip_value = lv_date ).
lv_value = zcl_excel_common=&gt;date_to_excel_string( lv_date ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = lv_row ip_value = lv_value ).
lv_value = lv_date.
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = lv_row ip_value = lv_value ).
lv_date = lv_date + 1.
lv_row = lv_row + 1.
ENDWHILE.
lv_row = lv_row + 1.
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet1!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = lv_row ip_value = &apos;This is link to the first sheet&apos; ip_hyperlink = lo_hyperlink ).
lo_excel-&gt;set_active_sheet_index_by_name( &apos;Sheet1&apos; ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL23" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Multiple sheets with and w/o grid lines, print options" LENGTH="70 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL23
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel23.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;23_Sheets_with_and_without_grid_lines.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the first sheet with grid lines and print centered horizontal &amp; vertical&apos; ).
lo_worksheet-&gt;set_show_gridlines( i_show_gridlines = abap_true ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet2!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;This is a link to the second sheet&apos; ip_hyperlink = lo_hyperlink ).
lo_worksheet-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_protected.
lo_worksheet-&gt;zif_excel_sheet_properties~zoomscale = 150.
lo_worksheet-&gt;ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_NORMAL = 150.
lo_worksheet-&gt;sheet_setup-&gt;vertical_centered = abap_true.
lo_worksheet-&gt;sheet_setup-&gt;horizontal_centered = abap_true.
&quot; Second sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the second sheet with grid lines in display and print&apos; ).
lo_worksheet-&gt;set_show_gridlines( i_show_gridlines = abap_true ).
lo_worksheet-&gt;set_print_gridlines( i_print_gridlines = abap_true ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet3!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;This is link to the third sheet&apos; ip_hyperlink = lo_hyperlink ).
lo_worksheet-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_protected.
lo_worksheet-&gt;zif_excel_sheet_properties~zoomscale = 160.
lo_worksheet-&gt;ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_PAGELAYOUTVIEW = 200.
&quot; Third sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet3&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the third sheet without grid lines in display and print&apos; ).
lo_worksheet-&gt;set_show_gridlines( i_show_gridlines = abap_false ).
lo_worksheet-&gt;set_print_gridlines( i_print_gridlines = abap_false ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet4!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;This is link to the fourth sheet&apos; ip_hyperlink = lo_hyperlink ).
lo_worksheet-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_protected.
lo_worksheet-&gt;zif_excel_sheet_properties~zoomscale = 170.
lo_worksheet-&gt;ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_SHEETLAYOUTVIEW = 150.
&quot; Fourth sheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet4&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the fourth sheet with grid lines and print centered ONLY horizontal&apos; ).
lo_worksheet-&gt;set_show_gridlines( i_show_gridlines = abap_true ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_internal_link( iv_location = &apos;Sheet1!B2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = &apos;This is link to the first sheet&apos; ip_hyperlink = lo_hyperlink ).
lo_worksheet-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_protected.
lo_worksheet-&gt;zif_excel_sheet_properties~zoomscale = 150.
lo_worksheet-&gt;ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_NORMAL = 150.
&quot; lo_worksheet-&gt;sheet_setup-&gt;vertical_centered = abap_true.
lo_worksheet-&gt;sheet_setup-&gt;horizontal_centered = abap_true.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL17" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Sheet Protection" LENGTH="33 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_PWD" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL17
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel17.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_protection TYPE REF TO zcl_excel_style,
lv_style_protection_guid TYPE zexcel_cell_style,
lo_style TYPE REF TO zcl_excel_style,
lv_style TYPE zexcel_cell_style.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;17_SheetProtection.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_pwd TYPE zexcel_aes_password LOWER CASE DEFAULT &apos;secret&apos;.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_protected.
* lo_worksheet-&gt;zif_excel_sheet_protection~password = &apos;DAA7&apos;. &quot;it is the encoded word &quot;secret&quot;
lo_worksheet-&gt;zif_excel_sheet_protection~password = zcl_excel_common=&gt;encrypt_password( p_pwd ).
lo_worksheet-&gt;zif_excel_sheet_protection~sheet = zif_excel_sheet_protection=&gt;c_active.
lo_worksheet-&gt;zif_excel_sheet_protection~objects = zif_excel_sheet_protection=&gt;c_active.
lo_worksheet-&gt;zif_excel_sheet_protection~scenarios = zif_excel_sheet_protection=&gt;c_active.
&quot; First style to unlock a cell
lo_style_protection = lo_excel-&gt;add_new_style( ).
lo_style_protection-&gt;protection-&gt;locked = zcl_excel_style_protection=&gt;c_protection_unlocked.
lv_style_protection_guid = lo_style_protection-&gt;get_guid( ).
&quot; Another style which should not affect the unlock style
lo_style = lo_excel-&gt;add_new_style( ).
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style-&gt;fill-&gt;fgcolor-rgb = &apos;FFCC3333&apos;.
lv_style = lo_style-&gt;get_guid( ).
lo_worksheet-&gt;set_cell( ip_row = 3 ip_column = &apos;C&apos; ip_value = &apos;This cell is locked locked and has the second formating&apos; ip_style = lv_style ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;This cell is unlocked&apos; ip_style = lv_style_protection_guid ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;This cell is locked as all the others empty cell&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = &apos;This cell is unlocked&apos; ip_style = lv_style_protection_guid ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;This cell is unlocked&apos; ip_style = lv_style_protection_guid ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;This cell is locked as all the others empty cell&apos; ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL18" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Book protection" LENGTH="32 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL18
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel18.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_protection_guid TYPE zexcel_cell_style.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;18_BookProtection.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_excel-&gt;zif_excel_book_protection~protected = zif_excel_book_protection=&gt;c_protected.
lo_excel-&gt;zif_excel_book_protection~lockrevision = zif_excel_book_protection=&gt;c_locked.
lo_excel-&gt;zif_excel_book_protection~lockstructure = zif_excel_book_protection=&gt;c_locked.
lo_excel-&gt;zif_excel_book_protection~lockwindows = zif_excel_book_protection=&gt;c_locked.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;This cell is unlocked&apos; ip_style = lv_style_protection_guid ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL19" VARCL="X" SUBC="1" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="D">
<textElement ID="S" KEY="P_NOOUT" ENTRY=" Hide output" LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="26 "/>
</language>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Set active sheet" LENGTH="33 "/>
<textElement ID="S" KEY="P_NOOUT" ENTRY=" Hide output" LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="26 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL19
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel19.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;19_SetActiveSheet.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_noout TYPE xfeld DEFAULT abap_true.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; First Worksheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;First&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 1 ip_column = &apos;A&apos; ip_value = &apos;This is Sheet 1&apos; ).
&quot; Second Worksheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Second&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 1 ip_column = &apos;A&apos; ip_value = &apos;This is Sheet 2&apos; ).
&quot; Third Worksheet
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Third&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 1 ip_column = &apos;A&apos; ip_value = &apos;This is Sheet 3&apos; ).
IF p_noout EQ abap_false.
&quot; lo_excel-&gt;set_active_sheet_index_by_name( data_sheet_name ).
DATA: active_sheet_index TYPE zexcel_active_worksheet.
active_sheet_index = lo_excel-&gt;get_active_sheet_index( ).
WRITE: &apos;Sheet Index before: &apos;, active_sheet_index.
ENDIF.
lo_excel-&gt;set_active_sheet_index( &apos;2&apos; ).
IF p_noout EQ abap_false.
active_sheet_index = lo_excel-&gt;get_active_sheet_index( ).
WRITE: &apos;Sheet Index after: &apos;, active_sheet_index.
ENDIF.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL2" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Styles" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL2
*&amp; Test Styles for ABAP2XLSX
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel2.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style,
lo_style_filled TYPE REF TO zcl_excel_style,
lo_style_border TYPE REF TO zcl_excel_style,
lo_style_button TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lo_border_light TYPE REF TO zcl_excel_style_border.
DATA: lv_style_bold_guid TYPE zexcel_cell_style,
lv_style_underline_guid TYPE zexcel_cell_style,
lv_style_filled_guid TYPE zexcel_cell_style,
lv_style_filled_green_guid TYPE zexcel_cell_style,
lv_style_border_guid TYPE zexcel_cell_style,
lv_style_button_guid TYPE zexcel_cell_style,
lv_style_filled_turquoise_guid TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;02_Styles.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Create border object
CREATE OBJECT lo_border_dark.
lo_border_dark-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
lo_border_dark-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
CREATE OBJECT lo_border_light.
lo_border_light-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_gray.
lo_border_light-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
&quot; Create a bold / italic style
lo_style_bold = lo_excel-&gt;add_new_style( ).
lo_style_bold-&gt;font-&gt;bold = abap_true.
lo_style_bold-&gt;font-&gt;italic = abap_true.
lo_style_bold-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_arial.
lo_style_bold-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_none.
lo_style_bold-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_red.
lv_style_bold_guid = lo_style_bold-&gt;get_guid( ).
&quot; Create an underline double style
lo_style_underline = lo_excel-&gt;add_new_style( ).
lo_style_underline-&gt;font-&gt;underline = abap_true.
lo_style_underline-&gt;font-&gt;underline_mode = zcl_excel_style_font=&gt;c_underline_double.
lo_style_underline-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_roman.
lo_style_underline-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_none.
lo_style_underline-&gt;font-&gt;family = zcl_excel_style_font=&gt;c_family_roman.
lv_style_underline_guid = lo_style_underline-&gt;get_guid( ).
&quot; Create filled style yellow
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor-theme = zcl_excel_style_color=&gt;c_theme_accent6.
lv_style_filled_guid = lo_style_filled-&gt;get_guid( ).
&quot; Create border with button effects
lo_style_button = lo_excel-&gt;add_new_style( ).
lo_style_button-&gt;borders-&gt;right = lo_border_dark.
lo_style_button-&gt;borders-&gt;down = lo_border_dark.
lo_style_button-&gt;borders-&gt;left = lo_border_light.
lo_style_button-&gt;borders-&gt;top = lo_border_light.
lv_style_button_guid = lo_style_button-&gt;get_guid( ).
&quot;Create style with border
lo_style_border = lo_excel-&gt;add_new_style( ).
lo_style_border-&gt;borders-&gt;allborders = lo_border_dark.
lo_style_border-&gt;borders-&gt;diagonal = lo_border_dark.
lo_style_border-&gt;borders-&gt;diagonal_mode = zcl_excel_style_borders=&gt;c_diagonal_both.
lv_style_border_guid = lo_style_border-&gt;get_guid( ).
&quot; Create filled style green
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor-rgb = zcl_excel_style_color=&gt;c_green.
lo_style_filled-&gt;font-&gt;name = zcl_excel_style_font=&gt;c_name_cambria.
lo_style_filled-&gt;font-&gt;scheme = zcl_excel_style_font=&gt;c_scheme_major.
lv_style_filled_green_guid = lo_style_filled-&gt;get_guid( ).
&quot; Create filled style turquoise using legacy excel ver &lt;= 2003 palette. (https://code.sdn.sap.com/spaces/abap2xlsx/tickets/92)
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_excel-&gt;legacy_palette-&gt;set_color( &quot;replace built-in color from palette with out custom RGB turquoise
ip_index = 16
ip_color = &apos;0040E0D0&apos; ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor-indexed = 16.
lv_style_filled_turquoise_guid = lo_style_filled-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Styles&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = &apos;Bold text&apos; ip_style = lv_style_bold_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 4 ip_value = &apos;Underlined text&apos; ip_style = lv_style_underline_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;Filled text&apos; ip_style = lv_style_filled_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 6 ip_value = &apos;Borders&apos; ip_style = lv_style_border_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 7 ip_value = &apos;I&apos;&apos;m not a button :)&apos; ip_style = lv_style_button_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 9 ip_value = &apos;Modified color for Excel 2003&apos; ip_style = lv_style_filled_turquoise_guid ).
&quot; Fill the cell and apply one style
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 6 ip_value = &apos;Filled text&apos; ip_style = lv_style_filled_guid ).
&quot; Change the style
lo_worksheet-&gt;set_cell_style( ip_column = &apos;B&apos; ip_row = 6 ip_style = lv_style_filled_green_guid ).
&quot; Add Style to an empty cell to test Fix for Issue
&quot;#44 Exception ZCX_EXCEL thrown when style is set for an empty cell
&quot; https://code.sdn.sap.com/spaces/abap2xlsx/tickets/44-exception-zcx_excel-thrown-when-style-is-set-for-an-empty-cell
lo_worksheet-&gt;set_cell_style( ip_column = &apos;E&apos; ip_row = 6 ip_style = lv_style_filled_green_guid ).
* CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
* lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*
* &quot; Convert to binary
* CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
* EXPORTING
* buffer = lv_file
* IMPORTING
* output_length = lv_bytecount
* TABLES
* binary_tab = lt_file_tab.
** &quot; This method is only available on AS ABAP &gt; 6.40
** lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
** lv_bytecount = xstrlen( lv_file ).
*
* &quot; Save the file
* cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
* filename = lv_full_path
* filetype = &apos;BIN&apos;
* CHANGING data_tab = lt_file_tab ).
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL22" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export internal table" LENGTH="38 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL22
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel22.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style TYPE REF TO zcl_excel_style,
lo_style_date TYPE REF TO zcl_excel_style,
lo_style_editable TYPE REF TO zcl_excel_style,
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_table_settings_out TYPE zexcel_s_table_settings.
DATA: lv_style_guid TYPE zexcel_cell_style.
DATA: lv_row TYPE char10.
FIELD-SYMBOLS: &lt;fs_field_catalog&gt; TYPE zexcel_s_fieldcatalog.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;22_itab_fieldcatalog.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;PN_MASSIVE&apos;).
DATA lt_test TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_test. &quot;#EC CI_NOWHERE
&quot; sheet style (white background)
lo_style = lo_excel-&gt;add_new_style( ).
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style-&gt;fill-&gt;fgcolor-rgb = zcl_excel_style_color=&gt;c_white.
lv_style_guid = lo_style-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;zif_excel_sheet_properties~set_style( lv_style_guid ).
lo_worksheet-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_protected.
lo_worksheet-&gt;zif_excel_sheet_protection~password = zcl_excel_common=&gt;encrypt_password( &apos;test&apos; ).
lo_worksheet-&gt;zif_excel_sheet_protection~sheet = zif_excel_sheet_protection=&gt;c_active.
lo_worksheet-&gt;zif_excel_sheet_protection~objects = zif_excel_sheet_protection=&gt;c_active.
lo_worksheet-&gt;zif_excel_sheet_protection~scenarios = zif_excel_sheet_protection=&gt;c_active.
&quot; Create cell style for display only fields
lo_style = lo_excel-&gt;add_new_style( ).
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style-&gt;fill-&gt;fgcolor-rgb = zcl_excel_style_color=&gt;c_gray.
lo_style-&gt;number_format-&gt;format_code = zcl_excel_style_number_format=&gt;c_format_text.
&quot; Create cell style for display only date field
lo_style_date = lo_excel-&gt;add_new_style( ).
lo_style_date-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_date-&gt;fill-&gt;fgcolor-rgb = zcl_excel_style_color=&gt;c_gray.
lo_style_date-&gt;number_format-&gt;format_code = zcl_excel_style_number_format=&gt;c_format_date_ddmmyyyy.
&quot; Create cell style for editable fields
lo_style_editable = lo_excel-&gt;add_new_style( ).
lo_style_editable-&gt;protection-&gt;locked = zcl_excel_style_protection=&gt;c_protection_unlocked.
lt_field_catalog = zcl_excel_common=&gt;get_fieldcatalog( ip_table = lt_test ).
LOOP AT lt_field_catalog ASSIGNING &lt;fs_field_catalog&gt;.
CASE &lt;fs_field_catalog&gt;-fieldname.
WHEN &apos;CARRID&apos;.
&lt;fs_field_catalog&gt;-position = 3.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
&lt;fs_field_catalog&gt;-style = lo_style-&gt;get_guid( ).
WHEN &apos;CONNID&apos;.
&lt;fs_field_catalog&gt;-position = 1.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
&lt;fs_field_catalog&gt;-style = lo_style-&gt;get_guid( ).
WHEN &apos;FLDATE&apos;.
&lt;fs_field_catalog&gt;-position = 2.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
&lt;fs_field_catalog&gt;-style = lo_style_date-&gt;get_guid( ).
WHEN &apos;PRICE&apos;.
&lt;fs_field_catalog&gt;-position = 4.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
&lt;fs_field_catalog&gt;-style = lo_style_editable-&gt;get_guid( ).
&lt;fs_field_catalog&gt;-totals_function = zcl_excel_table=&gt;totals_function_sum.
WHEN OTHERS.
&lt;fs_field_catalog&gt;-dynpfld = abap_false.
ENDCASE.
ENDLOOP.
ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium2.
ls_table_settings-show_row_stripes = abap_true.
lo_worksheet-&gt;bind_table( EXPORTING
ip_table = lt_test
it_field_catalog = lt_field_catalog
is_table_settings = ls_table_settings
IMPORTING
es_table_settings = ls_table_settings_out ).
lo_worksheet-&gt;freeze_panes( ip_num_rows = 3 ). &quot;freeze column headers when scrolling
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_custom.
lv_row = ls_table_settings_out-top_left_row.
CONDENSE lv_row.
CONCATENATE &apos;ISNUMBER(&apos; ls_table_settings_out-top_left_column lv_row &apos;)&apos; INTO lo_data_validation-&gt;formula1.
lo_data_validation-&gt;cell_row = ls_table_settings_out-top_left_row.
lo_data_validation-&gt;cell_column = ls_table_settings_out-top_left_column.
lo_data_validation-&gt;cell_row_to = ls_table_settings_out-bottom_right_row.
lo_data_validation-&gt;cell_column_to = ls_table_settings_out-bottom_right_column.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL21" VARCL="X" SUBC="1" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" LENGTH="38 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL21
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel21.
TYPES:
BEGIN OF t_color_style,
color TYPE zexcel_style_color_argb,
style TYPE zexcel_cell_style,
END OF t_color_style.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_filled TYPE REF TO zcl_excel_style.
DATA: color_styles TYPE TABLE OF t_color_style.
FIELD-SYMBOLS: &lt;color_style&gt; LIKE LINE OF color_styles.
CONSTANTS: max TYPE i VALUE 255,
step TYPE i VALUE 51.
DATA: red TYPE i,
green TYPE i,
blue TYPE i,
red_hex(1) TYPE x,
green_hex(1) TYPE x,
blue_hex(1) TYPE x,
red_str TYPE string,
green_str TYPE string,
blue_str TYPE string.
DATA: color TYPE zexcel_style_color_argb,
tint TYPE zexcel_style_color_tint.
DATA: row TYPE i,
row_tmp TYPE i,
column TYPE zexcel_cell_column VALUE 1,
col_str TYPE zexcel_cell_column_alpha.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;21_BackgroundColorPicker.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
WHILE red &lt;= max.
green = 0.
WHILE green &lt;= max.
blue = 0.
WHILE blue &lt;= max.
red_hex = red.
red_str = red_hex.
green_hex = green.
green_str = green_hex.
blue_hex = blue.
blue_str = blue_hex.
&quot; Create filled
CONCATENATE &apos;FF&apos; red_str green_str blue_str INTO color.
APPEND INITIAL LINE TO color_styles ASSIGNING &lt;color_style&gt;.
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor-rgb = color.
&lt;color_style&gt;-color = color.
&lt;color_style&gt;-style = lo_style_filled-&gt;get_guid( ).
blue = blue + step.
ENDWHILE.
green = green + step.
ENDWHILE.
red = red + step.
ENDWHILE.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Color Picker&apos; ).
LOOP AT color_styles ASSIGNING &lt;color_style&gt;.
row_tmp = ( max / step + 1 ) * 3.
IF row = row_tmp.
row = 0.
column = column + 1.
ENDIF.
row = row + 1.
col_str = zcl_excel_common=&gt;convert_column2alpha( column ).
&quot; Fill the cell and apply one style
lo_worksheet-&gt;set_cell( ip_column = col_str
ip_row = row
ip_value = &lt;color_style&gt;-color
ip_style = &lt;color_style&gt;-style ).
ENDLOOP.
row = row + 2.
tint = &apos;-0.5&apos;.
DO 10 TIMES.
column = 1.
DO 10 TIMES.
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor-theme = sy-index - 1.
lo_style_filled-&gt;fill-&gt;fgcolor-tint = tint.
&lt;color_style&gt;-style = lo_style_filled-&gt;get_guid( ).
col_str = zcl_excel_common=&gt;convert_column2alpha( column ).
lo_worksheet-&gt;set_cell_style( ip_column = col_str
ip_row = row
ip_style = &lt;color_style&gt;-style ).
ADD 1 TO column.
ENDDO.
ADD &apos;0.1&apos; TO tint.
ADD 1 TO row.
ENDDO.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>
<PROG NAME="ZDEMO_EXCEL20" VARCL="X" SUBC="1" RMAND="800" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Bind ALV OLE2" LENGTH="29 "/>
</language>
</textPool>
<pfstatus>
<pfstatus_sta CODE="ALV_STATUS" MODAL="D" ACTCODE="000004" PFKCODE="000004" BUTCODE="0001" INT_NOTE="Standard for General List Output"/>
<pfstatus_fun CODE="%ML" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Folder" PATH="F"/>
<pfstatus_fun CODE="%PC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_EXPORT" ICON_ID="@49@" FUN_TEXT="Local File..." PATH="L"/>
<pfstatus_fun CODE="%PC" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_EXPORT" ICON_ID="@49@" FUN_TEXT="Local file..." PATH="L"/>
<pfstatus_fun CODE="%SC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH" ICON_ID="@13@" FUN_TEXT="Find" PATH="N"/>
<pfstatus_fun CODE="%SC+" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH_NEXT" ICON_ID="@4E@" FUN_TEXT="Find Next"/>
<pfstatus_fun CODE="%SC+" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH_NEXT" ICON_ID="@4E@" FUN_TEXT="Find next"/>
<pfstatus_fun CODE="%SL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_MAIL" ICON_ID="@1S@" FUN_TEXT="Mail Recipient" PATH="M"/>
<pfstatus_fun CODE="%SL" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_MAIL" ICON_ID="@1S@" FUN_TEXT="Mail recipient" PATH="M"/>
<pfstatus_fun CODE="&amp;ABC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ABC" ICON_ID="@DL@" FUN_TEXT="ABC Analysis" PATH="A"/>
<pfstatus_fun CODE="&amp;ALL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_ALL" ICON_ID="@4B@" FUN_TEXT="Select All" PATH="S"/>
<pfstatus_fun CODE="&amp;ALL" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_ALL" ICON_ID="@4B@" FUN_TEXT="Select all" PATH="S"/>
<pfstatus_fun CODE="&amp;AQW" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_WORD_PROCESSING" ICON_ID="@DK@" FUN_TEXT="Word Processing..." PATH="W"/>
<pfstatus_fun CODE="&amp;AQW" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_WORD_PROCESSING" ICON_ID="@DK@" FUN_TEXT="Word processing..." PATH="W"/>
<pfstatus_fun CODE="&amp;AUF" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Define Totals Drilldown..." PATH="S"/>
<pfstatus_fun CODE="&amp;AUF" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Define Breakdown..." PATH="D"/>
<pfstatus_fun CODE="&amp;AVE" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Saving..." PATH="S"/>
<pfstatus_fun CODE="&amp;AVE" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_SAVE" ICON_ID="@DN@" FUN_TEXT="Save Layout..."/>
<pfstatus_fun CODE="&amp;AVE" TEXTNO="003" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_SAVE" ICON_ID="@DN@" FUN_TEXT="Save layout..."/>
<pfstatus_fun CODE="&amp;AVR" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Mean Value" PATH="M"/>
<pfstatus_fun CODE="&amp;AVR" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Mean value" PATH="M"/>
<pfstatus_fun CODE="&amp;CDF" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Unfreeze Columns" PATH="U"/>
<pfstatus_fun CODE="&amp;CDF" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Unfreeze" PATH="U"/>
<pfstatus_fun CODE="&amp;CFI" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Freeze to Column" PATH="F"/>
<pfstatus_fun CODE="&amp;CFI" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Freeze to column" PATH="F"/>
<pfstatus_fun CODE="&amp;COUNT" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Count" PATH="C"/>
<pfstatus_fun CODE="&amp;CRB" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_LEFT" ICON_ID="@0B@" FUN_TEXT="First Column"/>
<pfstatus_fun CODE="&amp;CRE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_RIGHT" ICON_ID="@0C@" FUN_TEXT="Last Column"/>
<pfstatus_fun CODE="&amp;CRE" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_RIGHT" ICON_ID="@0C@" FUN_TEXT="Last column"/>
<pfstatus_fun CODE="&amp;CRL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_LEFT" ICON_ID="@0D@" FUN_TEXT="Column Left"/>
<pfstatus_fun CODE="&amp;CRL" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_LEFT" ICON_ID="@0D@" FUN_TEXT="Column left"/>
<pfstatus_fun CODE="&amp;CRR" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_RIGHT" ICON_ID="@0E@" FUN_TEXT="Column Right"/>
<pfstatus_fun CODE="&amp;CRR" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_RIGHT" ICON_ID="@0E@" FUN_TEXT="Column right"/>
<pfstatus_fun CODE="&amp;DATA_SAVE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SYSTEM_SAVE" ICON_ID="@2L@" FUN_TEXT="Save"/>
<pfstatus_fun CODE="&amp;DAU" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Automatic Separator" PATH="T"/>
<pfstatus_fun CODE="&amp;DOF" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Separator Always Off" PATH="E"/>
<pfstatus_fun CODE="&amp;DON" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Separator Always On" PATH="R"/>
<pfstatus_fun CODE="&amp;EB9" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TABLE_SETTINGS" ICON_ID="@36@" FUN_TEXT="Call Up Report..." PATH="B"/>
<pfstatus_fun CODE="&amp;EB9" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_TABLE_SETTINGS" ICON_ID="@36@" FUN_TEXT="Call Report..." PATH="B"/>
<pfstatus_fun CODE="&amp;EB9" TEXTNO="003" TEXT_TYPE="S" TEXT_NAME="ICON_TABLE_SETTINGS" ICON_ID="@36@" FUN_TEXT="Call Up Report" PATH="C"/>
<pfstatus_fun CODE="&amp;ELP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SYSTEM_HELP" ICON_ID="@35@" FUN_TEXT="Help"/>
<pfstatus_fun CODE="&amp;ERW" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Manage..." PATH="M"/>
<pfstatus_fun CODE="&amp;ERW" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Layout Management" PATH="L"/>
<pfstatus_fun CODE="&amp;ETA" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Details"/>
<pfstatus_fun CODE="&amp;F03" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Back" PATH="B"/>
<pfstatus_fun CODE="&amp;F12" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_CANCEL" ICON_ID="@0W@" FUN_TEXT="Cancel" PATH="A"/>
<pfstatus_fun CODE="&amp;F15" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Exit" PATH="X"/>
<pfstatus_fun CODE="&amp;F4" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Possible Entries"/>
<pfstatus_fun CODE="&amp;GRAPH" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_GRAPHICS" ICON_ID="@0N@" FUN_TEXT="Graphic" PATH="G"/>
<pfstatus_fun CODE="&amp;IC1" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Choose"/>
<pfstatus_fun CODE="&amp;ILD" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FILTER_UNDO" ICON_ID="@GD@" FUN_TEXT="Delete Filter" PATH="L"/>
<pfstatus_fun CODE="&amp;ILD" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Delete Filter" PATH="L"/>
<pfstatus_fun CODE="&amp;ILT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FILTER" ICON_ID="@4G@" FUN_TEXT="Set Filter" PATH="F"/>
<pfstatus_fun CODE="&amp;ILT" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_FILTER" ICON_ID="@4G@" FUN_TEXT="Set filter" PATH="F"/>
<pfstatus_fun CODE="&amp;INFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="Information"/>
<pfstatus_fun CODE="&amp;KOM" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLLAPSE" ICON_ID="@3T@" FUN_TEXT="Choose..." PATH="C"/>
<pfstatus_fun CODE="&amp;LFO" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="List status..." PATH="L"/>
<pfstatus_fun CODE="&amp;LFO" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="List Status"/>
<pfstatus_fun CODE="&amp;LFO" TEXTNO="003" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="List status..."/>
<pfstatus_fun CODE="&amp;LIS" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Basic List" PATH="B"/>
<pfstatus_fun CODE="&amp;MAX" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Maximum" PATH="A"/>
<pfstatus_fun CODE="&amp;MIN" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Minimum" PATH="I"/>
<pfstatus_fun CODE="&amp;NFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="Selections..." ICON_TEXT="Selections" PATH="E"/>
<pfstatus_fun CODE="&amp;NTE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_REFRESH" ICON_ID="@42@" FUN_TEXT="Refresh"/>
<pfstatus_fun CODE="&amp;NTE" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Refresh"/>
<pfstatus_fun CODE="&amp;OAD" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Choose..." PATH="H"/>
<pfstatus_fun CODE="&amp;OAD" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_CHOOSE" ICON_ID="@DM@" FUN_TEXT="Select Layout..."/>
<pfstatus_fun CODE="&amp;OAD" TEXTNO="003" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_CHOOSE" ICON_ID="@DM@" FUN_TEXT="Select layout..."/>
<pfstatus_fun CODE="&amp;ODN" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_DOWN" ICON_ID="@3F@" FUN_TEXT="Sort in Descending Order" PATH="O"/>
<pfstatus_fun CODE="&amp;ODN" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_DOWN" ICON_ID="@3F@" FUN_TEXT="Sort in descending order" PATH="O"/>
<pfstatus_fun CODE="&amp;OL0" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANTS" ICON_ID="@LZ@" FUN_TEXT="Change Layout..."/>
<pfstatus_fun CODE="&amp;OL0" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANTS" ICON_ID="@LZ@" FUN_TEXT="Change layout..."/>
<pfstatus_fun CODE="&amp;OLX" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_VARIANTS" ICON_ID="@0R@" FUN_TEXT="Change..." PATH="C"/>
<pfstatus_fun CODE="&amp;OMP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLLAPSE" ICON_ID="@3T@" FUN_TEXT="Collapse"/>
<pfstatus_fun CODE="&amp;OPT" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Optimize Width" PATH="P"/>
<pfstatus_fun CODE="&amp;OPT" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Optimize width" PATH="P"/>
<pfstatus_fun CODE="&amp;OUP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_UP" ICON_ID="@3E@" FUN_TEXT="Sort in Ascending Order" PATH="I"/>
<pfstatus_fun CODE="&amp;REFRESH" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_REFRESH" ICON_ID="@42@" FUN_TEXT="Refresh"/>
<pfstatus_fun CODE="&amp;RNT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_PRINT" ICON_ID="@0X@" FUN_TEXT="Print" PATH="P"/>
<pfstatus_fun CODE="&amp;RNT_PREV" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_LAYOUT_CONTROL" ICON_ID="@3G@" FUN_TEXT="Print Preview" PATH="R"/>
<pfstatus_fun CODE="&amp;RNT_PREV" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_LAYOUT_CONTROL" ICON_ID="@3G@" FUN_TEXT="Print preview" PATH="R"/>
<pfstatus_fun CODE="&amp;SAL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_DESELECT_ALL" ICON_ID="@4D@" FUN_TEXT="Deselect All" PATH="D"/>
<pfstatus_fun CODE="&amp;SAL" TEXTNO="002" TEXT_TYPE="S" TEXT_NAME="ICON_DESELECT_ALL" ICON_ID="@4D@" FUN_TEXT="Deselect all" PATH="D"/>
<pfstatus_fun CODE="&amp;SUM" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INTERMEDIATE_SUM" ICON_ID="@5V@" FUN_TEXT="Subtotals..." PATH="T"/>
<pfstatus_fun CODE="&amp;UMC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SUM" ICON_ID="@3Z@" FUN_TEXT="Total" PATH="T"/>
<pfstatus_fun CODE="&amp;VEXCEL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XLS" ICON_ID="@J2@" FUN_TEXT="Microsoft Excel" PATH="M"/>
<pfstatus_fun CODE="&amp;VGRID" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="SAP List Viewer" PATH="S"/>
<pfstatus_fun CODE="&amp;VLOTUS" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Lotus 1-2-3" PATH="L"/>
<pfstatus_fun CODE="&amp;XINT" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Additional Functions of SAP Query" PATH="E"/>
<pfstatus_fun CODE="&amp;XML" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="XML Export" PATH="X"/>
<pfstatus_fun CODE="&amp;XML" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="XML Export..." PATH="X"/>
<pfstatus_fun CODE="&amp;XPA" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_EXPAND" ICON_ID="@3S@" FUN_TEXT="Expand"/>
<pfstatus_fun CODE="&amp;XXL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XXL" ICON_ID="@DJ@" FUN_TEXT="Spreadsheet..." PATH="A"/>
<pfstatus_fun CODE="EXCEL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XLV" ICON_ID="@J3@" FUN_TEXT="Excel" ICON_TEXT="Export to Excel"/>
<pfstatus_fun CODE="P+" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Next Page"/>
<pfstatus_fun CODE="P+" TEXTNO="002" TEXT_TYPE="S" FUN_TEXT="Next page"/>
<pfstatus_fun CODE="P++" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Last Page"/>
<pfstatus_fun CODE="P-" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Previous Page"/>
<pfstatus_fun CODE="P--" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="First Page"/>
<pfstatus_men CODE="000001" NO="01" REF_TYPE="F" REF_CODE="&amp;RNT_PREV" REF_NO="001"/>
<pfstatus_men CODE="000001" NO="02" REF_TYPE="F" REF_CODE="&amp;RNT" REF_NO="001"/>
<pfstatus_men CODE="000001" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000001" NO="04" REF_TYPE="M" REF_CODE="000002"/>
<pfstatus_men CODE="000001" NO="05" REF_TYPE="M" REF_CODE="000003"/>
<pfstatus_men CODE="000001" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000001" NO="07" REF_TYPE="F" REF_CODE="&amp;F15" REF_NO="001"/>
<pfstatus_men CODE="000002" NO="01" REF_TYPE="F" REF_CODE="&amp;AQW" REF_NO="001"/>
<pfstatus_men CODE="000002" NO="02" REF_TYPE="F" REF_CODE="&amp;XXL" REF_NO="001"/>
<pfstatus_men CODE="000002" NO="03" REF_TYPE="F" REF_CODE="%PC" REF_NO="001"/>
<pfstatus_men CODE="000002" NO="04" REF_TYPE="F" REF_CODE="&amp;XINT" REF_NO="001"/>
<pfstatus_men CODE="000003" NO="01" REF_TYPE="F" REF_CODE="%SL" REF_NO="001"/>
<pfstatus_men CODE="000003" NO="02" REF_TYPE="F" REF_CODE="%ML" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="01" REF_TYPE="F" REF_CODE="&amp;ALL" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="02" REF_TYPE="F" REF_CODE="&amp;SAL" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="04" REF_TYPE="F" REF_CODE="&amp;ILT" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="05" REF_TYPE="F" REF_CODE="&amp;ILD" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="07" REF_TYPE="F" REF_CODE="&amp;OUP" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="08" REF_TYPE="F" REF_CODE="&amp;ODN" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="09" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="10" REF_TYPE="M" REF_CODE="000005"/>
<pfstatus_men CODE="000004" NO="11" REF_TYPE="F" REF_CODE="&amp;SUM" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="12" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="13" REF_TYPE="F" REF_CODE="%SC" REF_NO="001"/>
<pfstatus_men CODE="000004" NO="14" REF_TYPE="S"/>
<pfstatus_men CODE="000004" NO="15" REF_TYPE="F" REF_CODE="&amp;F12" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="01" REF_TYPE="F" REF_CODE="&amp;UMC" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="02" REF_TYPE="F" REF_CODE="&amp;AVR" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="03" REF_TYPE="F" REF_CODE="&amp;MIN" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="04" REF_TYPE="F" REF_CODE="&amp;MAX" REF_NO="001"/>
<pfstatus_men CODE="000005" NO="05" REF_TYPE="F" REF_CODE="&amp;COUNT" REF_NO="001"/>
<pfstatus_men CODE="000006" NO="01" REF_TYPE="F" REF_CODE="&amp;ABC" REF_NO="001"/>
<pfstatus_men CODE="000006" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000006" NO="03" REF_TYPE="F" REF_CODE="&amp;F03" REF_NO="001"/>
<pfstatus_men CODE="000007" NO="01" REF_TYPE="F" REF_CODE="&amp;VGRID" REF_NO="001"/>
<pfstatus_men CODE="000007" NO="02" REF_TYPE="F" REF_CODE="&amp;VEXCEL" REF_NO="001"/>
<pfstatus_men CODE="000007" NO="03" REF_TYPE="F" REF_CODE="&amp;VLOTUS" REF_NO="001"/>
<pfstatus_men CODE="000007" NO="04" REF_TYPE="S"/>
<pfstatus_men CODE="000007" NO="05" REF_TYPE="F" REF_CODE="&amp;GRAPH" REF_NO="001"/>
<pfstatus_men CODE="000008" NO="01" REF_TYPE="M" REF_CODE="000009"/>
<pfstatus_men CODE="000008" NO="02" REF_TYPE="M" REF_CODE="000010"/>
<pfstatus_men CODE="000008" NO="03" REF_TYPE="F" REF_CODE="&amp;AUF" REF_NO="001"/>
<pfstatus_men CODE="000009" NO="01" REF_TYPE="F" REF_CODE="&amp;OLX" REF_NO="001"/>
<pfstatus_men CODE="000009" NO="02" REF_TYPE="F" REF_CODE="&amp;OAD" REF_NO="001"/>
<pfstatus_men CODE="000009" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000009" NO="04" REF_TYPE="F" REF_CODE="&amp;AVE" REF_NO="001"/>
<pfstatus_men CODE="000009" NO="05" REF_TYPE="S"/>
<pfstatus_men CODE="000009" NO="06" REF_TYPE="F" REF_CODE="&amp;ERW" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="01" REF_TYPE="F" REF_CODE="&amp;OPT" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000010" NO="03" REF_TYPE="F" REF_CODE="&amp;CFI" REF_NO="001"/>
<pfstatus_men CODE="000010" NO="04" REF_TYPE="F" REF_CODE="&amp;CDF" REF_NO="001"/>
<pfstatus_men CODE="000011" NO="01" REF_TYPE="F" REF_CODE="&amp;RNT" REF_NO="001"/>
<pfstatus_men CODE="000011" NO="02" REF_TYPE="M" REF_CODE="000012"/>
<pfstatus_men CODE="000011" NO="03" REF_TYPE="M" REF_CODE="000013"/>
<pfstatus_men CODE="000011" NO="04" REF_TYPE="S"/>
<pfstatus_men CODE="000011" NO="05" REF_TYPE="F" REF_CODE="&amp;F15" REF_NO="001"/>
<pfstatus_men CODE="000012" NO="01" REF_TYPE="F" REF_CODE="&amp;AQW" REF_NO="001"/>
<pfstatus_men CODE="000012" NO="02" REF_TYPE="F" REF_CODE="&amp;XXL" REF_NO="001"/>
<pfstatus_men CODE="000012" NO="03" REF_TYPE="F" REF_CODE="%PC" REF_NO="001"/>
<pfstatus_men CODE="000012" NO="04" REF_TYPE="F" REF_CODE="&amp;XINT" REF_NO="001"/>
<pfstatus_men CODE="000012" NO="05" REF_TYPE="F" REF_CODE="&amp;XML" REF_NO="001"/>
<pfstatus_men CODE="000013" NO="01" REF_TYPE="F" REF_CODE="%SL" REF_NO="001"/>
<pfstatus_men CODE="000013" NO="02" REF_TYPE="F" REF_CODE="%ML" REF_NO="001"/>
<pfstatus_men CODE="000014" NO="01" REF_TYPE="F" REF_CODE="&amp;ALL" REF_NO="001"/>
<pfstatus_men CODE="000014" NO="02" REF_TYPE="F" REF_CODE="&amp;SAL" REF_NO="001"/>
<pfstatus_men CODE="000014" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000014" NO="04" REF_TYPE="F" REF_CODE="&amp;ILT" REF_NO="001"/>
<pfstatus_men CODE="000014" NO="05" REF_TYPE="F" REF_CODE="&amp;ILD" REF_NO="002"/>
<pfstatus_men CODE="000014" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000014" NO="07" REF_TYPE="F" REF_CODE="&amp;OUP" REF_NO="001"/>
<pfstatus_men CODE="000014" NO="08" REF_TYPE="F" REF_CODE="&amp;ODN" REF_NO="001"/>
<pfstatus_men CODE="000014" NO="09" REF_TYPE="S"/>
<pfstatus_men CODE="000014" NO="10" REF_TYPE="M" REF_CODE="000015"/>
<pfstatus_men CODE="000014" NO="11" REF_TYPE="F" REF_CODE="&amp;SUM" REF_NO="001"/>
<pfstatus_men CODE="000014" NO="12" REF_TYPE="S"/>
<pfstatus_men CODE="000014" NO="13" REF_TYPE="F" REF_CODE="%SC" REF_NO="001"/>
<pfstatus_men CODE="000014" NO="14" REF_TYPE="S"/>
<pfstatus_men CODE="000014" NO="15" REF_TYPE="F" REF_CODE="&amp;F12" REF_NO="001"/>
<pfstatus_men CODE="000015" NO="01" REF_TYPE="F" REF_CODE="&amp;UMC" REF_NO="001"/>
<pfstatus_men CODE="000015" NO="02" REF_TYPE="F" REF_CODE="&amp;AVR" REF_NO="001"/>
<pfstatus_men CODE="000015" NO="03" REF_TYPE="F" REF_CODE="&amp;MIN" REF_NO="001"/>
<pfstatus_men CODE="000015" NO="04" REF_TYPE="F" REF_CODE="&amp;MAX" REF_NO="001"/>
<pfstatus_men CODE="000015" NO="05" REF_TYPE="F" REF_CODE="&amp;COUNT" REF_NO="001"/>
<pfstatus_men CODE="000016" NO="01" REF_TYPE="F" REF_CODE="&amp;ABC" REF_NO="001"/>
<pfstatus_men CODE="000016" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000016" NO="03" REF_TYPE="F" REF_CODE="&amp;F03" REF_NO="001"/>
<pfstatus_men CODE="000017" NO="01" REF_TYPE="F" REF_CODE="&amp;LIS" REF_NO="001"/>
<pfstatus_men CODE="000017" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000017" NO="03" REF_TYPE="M" REF_CODE="000018"/>
<pfstatus_men CODE="000017" NO="04" REF_TYPE="S"/>
<pfstatus_men CODE="000017" NO="05" REF_TYPE="M" REF_CODE="000019"/>
<pfstatus_men CODE="000017" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000017" NO="07" REF_TYPE="M" REF_CODE="000020"/>
<pfstatus_men CODE="000017" NO="08" REF_TYPE="S"/>
<pfstatus_men CODE="000017" NO="09" REF_TYPE="F" REF_CODE="&amp;NFO" REF_NO="001"/>
<pfstatus_men CODE="000017" NO="10" REF_TYPE="F" REF_CODE="&amp;LFO" REF_NO="001"/>
<pfstatus_men CODE="000018" NO="01" REF_TYPE="F" REF_CODE="&amp;OLX" REF_NO="001"/>
<pfstatus_men CODE="000018" NO="02" REF_TYPE="F" REF_CODE="&amp;OAD" REF_NO="001"/>
<pfstatus_men CODE="000018" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000018" NO="04" REF_TYPE="F" REF_CODE="&amp;AVE" REF_NO="001"/>
<pfstatus_men CODE="000018" NO="05" REF_TYPE="S"/>
<pfstatus_men CODE="000018" NO="06" REF_TYPE="F" REF_CODE="&amp;ERW" REF_NO="001"/>
<pfstatus_men CODE="000019" NO="01" REF_TYPE="F" REF_CODE="&amp;KOM" REF_NO="001"/>
<pfstatus_men CODE="000019" NO="02" REF_TYPE="F" REF_CODE="&amp;AUF" REF_NO="002"/>
<pfstatus_men CODE="000020" NO="01" REF_TYPE="F" REF_CODE="&amp;OPT" REF_NO="001"/>
<pfstatus_men CODE="000020" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000020" NO="03" REF_TYPE="F" REF_CODE="&amp;CFI" REF_NO="001"/>
<pfstatus_men CODE="000020" NO="04" REF_TYPE="F" REF_CODE="&amp;CDF" REF_NO="002"/>
<pfstatus_men CODE="000020" NO="05" REF_TYPE="S"/>
<pfstatus_men CODE="000020" NO="06" REF_TYPE="F" REF_CODE="&amp;DAU" REF_NO="001"/>
<pfstatus_men CODE="000020" NO="07" REF_TYPE="F" REF_CODE="&amp;DON" REF_NO="001"/>
<pfstatus_men CODE="000020" NO="08" REF_TYPE="F" REF_CODE="&amp;DOF" REF_NO="001"/>
<pfstatus_men CODE="000021" NO="01" REF_TYPE="F" REF_CODE="&amp;RNT_PREV" REF_NO="001"/>
<pfstatus_men CODE="000021" NO="02" REF_TYPE="F" REF_CODE="&amp;RNT" REF_NO="001"/>
<pfstatus_men CODE="000021" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000021" NO="04" REF_TYPE="M" REF_CODE="000022"/>
<pfstatus_men CODE="000021" NO="05" REF_TYPE="M" REF_CODE="000023"/>
<pfstatus_men CODE="000021" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000021" NO="07" REF_TYPE="F" REF_CODE="&amp;F15" REF_NO="001"/>
<pfstatus_men CODE="000022" NO="01" REF_TYPE="F" REF_CODE="&amp;AQW" REF_NO="001"/>
<pfstatus_men CODE="000022" NO="02" REF_TYPE="F" REF_CODE="&amp;XXL" REF_NO="001"/>
<pfstatus_men CODE="000022" NO="03" REF_TYPE="F" REF_CODE="%PC" REF_NO="001"/>
<pfstatus_men CODE="000022" NO="04" REF_TYPE="F" REF_CODE="&amp;XINT" REF_NO="001"/>
<pfstatus_men CODE="000023" NO="01" REF_TYPE="F" REF_CODE="%SL" REF_NO="001"/>
<pfstatus_men CODE="000023" NO="02" REF_TYPE="F" REF_CODE="%ML" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="01" REF_TYPE="F" REF_CODE="&amp;ALL" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="02" REF_TYPE="F" REF_CODE="&amp;SAL" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000024" NO="04" REF_TYPE="F" REF_CODE="&amp;ILT" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="05" REF_TYPE="F" REF_CODE="&amp;ILD" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000024" NO="07" REF_TYPE="F" REF_CODE="&amp;OUP" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="08" REF_TYPE="F" REF_CODE="&amp;ODN" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="09" REF_TYPE="S"/>
<pfstatus_men CODE="000024" NO="10" REF_TYPE="M" REF_CODE="000025"/>
<pfstatus_men CODE="000024" NO="11" REF_TYPE="F" REF_CODE="&amp;SUM" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="12" REF_TYPE="S"/>
<pfstatus_men CODE="000024" NO="13" REF_TYPE="F" REF_CODE="%SC" REF_NO="001"/>
<pfstatus_men CODE="000024" NO="14" REF_TYPE="S"/>
<pfstatus_men CODE="000024" NO="15" REF_TYPE="F" REF_CODE="&amp;F12" REF_NO="001"/>
<pfstatus_men CODE="000025" NO="01" REF_TYPE="F" REF_CODE="&amp;UMC" REF_NO="001"/>
<pfstatus_men CODE="000025" NO="02" REF_TYPE="F" REF_CODE="&amp;AVR" REF_NO="001"/>
<pfstatus_men CODE="000025" NO="03" REF_TYPE="F" REF_CODE="&amp;MIN" REF_NO="001"/>
<pfstatus_men CODE="000025" NO="04" REF_TYPE="F" REF_CODE="&amp;MAX" REF_NO="001"/>
<pfstatus_men CODE="000025" NO="05" REF_TYPE="F" REF_CODE="&amp;COUNT" REF_NO="001"/>
<pfstatus_men CODE="000026" NO="01" REF_TYPE="F" REF_CODE="&amp;ABC" REF_NO="001"/>
<pfstatus_men CODE="000026" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000026" NO="03" REF_TYPE="F" REF_CODE="&amp;F03" REF_NO="001"/>
<pfstatus_men CODE="000027" NO="01" REF_TYPE="F" REF_CODE="&amp;VGRID" REF_NO="001"/>
<pfstatus_men CODE="000027" NO="02" REF_TYPE="F" REF_CODE="&amp;VEXCEL" REF_NO="001"/>
<pfstatus_men CODE="000027" NO="03" REF_TYPE="F" REF_CODE="&amp;VLOTUS" REF_NO="001"/>
<pfstatus_men CODE="000027" NO="04" REF_TYPE="S"/>
<pfstatus_men CODE="000027" NO="05" REF_TYPE="F" REF_CODE="&amp;GRAPH" REF_NO="001"/>
<pfstatus_men CODE="000028" NO="01" REF_TYPE="M" REF_CODE="000029"/>
<pfstatus_men CODE="000028" NO="02" REF_TYPE="M" REF_CODE="000030"/>
<pfstatus_men CODE="000028" NO="03" REF_TYPE="F" REF_CODE="&amp;AUF" REF_NO="001"/>
<pfstatus_men CODE="000029" NO="01" REF_TYPE="F" REF_CODE="&amp;OLX" REF_NO="001"/>
<pfstatus_men CODE="000029" NO="02" REF_TYPE="F" REF_CODE="&amp;OAD" REF_NO="001"/>
<pfstatus_men CODE="000029" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000029" NO="04" REF_TYPE="F" REF_CODE="&amp;AVE" REF_NO="001"/>
<pfstatus_men CODE="000029" NO="05" REF_TYPE="S"/>
<pfstatus_men CODE="000029" NO="06" REF_TYPE="F" REF_CODE="&amp;ERW" REF_NO="001"/>
<pfstatus_men CODE="000030" NO="01" REF_TYPE="F" REF_CODE="&amp;OPT" REF_NO="001"/>
<pfstatus_men CODE="000030" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000030" NO="03" REF_TYPE="F" REF_CODE="&amp;CFI" REF_NO="001"/>
<pfstatus_men CODE="000030" NO="04" REF_TYPE="F" REF_CODE="&amp;CDF" REF_NO="001"/>
<pfstatus_men CODE="000031" NO="01" REF_TYPE="F" REF_CODE="&amp;RNT" REF_NO="001"/>
<pfstatus_men CODE="000031" NO="02" REF_TYPE="M" REF_CODE="000032"/>
<pfstatus_men CODE="000031" NO="03" REF_TYPE="M" REF_CODE="000033"/>
<pfstatus_men CODE="000031" NO="04" REF_TYPE="S"/>
<pfstatus_men CODE="000031" NO="05" REF_TYPE="F" REF_CODE="&amp;F15" REF_NO="001"/>
<pfstatus_men CODE="000032" NO="01" REF_TYPE="F" REF_CODE="&amp;AQW" REF_NO="002"/>
<pfstatus_men CODE="000032" NO="02" REF_TYPE="F" REF_CODE="&amp;XXL" REF_NO="001"/>
<pfstatus_men CODE="000032" NO="03" REF_TYPE="F" REF_CODE="%PC" REF_NO="002"/>
<pfstatus_men CODE="000032" NO="04" REF_TYPE="F" REF_CODE="&amp;XINT" REF_NO="001"/>
<pfstatus_men CODE="000033" NO="01" REF_TYPE="F" REF_CODE="%SL" REF_NO="002"/>
<pfstatus_men CODE="000033" NO="02" REF_TYPE="F" REF_CODE="%ML" REF_NO="001"/>
<pfstatus_men CODE="000034" NO="01" REF_TYPE="F" REF_CODE="&amp;ALL" REF_NO="002"/>
<pfstatus_men CODE="000034" NO="02" REF_TYPE="F" REF_CODE="&amp;SAL" REF_NO="002"/>
<pfstatus_men CODE="000034" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000034" NO="04" REF_TYPE="F" REF_CODE="&amp;ILT" REF_NO="002"/>
<pfstatus_men CODE="000034" NO="05" REF_TYPE="F" REF_CODE="&amp;ILD" REF_NO="001"/>
<pfstatus_men CODE="000034" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000034" NO="07" REF_TYPE="F" REF_CODE="&amp;OUP" REF_NO="001"/>
<pfstatus_men CODE="000034" NO="08" REF_TYPE="F" REF_CODE="&amp;ODN" REF_NO="002"/>
<pfstatus_men CODE="000034" NO="09" REF_TYPE="S"/>
<pfstatus_men CODE="000034" NO="10" REF_TYPE="M" REF_CODE="000035"/>
<pfstatus_men CODE="000034" NO="11" REF_TYPE="F" REF_CODE="&amp;SUM" REF_NO="001"/>
<pfstatus_men CODE="000034" NO="12" REF_TYPE="S"/>
<pfstatus_men CODE="000034" NO="13" REF_TYPE="F" REF_CODE="%SC" REF_NO="001"/>
<pfstatus_men CODE="000034" NO="14" REF_TYPE="S"/>
<pfstatus_men CODE="000034" NO="15" REF_TYPE="F" REF_CODE="&amp;F12" REF_NO="001"/>
<pfstatus_men CODE="000035" NO="01" REF_TYPE="F" REF_CODE="&amp;UMC" REF_NO="001"/>
<pfstatus_men CODE="000035" NO="02" REF_TYPE="F" REF_CODE="&amp;AVR" REF_NO="002"/>
<pfstatus_men CODE="000035" NO="03" REF_TYPE="F" REF_CODE="&amp;MIN" REF_NO="001"/>
<pfstatus_men CODE="000035" NO="04" REF_TYPE="F" REF_CODE="&amp;MAX" REF_NO="001"/>
<pfstatus_men CODE="000035" NO="05" REF_TYPE="F" REF_CODE="&amp;COUNT" REF_NO="001"/>
<pfstatus_men CODE="000036" NO="01" REF_TYPE="F" REF_CODE="&amp;ABC" REF_NO="001"/>
<pfstatus_men CODE="000036" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000036" NO="03" REF_TYPE="F" REF_CODE="&amp;F03" REF_NO="001"/>
<pfstatus_men CODE="000037" NO="01" REF_TYPE="F" REF_CODE="&amp;LIS" REF_NO="001"/>
<pfstatus_men CODE="000037" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000037" NO="03" REF_TYPE="M" REF_CODE="000038"/>
<pfstatus_men CODE="000037" NO="04" REF_TYPE="S"/>
<pfstatus_men CODE="000037" NO="05" REF_TYPE="M" REF_CODE="000039"/>
<pfstatus_men CODE="000037" NO="06" REF_TYPE="S"/>
<pfstatus_men CODE="000037" NO="07" REF_TYPE="M" REF_CODE="000040"/>
<pfstatus_men CODE="000037" NO="08" REF_TYPE="S"/>
<pfstatus_men CODE="000037" NO="09" REF_TYPE="F" REF_CODE="&amp;NFO" REF_NO="001"/>
<pfstatus_men CODE="000037" NO="10" REF_TYPE="F" REF_CODE="&amp;LFO" REF_NO="001"/>
<pfstatus_men CODE="000038" NO="01" REF_TYPE="F" REF_CODE="&amp;OLX" REF_NO="001"/>
<pfstatus_men CODE="000038" NO="02" REF_TYPE="F" REF_CODE="&amp;OAD" REF_NO="001"/>
<pfstatus_men CODE="000038" NO="03" REF_TYPE="S"/>
<pfstatus_men CODE="000038" NO="04" REF_TYPE="F" REF_CODE="&amp;AVE" REF_NO="001"/>
<pfstatus_men CODE="000038" NO="05" REF_TYPE="S"/>
<pfstatus_men CODE="000038" NO="06" REF_TYPE="F" REF_CODE="&amp;ERW" REF_NO="002"/>
<pfstatus_men CODE="000039" NO="01" REF_TYPE="F" REF_CODE="&amp;KOM" REF_NO="001"/>
<pfstatus_men CODE="000039" NO="02" REF_TYPE="F" REF_CODE="&amp;AUF" REF_NO="002"/>
<pfstatus_men CODE="000040" NO="01" REF_TYPE="F" REF_CODE="&amp;OPT" REF_NO="002"/>
<pfstatus_men CODE="000040" NO="02" REF_TYPE="S"/>
<pfstatus_men CODE="000040" NO="03" REF_TYPE="F" REF_CODE="&amp;CFI" REF_NO="002"/>
<pfstatus_men CODE="000040" NO="04" REF_TYPE="F" REF_CODE="&amp;CDF" REF_NO="002"/>
<pfstatus_men CODE="000040" NO="05" REF_TYPE="S"/>
<pfstatus_men CODE="000040" NO="06" REF_TYPE="F" REF_CODE="&amp;DAU" REF_NO="001"/>
<pfstatus_men CODE="000040" NO="07" REF_TYPE="F" REF_CODE="&amp;DON" REF_NO="001"/>
<pfstatus_men CODE="000040" NO="08" REF_TYPE="F" REF_CODE="&amp;DOF" REF_NO="001"/>
<pfstatus_mtx CODE="000001" TEXT_TYPE="S" TEXT="List" PATH="L" INT_NOTE="STANDARD_FULLSCREEN List"/>
<pfstatus_mtx CODE="000002" TEXT_TYPE="S" TEXT="Export" PATH="E" INT_NOTE="STANDARD Save"/>
<pfstatus_mtx CODE="000003" TEXT_TYPE="S" TEXT="Send To" PATH="S"/>
<pfstatus_mtx CODE="000004" TEXT_TYPE="S" TEXT="Edit" PATH="E" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000005" TEXT_TYPE="S" TEXT="Calculate" PATH="C"/>
<pfstatus_mtx CODE="000006" TEXT_TYPE="S" TEXT="Goto" PATH="G" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000007" TEXT_TYPE="S" TEXT="Views" PATH="I"/>
<pfstatus_mtx CODE="000008" TEXT_TYPE="S" TEXT="Settings" PATH="S" INT_NOTE="STANDARD_FULLSCREEN"/>
<pfstatus_mtx CODE="000009" TEXT_TYPE="S" TEXT="Layout" PATH="A" INT_NOTE="Sub STANDARD"/>
<pfstatus_mtx CODE="000010" TEXT_TYPE="S" TEXT="Columns" PATH="C"/>
<pfstatus_mtx CODE="000011" TEXT_TYPE="S" TEXT="List" PATH="L" INT_NOTE="STANDARD List"/>
<pfstatus_mtx CODE="000012" TEXT_TYPE="S" TEXT="Export" PATH="E" INT_NOTE="STANDARD Save"/>
<pfstatus_mtx CODE="000013" TEXT_TYPE="S" TEXT="Send To" PATH="S"/>
<pfstatus_mtx CODE="000014" TEXT_TYPE="S" TEXT="Edit" PATH="E" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000015" TEXT_TYPE="S" TEXT="Calculate" PATH="C"/>
<pfstatus_mtx CODE="000016" TEXT_TYPE="S" TEXT="Goto" PATH="G" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000017" TEXT_TYPE="S" TEXT="Settings" PATH="S" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000018" TEXT_TYPE="S" TEXT="Layout" PATH="A" INT_NOTE="Sub STANDARD"/>
<pfstatus_mtx CODE="000019" TEXT_TYPE="S" TEXT="Summation Levels" PATH="S" INT_NOTE="Sub STANDARD"/>
<pfstatus_mtx CODE="000020" TEXT_TYPE="S" TEXT="Columns" PATH="C"/>
<pfstatus_mtx CODE="000021" TEXT_TYPE="S" TEXT="List" PATH="L" INT_NOTE="STANDARD_FULLSCREEN List"/>
<pfstatus_mtx CODE="000022" TEXT_TYPE="S" TEXT="Export" PATH="E" INT_NOTE="STANDARD Save"/>
<pfstatus_mtx CODE="000023" TEXT_TYPE="S" TEXT="Send To" PATH="S"/>
<pfstatus_mtx CODE="000024" TEXT_TYPE="S" TEXT="Edit" PATH="E" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000025" TEXT_TYPE="S" TEXT="Calculate" PATH="C"/>
<pfstatus_mtx CODE="000026" TEXT_TYPE="S" TEXT="Goto" PATH="G" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000027" TEXT_TYPE="S" TEXT="Views" PATH="I"/>
<pfstatus_mtx CODE="000028" TEXT_TYPE="S" TEXT="Settings" PATH="S" INT_NOTE="STANDARD_FULLSCREEN"/>
<pfstatus_mtx CODE="000029" TEXT_TYPE="S" TEXT="Layout" PATH="A" INT_NOTE="Sub STANDARD"/>
<pfstatus_mtx CODE="000030" TEXT_TYPE="S" TEXT="Columns" PATH="C"/>
<pfstatus_mtx CODE="000031" TEXT_TYPE="S" TEXT="List" PATH="L" INT_NOTE="STANDARD List"/>
<pfstatus_mtx CODE="000032" TEXT_TYPE="S" TEXT="Export" PATH="E" INT_NOTE="STANDARD Save"/>
<pfstatus_mtx CODE="000033" TEXT_TYPE="S" TEXT="Send to" PATH="S"/>
<pfstatus_mtx CODE="000034" TEXT_TYPE="S" TEXT="Edit" PATH="E" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000035" TEXT_TYPE="S" TEXT="Calculate" PATH="C"/>
<pfstatus_mtx CODE="000036" TEXT_TYPE="S" TEXT="Goto" PATH="G" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000037" TEXT_TYPE="S" TEXT="Settings" PATH="S" INT_NOTE="STANDARD"/>
<pfstatus_mtx CODE="000038" TEXT_TYPE="S" TEXT="Layout" PATH="A" INT_NOTE="Sub STANDARD"/>
<pfstatus_mtx CODE="000039" TEXT_TYPE="S" TEXT="Summation levels" PATH="S" INT_NOTE="Sub STANDARD"/>
<pfstatus_mtx CODE="000040" TEXT_TYPE="S" TEXT="Columns" PATH="C"/>
<pfstatus_act CODE="000001" NO="01" MENUCODE="000001"/>
<pfstatus_act CODE="000001" NO="02" MENUCODE="000004"/>
<pfstatus_act CODE="000001" NO="03" MENUCODE="000006"/>
<pfstatus_act CODE="000001" NO="04" MENUCODE="000007"/>
<pfstatus_act CODE="000001" NO="05" MENUCODE="000008"/>
<pfstatus_act CODE="000002" NO="01" MENUCODE="000011"/>
<pfstatus_act CODE="000002" NO="02" MENUCODE="000014"/>
<pfstatus_act CODE="000002" NO="03" MENUCODE="000016"/>
<pfstatus_act CODE="000002" NO="04" MENUCODE="000017"/>
<pfstatus_act CODE="000003" NO="01" MENUCODE="000021"/>
<pfstatus_act CODE="000003" NO="02" MENUCODE="000024"/>
<pfstatus_act CODE="000003" NO="03" MENUCODE="000026"/>
<pfstatus_act CODE="000003" NO="04" MENUCODE="000027"/>
<pfstatus_act CODE="000003" NO="05" MENUCODE="000028"/>
<pfstatus_act CODE="000004" NO="01" MENUCODE="000031"/>
<pfstatus_act CODE="000004" NO="02" MENUCODE="000034"/>
<pfstatus_act CODE="000004" NO="03" MENUCODE="000036"/>
<pfstatus_act CODE="000004" NO="04" MENUCODE="000037"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="01" PFNO="39"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="02" PFNO="37"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="03" PFNO="08"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="04" PFNO="05"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="05" PFNO="06"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="06" PFNO="28"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="07" PFNO="40"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="08" PFNO="29"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="09" PFNO="38"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="10" PFNO="30"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="11" PFNO="46"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="12" PFNO="43"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="13" PFNO="44"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="14" PFNO="45"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="15" PFNO="31"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="16" PFNO="25"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="17" PFNO="47"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="18" PFNO="32"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="19" PFNO="33"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="20" PFNO="34"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="21" PFNO="36"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="22" PFNO="13"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="01" PFNO="39"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="02" PFNO="37"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="03" PFNO="S"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="04" PFNO="05"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="05" PFNO="06"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="06" PFNO="S"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="07" PFNO="28"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="08" PFNO="40"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="09" PFNO="29"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="10" PFNO="S"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="11" PFNO="30"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="12" PFNO="42"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="13" PFNO="35"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="14" PFNO="47"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="15" PFNO="S"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="16" PFNO="43"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="17" PFNO="44"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="18" PFNO="45"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="19" PFNO="31"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="20" PFNO="25"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="21" PFNO="S"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="22" PFNO="32"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="23" PFNO="33"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="24" PFNO="34"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="25" PFNO="S"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="26" PFNO="41"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="27" PFNO="07"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="28" PFNO="S"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="29" PFNO="18"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="30" PFNO="26"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="31" PFNO="27"/>
<pfstatus_but PFK_CODE="000002" CODE="0001" NO="32" PFNO="19"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="01" PFNO="39"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="02" PFNO="37"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="03" PFNO="08"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="04" PFNO="05"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="05" PFNO="06"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="06" PFNO="28"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="07" PFNO="40"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="08" PFNO="29"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="09" PFNO="38"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="10" PFNO="30"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="11" PFNO="46"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="12" PFNO="43"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="13" PFNO="44"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="14" PFNO="45"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="15" PFNO="31"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="16" PFNO="25"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="17" PFNO="47"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="18" PFNO="32"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="19" PFNO="33"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="20" PFNO="34"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="21" PFNO="36"/>
<pfstatus_but PFK_CODE="000003" CODE="0001" NO="22" PFNO="13"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="01" PFNO="39"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="02" PFNO="37"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="03" PFNO="S"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="04" PFNO="05"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="05" PFNO="06"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="06" PFNO="S"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="07" PFNO="28"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="08" PFNO="40"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="09" PFNO="29"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="10" PFNO="38"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="11" PFNO="S"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="12" PFNO="30"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="13" PFNO="42"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="14" PFNO="S"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="15" PFNO="45"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="16" PFNO="S"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="17" PFNO="32"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="18" PFNO="33"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="19" PFNO="34"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="20" PFNO="09"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="21" PFNO="S"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="22" PFNO="41"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="23" PFNO="07"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="24" PFNO="S"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="25" PFNO="18"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="26" PFNO="26"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="27" PFNO="27"/>
<pfstatus_but PFK_CODE="000004" CODE="0001" NO="28" PFNO="19"/>
<pfstatus_pfk CODE="000001" PFNO="01" FUNCODE="&amp;ELP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="02" FUNCODE="&amp;IC1" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="03" FUNCODE="&amp;F03" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="04" FUNCODE="&amp;F4" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="05" FUNCODE="&amp;ALL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="06" FUNCODE="&amp;SAL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="08" FUNCODE="&amp;REFRESH" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="11" FUNCODE="&amp;DATA_SAVE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="12" FUNCODE="&amp;F12" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="13" FUNCODE="EXCEL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="15" FUNCODE="&amp;F15" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="25" FUNCODE="&amp;ABC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="28" FUNCODE="&amp;OUP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="29" FUNCODE="&amp;ILT" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="30" FUNCODE="&amp;UMC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="31" FUNCODE="%SL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="32" FUNCODE="&amp;OL0" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="33" FUNCODE="&amp;OAD" FUNNO="002"/>
<pfstatus_pfk CODE="000001" PFNO="34" FUNCODE="&amp;AVE" FUNNO="002"/>
<pfstatus_pfk CODE="000001" PFNO="36" FUNCODE="&amp;INFO" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="37" FUNCODE="&amp;EB9" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="38" FUNCODE="&amp;ILD" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="39" FUNCODE="&amp;ETA" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="40" FUNCODE="&amp;ODN" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="42" FUNCODE="&amp;SUM" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="43" FUNCODE="&amp;XXL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="44" FUNCODE="&amp;AQW" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="45" FUNCODE="%PC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="46" FUNCODE="&amp;RNT_PREV" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="47" FUNCODE="&amp;GRAPH" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="71" FUNCODE="%SC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="84" FUNCODE="%SC+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="86" FUNCODE="&amp;RNT" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="01" FUNCODE="&amp;ELP" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="02" FUNCODE="&amp;IC1" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="03" FUNCODE="&amp;F03" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="05" FUNCODE="&amp;ALL" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="06" FUNCODE="&amp;SAL" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="07" FUNCODE="&amp;NFO" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="08" FUNCODE="&amp;NTE" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="12" FUNCODE="&amp;F12" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="15" FUNCODE="&amp;F15" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="18" FUNCODE="&amp;CRB" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="19" FUNCODE="&amp;CRE" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="21" FUNCODE="P--" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="22" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="23" FUNCODE="P+" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="24" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="25" FUNCODE="&amp;ABC" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="26" FUNCODE="&amp;CRL" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="27" FUNCODE="&amp;CRR" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="28" FUNCODE="&amp;OUP" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="29" FUNCODE="&amp;ILT" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="30" FUNCODE="&amp;UMC" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="31" FUNCODE="%SL" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="32" FUNCODE="&amp;OL0" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="33" FUNCODE="&amp;OAD" FUNNO="002"/>
<pfstatus_pfk CODE="000002" PFNO="34" FUNCODE="&amp;AVE" FUNNO="002"/>
<pfstatus_pfk CODE="000002" PFNO="35" FUNCODE="&amp;XPA" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="37" FUNCODE="&amp;EB9" FUNNO="002"/>
<pfstatus_pfk CODE="000002" PFNO="39" FUNCODE="&amp;ETA" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="40" FUNCODE="&amp;ODN" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="41" FUNCODE="&amp;LFO" FUNNO="002"/>
<pfstatus_pfk CODE="000002" PFNO="42" FUNCODE="&amp;SUM" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="43" FUNCODE="&amp;XXL" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="44" FUNCODE="&amp;AQW" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="45" FUNCODE="%PC" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="46" FUNCODE="&amp;RNT_PREV" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="47" FUNCODE="&amp;OMP" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="48" FUNCODE="&amp;XML" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="71" FUNCODE="%SC" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="80" FUNCODE="P--" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="81" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="82" FUNCODE="P+" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="83" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="84" FUNCODE="%SC+" FUNNO="001"/>
<pfstatus_pfk CODE="000002" PFNO="86" FUNCODE="&amp;RNT" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="01" FUNCODE="&amp;ELP" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="02" FUNCODE="&amp;IC1" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="03" FUNCODE="&amp;F03" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="04" FUNCODE="&amp;F4" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="05" FUNCODE="&amp;ALL" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="06" FUNCODE="&amp;SAL" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="08" FUNCODE="&amp;REFRESH" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="11" FUNCODE="&amp;DATA_SAVE" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="12" FUNCODE="&amp;F12" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="13" FUNCODE="EXCEL" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="15" FUNCODE="&amp;F15" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="25" FUNCODE="&amp;ABC" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="28" FUNCODE="&amp;OUP" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="29" FUNCODE="&amp;ILT" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="30" FUNCODE="&amp;UMC" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="31" FUNCODE="%SL" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="32" FUNCODE="&amp;OL0" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="33" FUNCODE="&amp;OAD" FUNNO="002"/>
<pfstatus_pfk CODE="000003" PFNO="34" FUNCODE="&amp;AVE" FUNNO="002"/>
<pfstatus_pfk CODE="000003" PFNO="36" FUNCODE="&amp;INFO" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="37" FUNCODE="&amp;EB9" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="38" FUNCODE="&amp;ILD" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="39" FUNCODE="&amp;ETA" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="40" FUNCODE="&amp;ODN" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="42" FUNCODE="&amp;SUM" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="43" FUNCODE="&amp;XXL" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="44" FUNCODE="&amp;AQW" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="45" FUNCODE="%PC" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="46" FUNCODE="&amp;RNT_PREV" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="47" FUNCODE="&amp;GRAPH" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="71" FUNCODE="%SC" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="84" FUNCODE="%SC+" FUNNO="001"/>
<pfstatus_pfk CODE="000003" PFNO="86" FUNCODE="&amp;RNT" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="01" FUNCODE="&amp;ELP" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="02" FUNCODE="&amp;IC1" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="03" FUNCODE="&amp;F03" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="05" FUNCODE="&amp;ALL" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="06" FUNCODE="&amp;SAL" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="07" FUNCODE="&amp;NFO" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="08" FUNCODE="&amp;NTE" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="09" FUNCODE="EXCEL" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="12" FUNCODE="&amp;F12" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="15" FUNCODE="&amp;F15" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="18" FUNCODE="&amp;CRB" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="19" FUNCODE="&amp;CRE" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="21" FUNCODE="P--" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="22" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="23" FUNCODE="P+" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="24" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="25" FUNCODE="&amp;ABC" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="26" FUNCODE="&amp;CRL" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="27" FUNCODE="&amp;CRR" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="28" FUNCODE="&amp;OUP" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="29" FUNCODE="&amp;ILT" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="30" FUNCODE="&amp;UMC" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="31" FUNCODE="%SL" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="32" FUNCODE="&amp;OL0" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="33" FUNCODE="&amp;OAD" FUNNO="003"/>
<pfstatus_pfk CODE="000004" PFNO="34" FUNCODE="&amp;AVE" FUNNO="003"/>
<pfstatus_pfk CODE="000004" PFNO="35" FUNCODE="&amp;XPA" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="37" FUNCODE="&amp;EB9" FUNNO="003"/>
<pfstatus_pfk CODE="000004" PFNO="38" FUNCODE="&amp;ILD" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="39" FUNCODE="&amp;ETA" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="40" FUNCODE="&amp;ODN" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="41" FUNCODE="&amp;LFO" FUNNO="003"/>
<pfstatus_pfk CODE="000004" PFNO="42" FUNCODE="&amp;SUM" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="43" FUNCODE="&amp;XXL" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="44" FUNCODE="&amp;AQW" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="45" FUNCODE="%PC" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="46" FUNCODE="&amp;RNT_PREV" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="47" FUNCODE="&amp;OMP" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="48" FUNCODE="&amp;XML" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="71" FUNCODE="%SC" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="80" FUNCODE="P--" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="81" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="82" FUNCODE="P+" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="83" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000004" PFNO="84" FUNCODE="%SC+" FUNNO="002"/>
<pfstatus_pfk CODE="000004" PFNO="86" FUNCODE="&amp;RNT" FUNNO="001"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%CH"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%ML"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%PC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ABC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ALL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AQW"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AUF"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AVE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AVR"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;BS"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;BS+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;BS-"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CDF"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CFI"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;COUNT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRB"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRR"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;DAU"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;DOF"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;DON"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;EB3"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;EB9"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ELP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ERW"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ETA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F03"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F12"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F15"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;IC1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ILD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ILT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;KOM"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;LFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;LIS"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;MAX"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;MIN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;NFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;NTE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OAD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ODN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OL0"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OL1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OLX"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OMP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OPT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OUP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;RNT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;SAL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;SUM"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;UMC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XML"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XPA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XXL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BAC1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BACK"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEB1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEB2"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEB3"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEB9"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="BEBN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="COL0"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="COLX"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="DETA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="DRUK"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="DSAL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="ENTE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXCEL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXIT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXPA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="FILD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="FILT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="GLIS"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="HELP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="INFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="KOMP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P++"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P-"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P--"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PF09"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PF13"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PIC1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PICK"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PRI"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PRIN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="PRNT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="RW"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SALL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SAUF"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SAVE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SCRB"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SCRE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SCRL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SCRR"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SKOM"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SODN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SOUP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="SUMC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="ZSUM"/>
<pfstatus_doc OBJ_TYPE="A" OBJ_CODE="000001" MODAL="D" INT_NOTE="Standard Interface STANDARD_FULLSCREEN"/>
<pfstatus_doc OBJ_TYPE="P" OBJ_CODE="000001" MODAL="D" NORM="X" INT_NOTE="Standard Maximum Interaction STANDARD_FULLSCREEN"/>
<pfstatus_doc OBJ_TYPE="B" OBJ_CODE="000001" SUB_CODE="0001" INT_NOTE="STANDARD_FULLSCREEN"/>
<pfstatus_doc OBJ_TYPE="A" OBJ_CODE="000002" MODAL="D" INT_NOTE="Standard User Interface STANDARD"/>
<pfstatus_doc OBJ_TYPE="P" OBJ_CODE="000002" MODAL="D" NORM="X" INT_NOTE="Standard Maximum Interaction"/>
<pfstatus_doc OBJ_TYPE="B" OBJ_CODE="000002" SUB_CODE="0001" MODAL="D" INT_NOTE="Standard Maximum Interaction"/>
<pfstatus_doc OBJ_TYPE="A" OBJ_CODE="000003" MODAL="D" INT_NOTE="Standard Interface STANDARD_FULLSCREEN"/>
<pfstatus_doc OBJ_TYPE="P" OBJ_CODE="000003" MODAL="D" NORM="X" INT_NOTE="Standard Maximum Interaction STANDARD_FULLSCREEN"/>
<pfstatus_doc OBJ_TYPE="B" OBJ_CODE="000003" SUB_CODE="0001" INT_NOTE="STANDARD_FULLSCREEN"/>
<pfstatus_doc OBJ_TYPE="A" OBJ_CODE="000004" MODAL="D" INT_NOTE="Standard User Interface STANDARD"/>
<pfstatus_doc OBJ_TYPE="P" OBJ_CODE="000004" MODAL="D" NORM="X" INT_NOTE="Standard Maximum Interaction"/>
<pfstatus_doc OBJ_TYPE="B" OBJ_CODE="000004" SUB_CODE="0001" MODAL="D" NORM="X" INT_NOTE="Standard Maximum Interaction"/>
</pfstatus>
<source>*--------------------------------------------------------------------*
* REPORT ZDEMO_EXCEL20
* Demo for method zcl_excel_worksheet-bind_alv:
* export data from ALV (CL_GUI_ALV_GRID) object to excel
*--------------------------------------------------------------------*
REPORT zdemo_excel20.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS:
on_user_command FOR EVENT added_function OF cl_salv_events
IMPORTING e_salv_function.
ENDCLASS. &quot;lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_user_command.
PERFORM user_command.&quot; using e_salv_function text-i08.
ENDMETHOD. &quot;on_user_command
ENDCLASS. &quot;lcl_handle_events IMPLEMENTATION
*--------------------------------------------------------------------*
* DATA DECLARATION
*--------------------------------------------------------------------*
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_alv TYPE REF TO cl_gui_alv_grid,
lo_salv TYPE REF TO cl_salv_table,
gr_events TYPE REF TO lcl_handle_events,
lr_events TYPE REF TO cl_salv_events_table,
gt_sbook TYPE TABLE OF sbook,
gt_listheader TYPE slis_t_listheader,
wa_listheader LIKE LINE OF gt_listheader.
DATA: l_path TYPE string, &quot; local dir
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS:
lv_default_file_name TYPE string VALUE &apos;20_BindAlv.xlsx&apos;.
*--------------------------------------------------------------------*
*START-OF-SELECTION
*--------------------------------------------------------------------*
START-OF-SELECTION.
* get data
* ------------------------------------------
SELECT *
INTO TABLE gt_sbook[]
FROM sbook &quot;#EC CI_NOWHERE
UP TO 10 ROWS.
* Display ALV
* ------------------------------------------
TRY.
cl_salv_table=&gt;factory(
EXPORTING
list_display = abap_false
IMPORTING
r_salv_table = lo_salv
CHANGING
t_table = gt_sbook[] ).
CATCH cx_salv_msg .
ENDTRY.
TRY.
lo_salv-&gt;set_screen_status(
EXPORTING
report = sy-repid
pfstatus = &apos;ALV_STATUS&apos;
set_functions = lo_salv-&gt;c_functions_all ).
CATCH cx_salv_msg .
ENDTRY.
lr_events = lo_salv-&gt;get_event( ).
CREATE OBJECT gr_events.
SET HANDLER gr_events-&gt;on_user_command FOR lr_events.
lo_salv-&gt;display( ).
*&amp;---------------------------------------------------------------------*
*&amp; Form USER_COMMAND
*&amp;---------------------------------------------------------------------*
* ALV user command
*--------------------------------------------------------------------*
FORM user_command .
IF sy-ucomm = &apos;EXCEL&apos;.
* get save file path
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = l_path ).
cl_gui_cfw=&gt;flush( ).
cl_gui_frontend_services=&gt;directory_browse(
EXPORTING initial_folder = l_path
CHANGING selected_folder = l_path ).
IF l_path IS INITIAL.
cl_gui_frontend_services=&gt;get_sapgui_workdir(
CHANGING sapworkdir = lv_workdir ).
l_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator(
CHANGING file_separator = lv_file_separator ).
CONCATENATE l_path lv_file_separator lv_default_file_name
INTO l_path.
* export file to save file path
PERFORM export_to_excel.
ENDIF.
ENDFORM. &quot; USER_COMMAND
*--------------------------------------------------------------------*
* FORM EXPORT_TO_EXCEL
*--------------------------------------------------------------------*
* This subroutine is principal demo session
*--------------------------------------------------------------------*
FORM export_to_excel.
* create zcl_excel_worksheet object
CREATE OBJECT lo_excel.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
* get ALV object from screen
CALL FUNCTION &apos;GET_GLOBALS_FROM_SLVC_FULLSCR&apos;
IMPORTING
e_grid = lo_alv.
* build list header
wa_listheader-typ = &apos;H&apos;.
wa_listheader-info = sy-title.
APPEND wa_listheader TO gt_listheader.
wa_listheader-typ = &apos;S&apos;.
wa_listheader-info = &apos;Created by: ABAP2XLSX Group&apos;.
APPEND wa_listheader TO gt_listheader.
wa_listheader-typ = &apos;A&apos;.
wa_listheader-info =
&apos;Project hosting at https://cw.sdn.sap.com/cw/groups/abap2xlsx&apos;.
APPEND wa_listheader TO gt_listheader.
* write to excel using method Bin_ALV
lo_worksheet-&gt;bind_alv_ole2(
EXPORTING
* I_DOCUMENT_URL = SPACE &quot; excel template
* I_XLS = &apos;X&apos; &quot; create in xls format?
i_save_path = l_path
io_alv = lo_alv
it_listheader = gt_listheader
i_top = 2
i_left = 1
* I_COLUMNS_HEADER = &apos;X&apos;
* I_COLUMNS_AUTOFIT = &apos;X&apos;
* I_FORMAT_COL_HEADER =
* I_FORMAT_SUBTOTAL =
* I_FORMAT_TOTAL =
EXCEPTIONS
miss_guide = 1
ex_transfer_kkblo_error = 2
fatal_error = 3
inv_data_range = 4
dim_mismatch_vkey = 5
dim_mismatch_sema = 6
error_in_sema = 7
OTHERS = 8
).
IF sy-subrc &lt;&gt; 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. &quot;EXPORT_TO_EXCEL</source>
</PROG>
<TABL TABNAME="ZEXCEL_S_FIELDCATALOG" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Fieldcatalog for Table Binding" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="TABNAME" DDLANGUAGE="E" POSITION="0001" ROLLNAME="TABNAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="AS4TAB" ROUTPUTLEN="000000" MEMORYID="DTB" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD02L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Table Name" REPTEXT="Table Name" SCRTEXT_S="Table" SCRTEXT_M="Table Name" SCRTEXT_L="Table Name" DOMNAME3L="AS4TAB" DEPTH="00" COMPTYPE="E" DEFFDNAME="TABNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="FIELDNAME" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FIELDNAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="POSITION" DDLANGUAGE="E" POSITION="0003" ROLLNAME="TABFDPOS" ADMINFIELD="0" INTTYPE="N" INTLEN="000008" DOMNAME="AS4POS" ROUTPUTLEN="000000" HEADLEN="06" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="NUMC" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" MASK=" NUMCE" MASKLEN="0000" DDTEXT="Position of the field in the table" REPTEXT="TabPos" SCRTEXT_S="Table pos." SCRTEXT_M="Table position" SCRTEXT_L="Table position" DOMNAME3L="AS4POS" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="SCRTEXT_S" DDLANGUAGE="E" POSITION="0004" ROLLNAME="SCRTEXT_S" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="SCRTEXT_S" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Short Field Label" REPTEXT="Short field label" SCRTEXT_S="Short" SCRTEXT_M="ShortFieldLabel" SCRTEXT_L="Short field label" DOMNAME3L="SCRTEXT_S" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="SCRTEXT_M" DDLANGUAGE="E" POSITION="0005" ROLLNAME="SCRTEXT_M" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="SCRTEXT_M" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Medium Field Label" REPTEXT="Medium Field Label" SCRTEXT_S="Medium" SCRTEXT_M="Medium Fld Labl" SCRTEXT_L="Medium Field Label" DOMNAME3L="SCRTEXT_M" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_M" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="SCRTEXT_L" DDLANGUAGE="E" POSITION="0006" ROLLNAME="SCRTEXT_L" ADMINFIELD="0" INTTYPE="C" INTLEN="000080" DOMNAME="SCRTEXT_L" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Long Field Label" REPTEXT="Long Field Label" SCRTEXT_S="Long" SCRTEXT_M="Long Fld Label" SCRTEXT_L="Long field label" DOMNAME3L="SCRTEXT_L" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_L" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="DYNPFLD" DDLANGUAGE="E" POSITION="0007" ROLLNAME="DYNPROFLD" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="AS4FLAG" ROUTPUTLEN="000000" HEADLEN="02" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Flag: field to be displayed on the screen" REPTEXT="SF" SCRTEXT_S="Screen fld" SCRTEXT_M="Screen field" SCRTEXT_L="Screen field" DOMNAME3L="AS4FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="STYLE" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="STYLE_HEADER" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="STYLE_TOTAL" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="COND_STYLE" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZCL_EXCEL_STYLE_CONDITIONAL" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="REF" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" REF RC" MASKLEN="0000" DDTEXT="Font Style" DEPTH="00" COMPTYPE="R" REFTYPE="C" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="TOTALS_FUNCTION" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_TABLE_TOTALS_FUNCTION" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Totals function for table column (xml ST_TotalsRowFunction)" SCRTEXT_S="Function" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_FIELDCATALOG" FIELDNAME="FORMULA" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLE_PROTECTION" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Values for Cellstyles - Protection" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_PROTECTION" FIELDNAME="HIDDEN" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_PROTECTION" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CELL_PROTECTION" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell protection indicator" REPTEXT="Cell protection" SCRTEXT_S="Protection" SCRTEXT_M="Cell protection" SCRTEXT_L="Cell protection" DOMNAME3L="ZEXCEL_CELL_PROTECTION" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_PROTECTION" FIELDNAME="LOCKED" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CELL_PROTECTION" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CELL_PROTECTION" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell protection indicator" REPTEXT="Cell protection" SCRTEXT_S="Protection" SCRTEXT_M="Cell protection" SCRTEXT_L="Cell protection" DOMNAME3L="ZEXCEL_CELL_PROTECTION" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLE_NUMBER_FORMAT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Values for Cellstyles - Number Format" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_NUMBER_FORMAT" FIELDNAME="FORMAT_CODE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_NUMBER_FORMAT" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Number format" REPTEXT="Number format" SCRTEXT_S="Format" SCRTEXT_M="Number format" SCRTEXT_L="Number format" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_ORG_REL" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" LANGDEP="X" DDTEXT="Organization &amp; Contact Person download" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="ORG_GUID" DDLANGUAGE="E" POSITION="0001" ROLLNAME="BAPIGUID" ADMINFIELD="0" INTTYPE="C" INTLEN="000064" DOMNAME="SDOK_DOCID" ROUTPUTLEN="000000" HEADLEN="32" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000032" OUTPUTLEN="000032" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="GUID" REPTEXT="GUID" SCRTEXT_S="GUID" SCRTEXT_M="GUID" SCRTEXT_L="GUID" DOMNAME3L="SDOK_DOCID" DEPTH="00" COMPTYPE="E" DEFFDNAME="OBJECTID" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CONTPERS_GUID" DDLANGUAGE="E" POSITION="0002" ROLLNAME="BAPIGUID" ADMINFIELD="0" INTTYPE="C" INTLEN="000064" DOMNAME="SDOK_DOCID" ROUTPUTLEN="000000" HEADLEN="32" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000032" OUTPUTLEN="000032" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="GUID" REPTEXT="GUID" SCRTEXT_S="GUID" SCRTEXT_M="GUID" SCRTEXT_L="GUID" DOMNAME3L="SDOK_DOCID" DEPTH="00" COMPTYPE="E" DEFFDNAME="OBJECTID" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="ORG_NUMBER" DDLANGUAGE="E" POSITION="0003" ROLLNAME="BU_PARTNER" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="BU_PARTNER" ROUTPUTLEN="000000" MEMORYID="BPA" LOGFLAG="X" HEADLEN="16" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" ENTITYTAB="BUT000" CONVEXIT="ALPHA" MASK=" CHARE" MASKLEN="0000" DDTEXT="Business Partner Number" REPTEXT="Business Partner" SCRTEXT_S="Partner" SCRTEXT_M="BusinessPartner" SCRTEXT_L="Business Partner" DOMMASTER="D" DOMNAME3L="BU_PARTNER" SHLPORIGIN="D" SHLPNAME="BUPA" SHLPFIELD="PARTNER" DEPTH="00" COMPTYPE="E" DEFFDNAME="PARTNER" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CONTPERS_NUMBER" DDLANGUAGE="E" POSITION="0004" ROLLNAME="BU_PARTNER" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="BU_PARTNER" ROUTPUTLEN="000000" MEMORYID="BPA" LOGFLAG="X" HEADLEN="16" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" ENTITYTAB="BUT000" CONVEXIT="ALPHA" MASK=" CHARE" MASKLEN="0000" DDTEXT="Business Partner Number" REPTEXT="Business Partner" SCRTEXT_S="Partner" SCRTEXT_M="BusinessPartner" SCRTEXT_L="Business Partner" DOMMASTER="D" DOMNAME3L="BU_PARTNER" SHLPORIGIN="D" SHLPNAME="BUPA" SHLPFIELD="PARTNER" DEPTH="00" COMPTYPE="E" DEFFDNAME="PARTNER" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME=".INCLUDE" DDLANGUAGE="E" POSITION="0005" ADMINFIELD="0" INTLEN="000000" PRECFIELD="BAPIBUS1006_CENTRAL_ORGAN" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" S" MASKLEN="0000" DDTEXT="SAP BP: BAPI Structure for Organization Data" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAME1" DDLANGUAGE="E" POSITION="0006" ROLLNAME="BU_NAMEOR1" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="35" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name 1 of organization" REPTEXT="Name 1" SCRTEXT_S="Name 1" SCRTEXT_M="Name 1" SCRTEXT_L="Name 1" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="NAME1" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAME2" DDLANGUAGE="E" POSITION="0007" ROLLNAME="BU_NAMEOR2" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name 2 of organization" REPTEXT="Name 2" SCRTEXT_S="Name 2" SCRTEXT_M="Name 2" SCRTEXT_L="Name 2" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="NAME2" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAME3" DDLANGUAGE="E" POSITION="0008" ROLLNAME="BU_NAMEOR3" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="35" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name 3 of organization" REPTEXT="Name 3" SCRTEXT_S="Name 3" SCRTEXT_M="Name 3" SCRTEXT_L="Name 3" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="NAME3" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAME4" DDLANGUAGE="E" POSITION="0009" ROLLNAME="BU_NAMEOR4" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name 4 of organization" REPTEXT="Name 4" SCRTEXT_S="Name 4" SCRTEXT_M="Name 4" SCRTEXT_L="Name 4" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="NAME4" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LEGALFORM" DDLANGUAGE="E" POSITION="0010" ROLLNAME="BU_LEGENTY" CHECKTABLE="TB019" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="BU_LEGENTY" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" ENTITYTAB="TB019" MASK=" CHARE" MASKLEN="0000" DDTEXT="BP: Legal form of organization" REPTEXT="Legal form" SCRTEXT_S="Legal form" SCRTEXT_M="Legal form" SCRTEXT_L="Legal form" DOMMASTER="D" DOMNAME3L="BU_LEGENTY" SHLPORIGIN="P" SHLPNAME="H_TB019" SHLPFIELD="LEGAL_ENTY" DEPTH="00" COMPTYPE="E" DEFFDNAME="LEGALFORM" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="INDUSTRYSECTOR" DDLANGUAGE="E" POSITION="0011" ROLLNAME="BU_INDSECT" CHECKTABLE="TB023" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="BU_INDSECT" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" ENTITYTAB="TB023" MASK=" CHARE" MASKLEN="0000" DDTEXT="Industry sector" REPTEXT="Industry" SCRTEXT_S="Industry" SCRTEXT_M="Industry sector" SCRTEXT_L="Industry sector" DOMMASTER="D" DOMNAME3L="BU_INDSECT" SHLPORIGIN="P" SHLPNAME="H_TB023" SHLPFIELD="IND_SECTOR" DEPTH="00" COMPTYPE="E" DEFFDNAME="INDUSTRYSECTORKEY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FOUNDATIONDATE" DDLANGUAGE="E" POSITION="0012" ROLLNAME="BU_FOUND_DAT" ADMINFIELD="1" INTTYPE="D" INTLEN="000016" DOMNAME="DATUM" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="DATS" LENG="000008" OUTPUTLEN="000010" DECIMALS="000000" MASK=" DATSE" MASKLEN="0000" DDTEXT="Date organization founded" REPTEXT="Founded" SCRTEXT_S="Founded" SCRTEXT_M="Date founded" SCRTEXT_L="Date founded" DOMNAME3L="DATUM" SHLPORIGIN="T" DEPTH="00" COMPTYPE="E" DEFFDNAME="FOUNDATIONDATE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LIQUIDATIONDATE" DDLANGUAGE="E" POSITION="0013" ROLLNAME="BU_LIQUID_DAT" ADMINFIELD="1" INTTYPE="D" INTLEN="000016" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="DATS" LENG="000008" OUTPUTLEN="000010" DECIMALS="000000" MASK=" DATSE" MASKLEN="0000" DDTEXT="Liquidation date of organization" REPTEXT="Liq. date" SCRTEXT_S="Liq. date" SCRTEXT_M="Liquidation" SCRTEXT_L="Liquidation date" SHLPORIGIN="T" DEPTH="00" COMPTYPE="E" DEFFDNAME="LIQUIDATIONDATE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LOC_NO_1" DDLANGUAGE="E" POSITION="0014" ROLLNAME="BBBNR" ADMINFIELD="1" INTTYPE="N" INTLEN="000014" DOMNAME="NUM07" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="08" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="NUMC" LENG="000007" OUTPUTLEN="000007" DECIMALS="000000" MASK=" NUMCE" MASKLEN="0000" DDTEXT="International location number (part 1)" REPTEXT="ILN 1" SCRTEXT_S="Loc.no. 1" SCRTEXT_M="Location no. 1" SCRTEXT_L="Int. location no. 1" DOMNAME3L="NUM07" DEPTH="00" COMPTYPE="E" DEFFDNAME="LOC_NO_1" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LOC_NO_2" DDLANGUAGE="E" POSITION="0015" ROLLNAME="BBSNR" ADMINFIELD="1" INTTYPE="N" INTLEN="000010" DOMNAME="NUM05" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="05" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="NUMC" LENG="000005" OUTPUTLEN="000005" DECIMALS="000000" MASK=" NUMCE" MASKLEN="0000" DDTEXT="International location number (Part 2)" REPTEXT="ILN 2" SCRTEXT_S="Loc.no. 2" SCRTEXT_M="Location no. 2" SCRTEXT_L="Int. location no. 2" DOMNAME3L="NUM05" DEPTH="00" COMPTYPE="E" DEFFDNAME="LOC_NO_2" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CHK_DIGIT" DDLANGUAGE="E" POSITION="0016" ROLLNAME="BUBKZ" ADMINFIELD="1" INTTYPE="N" INTLEN="000002" DOMNAME="NUM01" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="NUMC" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" MASK=" NUMCE" MASKLEN="0000" DDTEXT="Check digit for the international location number" SCRTEXT_S="Chk.digit" SCRTEXT_M="Check digit" SCRTEXT_L="Check digit" DOMNAME3L="NUM01" DEPTH="00" COMPTYPE="E" DEFFDNAME="CHK_DIGIT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LEGALORG" DDLANGUAGE="E" POSITION="0017" ROLLNAME="BU_LEGAL_ORG" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="BU_LEGAL_ORG" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="08" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" ENTITYTAB="TB032" MASK=" CHARE" MASKLEN="0000" DDTEXT="Legal Entity of Organization" REPTEXT="LegEnty" SCRTEXT_S="LegEntity" SCRTEXT_M="Legal entity" SCRTEXT_L="Legal entity" DOMNAME3L="BU_LEGAL_ORG" DEPTH="00" COMPTYPE="E" DEFFDNAME="LEGALORG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME=".INCLUDE" DDLANGUAGE="E" POSITION="0018" ADMINFIELD="0" INTLEN="000000" REFTABLE="LANGU" PRECFIELD="BAPIBUS1006_ADDRESS" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" S" MASKLEN="0000" DDTEXT="SAP BP: BAPI Structure for Address Data" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STANDARDADDRESS" DDLANGUAGE="E" POSITION="0019" ROLLNAME="BU_XDFADR" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="XFELD" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="08" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Indicator: Address is standard address" REPTEXT="Std.Addr" SCRTEXT_S="Std.Addr" SCRTEXT_M="Stand. address" SCRTEXT_L="Stand. address" DOMNAME3L="XFELD" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="STANDARDADDRESS" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="C_O_NAME" DDLANGUAGE="E" POSITION="0020" ROLLNAME="AD_NAME_CO" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="c/o name" REPTEXT="c/o name" SCRTEXT_S="c/o" SCRTEXT_M="c/o" SCRTEXT_L="c/o" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="C_O_NAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CITY" DDLANGUAGE="E" POSITION="0021" ROLLNAME="AD_CITY1" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="City" REPTEXT="City" SCRTEXT_S="City" SCRTEXT_M="City" SCRTEXT_L="City" DOMNAME3L="TEXT40" SHLPORIGIN="D" SHLPNAME="CLCITYNAME" SHLPFIELD="CITY_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="CITY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DISTRICT" DDLANGUAGE="E" POSITION="0022" ROLLNAME="AD_CITY2" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="District" REPTEXT="District" SCRTEXT_S="District" SCRTEXT_M="District" SCRTEXT_L="District" DOMNAME3L="TEXT40" SHLPORIGIN="D" SHLPNAME="CITY_PART" SHLPFIELD="CITY_PART" DEPTH="00" COMPTYPE="E" DEFFDNAME="DISTRICT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGIOGROUP" DDLANGUAGE="E" POSITION="0023" ROLLNAME="REGIOGROUP" CHECKTABLE="ADRREGGRP" ADMINFIELD="1" INTTYPE="C" INTLEN="000016" DOMNAME="REGIOGROUP" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="09" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" ENTITYTAB="ADRREGGRP" MASK=" CHARE" MASKLEN="0000" DDTEXT="Regional structure grouping" REPTEXT="RegStGrp." SCRTEXT_S="RegStrGrp." SCRTEXT_M="Reg. Str. Grp." SCRTEXT_L="Reg. Struct. Grp." DOMNAME3L="REGIOGROUP" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="REGIOGROUP" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="POSTL_COD1" DDLANGUAGE="E" POSITION="0024" ROLLNAME="AD_PSTCD1" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="City postal code" REPTEXT="Postl Code" SCRTEXT_S="Postl Code" SCRTEXT_M="Postal Code" SCRTEXT_L="Postal Code" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="POSTL_COD1" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="POSTL_COD2" DDLANGUAGE="E" POSITION="0025" ROLLNAME="AD_PSTCD2" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="PO Box Postal Code" REPTEXT="Postl Code" SCRTEXT_S="Postl Code" SCRTEXT_M="PO Box Post Cde" SCRTEXT_L="PO Box Postal Code" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="POSTL_COD2" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="POSTL_COD3" DDLANGUAGE="E" POSITION="0026" ROLLNAME="AD_PSTCD3" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Company Postal Code (for Large Customers)" REPTEXT="Postl Code" SCRTEXT_S="Postl Code" SCRTEXT_M="Company Post Cd" SCRTEXT_L="Company Postal Code" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="POSTL_COD3" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PCODE1_EXT" DDLANGUAGE="E" POSITION="0027" ROLLNAME="AD_PST1XT" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="(Not Supported)City Postal Code Extension, e.g. ZIP+4+2 Code" REPTEXT="Extension" SCRTEXT_S="Extension" SCRTEXT_M="Postal Code Ext" SCRTEXT_L="Postl Code Extension" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="PCODE1_EXT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PCODE2_EXT" DDLANGUAGE="E" POSITION="0028" ROLLNAME="AD_PST2XT" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="(Not Supported) PO Box Postal Code Extension" REPTEXT="Extension" SCRTEXT_S="Extension" SCRTEXT_M="Postal Code Ext" SCRTEXT_L="Postl Code Extension" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="PCODE2_EXT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PCODE3_EXT" DDLANGUAGE="E" POSITION="0029" ROLLNAME="AD_PST3XT" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="(Not Supported) Major Customer Postal Code Extension" REPTEXT="Extension" SCRTEXT_S="Extension" SCRTEXT_M="Postal Code Ext" SCRTEXT_L="Postl Code Extension" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="PCODE3_EXT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_BOX" DDLANGUAGE="E" POSITION="0030" ROLLNAME="AD_POBX" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="PO Box" REPTEXT="PO Box" SCRTEXT_S="PO Box" SCRTEXT_M="PO Box" SCRTEXT_L="PO Box" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="PO_BOX" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_W_O_NO" DDLANGUAGE="E" POSITION="0031" ROLLNAME="AD_POBXNUM" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="XFELD" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="02" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Flag: PO Box Without Number" REPTEXT="PO" SCRTEXT_S="PO w/o no." SCRTEXT_M="PO Box w/o no." SCRTEXT_L="PO Box w/o No." DOMNAME3L="XFELD" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="PO_W_O_NO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_BOX_CIT" DDLANGUAGE="E" POSITION="0032" ROLLNAME="AD_POBXLOC" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="PO Box city" REPTEXT="PO Box City" SCRTEXT_S="PO Box cty" SCRTEXT_M="PO Box City" SCRTEXT_L="PO Box City" DOMNAME3L="TEXT40" SHLPORIGIN="D" SHLPNAME="CITY_NAME" SHLPFIELD="CITY_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="PO_BOX_CIT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_BOX_REG" DDLANGUAGE="E" POSITION="0033" ROLLNAME="AD_POBXREG" CHECKTABLE="T005S" ADMINFIELD="1" INTTYPE="C" INTLEN="000006" DOMNAME="REGIO" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="09" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" ENTITYTAB="T005S" MASK=" CHARE" MASKLEN="0000" DDTEXT="Region for PO Box (Country, State, Province, ...)" REPTEXT="PO Region" SCRTEXT_S="PO Region" SCRTEXT_M="PO Region" SCRTEXT_L="PO Box Region" DOMNAME3L="REGIO" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="PO_BOX_REG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="POBOX_CTRY" DDLANGUAGE="E" POSITION="0034" ROLLNAME="AD_POBXCTY" CHECKTABLE="T005" ADMINFIELD="1" INTTYPE="C" INTLEN="000006" DOMNAME="LAND1" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="07" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" ENTITYTAB="T005" MASK=" CHARE" MASKLEN="0000" DDTEXT="PO box country" REPTEXT="PO ctry" SCRTEXT_S="PObox ctry" SCRTEXT_M="PO box country" SCRTEXT_L="PO box country" DOMNAME3L="LAND1" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="POBOX_CTRY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_CTRYISO" DDLANGUAGE="E" POSITION="0035" ROLLNAME="INTCA" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="INTCA" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="25" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Country ISO code" REPTEXT="ISO code" SCRTEXT_S="ISO code" SCRTEXT_M="ISO code" SCRTEXT_L="ISO code" DOMNAME3L="INTCA" SHLPORIGIN="D" SHLPNAME="F4_INTCA" SHLPFIELD="INTCA" DEPTH="00" COMPTYPE="E" DEFFDNAME="COUNTRYISO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STREET" DDLANGUAGE="E" POSITION="0036" ROLLNAME="AD_STREET" ADMINFIELD="1" INTTYPE="C" INTLEN="000120" DOMNAME="TEXT60" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="60" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000060" OUTPUTLEN="000060" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Street" REPTEXT="Street" SCRTEXT_S="Street" SCRTEXT_M="Street" SCRTEXT_L="Street" DOMNAME3L="TEXT60" SHLPORIGIN="D" SHLPNAME="CLSTRTNAME" SHLPFIELD="STREET" DEPTH="00" COMPTYPE="E" DEFFDNAME="STREET" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STR_ABBR" DDLANGUAGE="E" POSITION="0037" ROLLNAME="AD_STRABBR" CHECKTABLE="ADRSTRTYPE" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="STRTYPEAB" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="03" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" ENTITYTAB="ADRSTRTYPE" MASK=" CHARE" MASKLEN="0000" DDTEXT="(Not Supported) Abbreviation of Street Name" REPTEXT="Abr" SCRTEXT_S="Str.Abbr." SCRTEXT_M="Street Abbrev." SCRTEXT_L="Street Abbreviation" DOMMASTER="D" DOMNAME3L="STRTYPEAB" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="STR_ABBR" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="HOUSE_NO" DDLANGUAGE="E" POSITION="0038" ROLLNAME="AD_HSNM1" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="House Number" REPTEXT="House No." SCRTEXT_S="House No." SCRTEXT_M="House Number" SCRTEXT_L="House Number" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" DEFFDNAME="HOUSE_NO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="HOUSE_NO2" DDLANGUAGE="E" POSITION="0039" ROLLNAME="AD_HSNM2" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="House number supplement" REPTEXT="Supplement" SCRTEXT_S="Supplement" SCRTEXT_M="Supplement" SCRTEXT_L="Supplement" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" DEFFDNAME="HOUSE_NO2" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="HOUSE_NO3" DDLANGUAGE="E" POSITION="0040" ROLLNAME="AD_HSNM3" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="(Not supported) House Number Range" REPTEXT="Range" SCRTEXT_S="Range" SCRTEXT_M="Number Range" SCRTEXT_L="House Number Range" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" DEFFDNAME="HOUSE_NO3" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STR_SUPPL1" DDLANGUAGE="E" POSITION="0041" ROLLNAME="AD_STRSPP1" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Street 2" REPTEXT="Street 2" SCRTEXT_S="Street 2" SCRTEXT_M="Street 2" SCRTEXT_L="Street 2" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="STR_SUPPL1" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STR_SUPPL2" DDLANGUAGE="E" POSITION="0042" ROLLNAME="AD_STRSPP2" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Street 3" REPTEXT="Street 3" SCRTEXT_S="Street 3" SCRTEXT_M="Street 3" SCRTEXT_L="Street 3" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="STR_SUPPL2" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STR_SUPPL3" DDLANGUAGE="E" POSITION="0043" ROLLNAME="AD_STRSPP3" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Street 4" REPTEXT="Street 4" SCRTEXT_S="Street 4" SCRTEXT_M="Street 4" SCRTEXT_L="Street 4" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="STR_SUPPL3" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LOCATION" DDLANGUAGE="E" POSITION="0044" ROLLNAME="AD_LCTN" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Street 5" REPTEXT="Street 5" SCRTEXT_S="Street 5" SCRTEXT_M="Street 5" SCRTEXT_L="Street 5" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="LOCATION" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="BUILDING" DDLANGUAGE="E" POSITION="0045" ROLLNAME="AD_BLDNG" ADMINFIELD="1" INTTYPE="C" INTLEN="000040" DOMNAME="TEXT20" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Building (Number or Code)" REPTEXT="Building" SCRTEXT_S="Building" SCRTEXT_M="Building Code" SCRTEXT_L="Building Code" DOMNAME3L="TEXT20" DEPTH="00" COMPTYPE="E" DEFFDNAME="BUILDING" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FLOOR" DDLANGUAGE="E" POSITION="0046" ROLLNAME="AD_FLOOR" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Floor in building" REPTEXT="Floor" SCRTEXT_S="Floor" SCRTEXT_M="Floor" SCRTEXT_L="Floor" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLOOR" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="ROOM_NO" DDLANGUAGE="E" POSITION="0047" ROLLNAME="AD_ROOMNUM" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="09" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Room or Appartment Number" REPTEXT="Room No." SCRTEXT_S="Room" SCRTEXT_M="Room Number" SCRTEXT_L="Room Number" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" DEFFDNAME="ROOM_NO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="COUNTRY" DDLANGUAGE="E" POSITION="0048" ROLLNAME="LAND1" CHECKTABLE="T005" ADMINFIELD="1" INTTYPE="C" INTLEN="000006" DOMNAME="LAND1" ROUTPUTLEN="000000" MEMORYID="LND" LOGFLAG="X" HEADLEN="03" SCRLEN1="10" SCRLEN2="12" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" ENTITYTAB="T005" MASK=" CHARE" MASKLEN="0000" DDTEXT="Country Key" REPTEXT="Ctr" SCRTEXT_S="Country" SCRTEXT_M="Country" SCRTEXT_L="Country Key" DOMNAME3L="LAND1" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="COUNTRY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="COUNTRYISO" DDLANGUAGE="E" POSITION="0049" ROLLNAME="INTCA" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="INTCA" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="25" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Country ISO code" REPTEXT="ISO code" SCRTEXT_S="ISO code" SCRTEXT_M="ISO code" SCRTEXT_L="ISO code" DOMNAME3L="INTCA" SHLPORIGIN="D" SHLPNAME="F4_INTCA" SHLPFIELD="INTCA" DEPTH="00" COMPTYPE="E" DEFFDNAME="COUNTRYISO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGION" DDLANGUAGE="E" POSITION="0050" ROLLNAME="REGIO" CHECKTABLE="T005S" ADMINFIELD="1" INTTYPE="C" INTLEN="000006" DOMNAME="REGIO" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="02" SCRLEN1="10" SCRLEN2="14" SCRLEN3="20" DTELMASTER="D" RESERVEDTE="D" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" ENTITYTAB="T005S" MASK=" CHARE" MASKLEN="0000" DDTEXT="Region (State, Province, County)" REPTEXT="Rg" SCRTEXT_S="Region" SCRTEXT_M="Region" SCRTEXT_L="Region" DOMNAME3L="REGIO" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="REGION" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TIME_ZONE" DDLANGUAGE="E" POSITION="0051" ROLLNAME="AD_TZONE" CHECKTABLE="TTZZ" ADMINFIELD="1" INTTYPE="C" INTLEN="000012" DOMNAME="TZNZONE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="08" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000006" OUTPUTLEN="000006" DECIMALS="000000" ENTITYTAB="TTZZ" MASK=" CHARE" MASKLEN="0000" DDTEXT="Address time zone" REPTEXT="Time zon" SCRTEXT_S="Time zone" SCRTEXT_M="Time zone" SCRTEXT_L="Time zone" DOMNAME3L="TZNZONE" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="TIME_ZONE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TAXJURCODE" DDLANGUAGE="E" POSITION="0052" ROLLNAME="AD_TXJCD" ADMINFIELD="1" INTTYPE="C" INTLEN="000030" DOMNAME="AD_TXJCD" ROUTPUTLEN="000000" MEMORYID="TXJ" LOGFLAG="X" HEADLEN="17" SCRLEN1="10" SCRLEN2="17" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000015" OUTPUTLEN="000015" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Tax Jurisdiction" REPTEXT="Tax Jurisdictn" SCRTEXT_S="Tax Juris." SCRTEXT_M="Tax Jurisdictn" SCRTEXT_L="Tax Jurisdiction" DOMNAME3L="AD_TXJCD" DEPTH="00" COMPTYPE="E" DEFFDNAME="TAXJURCODE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="HOME_CITY" DDLANGUAGE="E" POSITION="0053" ROLLNAME="AD_CITY3" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="City (different from postal city)" REPTEXT="City (Diff. from Postal City)" SCRTEXT_S="City" SCRTEXT_M="Different City" SCRTEXT_L="Different City" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="HOME_CITY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TRANSPZONE" DDLANGUAGE="E" POSITION="0054" ROLLNAME="LZONE" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="ZONE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" ENTITYTAB="TZONE" MASK=" CHARE" MASKLEN="0000" DDTEXT="Transportation zone to or from which the goods are delivered" REPTEXT="TranspZone" SCRTEXT_S="Zone" SCRTEXT_M="Transport.zone" SCRTEXT_L="Transportation zone" DOMNAME3L="ZONE" DEPTH="00" COMPTYPE="E" DEFFDNAME="TRANSPZONE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LANGU" DDLANGUAGE="E" POSITION="0055" ROLLNAME="SPRAS" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="SPRAS" ROUTPUTLEN="000000" MEMORYID="SPR" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="LANG" LENG="000001" OUTPUTLEN="000002" DECIMALS="000000" LOWERCASE="X" ENTITYTAB="T002" CONVEXIT="ISOLA" MASK=" LANGE" MASKLEN="0000" DDTEXT="Language Key" REPTEXT="Language" SCRTEXT_S="Language" SCRTEXT_M="Language" SCRTEXT_L="Language Key" DOMNAME3L="SPRAS" SHLPORIGIN="D" SHLPNAME="H_T002" SHLPFIELD="SPRAS" DEPTH="00" COMPTYPE="E" DEFFDNAME="LANGU" LANGUFLAG="X" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LANGUISO" DDLANGUAGE="E" POSITION="0056" ROLLNAME="LAISO" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="LAISO" ROUTPUTLEN="000000" HEADLEN="07" SCRLEN1="10" SCRLEN2="13" SCRLEN3="17" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Language according to ISO 639" REPTEXT="Lng ISO" SCRTEXT_S="Lang.(ISO)" SCRTEXT_M="Lang. (ISO)" SCRTEXT_L="Lang. (ISO 639)" DOMNAME3L="LAISO" DEPTH="00" COMPTYPE="E" DEFFDNAME="LANGU_ISO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="COMM_TYPE" DDLANGUAGE="E" POSITION="0057" ROLLNAME="AD_COMM" ADMINFIELD="1" INTTYPE="C" INTLEN="000006" DOMNAME="AD_COMM" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="17" SCRLEN1="10" SCRLEN2="17" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" ENTITYTAB="TSAC" MASK=" CHARE" MASKLEN="0000" DDTEXT="Communication Method (Key) (Business Address Services)" REPTEXT="Comm. Method" SCRTEXT_S="Comm. Meth" SCRTEXT_M="Comm. Method" SCRTEXT_L="Comm. Method" DOMNAME3L="AD_COMM" DEPTH="00" COMPTYPE="E" DEFFDNAME="COMM_TYPE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="EXTADDRESSNUMBER" DDLANGUAGE="E" POSITION="0058" ROLLNAME="BU_ADEXT" ADMINFIELD="1" INTTYPE="C" INTLEN="000040" DOMNAME="BU_ADEXT" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Address number in external system" REPTEXT="External Address No." SCRTEXT_S="Ext. no." SCRTEXT_M="External number" SCRTEXT_L="External Address No." DOMNAME3L="BU_ADEXT" DEPTH="00" COMPTYPE="E" DEFFDNAME="EXTERNALADDRESSNUMBER" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DONT_USE_P" DDLANGUAGE="E" POSITION="0059" ROLLNAME="AD_NO_USEP" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="AD_NO_USE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TSAD12" MASK=" CHARE" MASKLEN="0000" DDTEXT="PO Box Address Undeliverable Flag" REPTEXT="Undeliverable" SCRTEXT_S="Undeliver." SCRTEXT_M="Undeliverable" SCRTEXT_L="Undeliverable" DOMNAME3L="AD_NO_USE" DEPTH="00" COMPTYPE="E" DEFFDNAME="DONT_USE_P" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DONT_USE_S" DDLANGUAGE="E" POSITION="0060" ROLLNAME="AD_NO_USES" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="AD_NO_USE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TSAD12" MASK=" CHARE" MASKLEN="0000" DDTEXT="Street Address Undeliverable Flag" REPTEXT="Undeliverable" SCRTEXT_S="Undeliver." SCRTEXT_M="Undeliverable" SCRTEXT_L="Undeliverable" DOMNAME3L="AD_NO_USE" DEPTH="00" COMPTYPE="E" DEFFDNAME="DONT_USE_S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="MOVE_DATE" DDLANGUAGE="E" POSITION="0061" ROLLNAME="BU_MOVEDAT" ADMINFIELD="1" INTTYPE="D" INTLEN="000016" DOMNAME="DATUM" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="DATS" LENG="000008" OUTPUTLEN="000010" DECIMALS="000000" MASK=" DATSE" MASKLEN="0000" DDTEXT="Date of Move" REPTEXT="Move On" SCRTEXT_S="Move On" SCRTEXT_M="Move On" SCRTEXT_L="Move On" DOMNAME3L="DATUM" SHLPORIGIN="T" DEPTH="00" COMPTYPE="E" DEFFDNAME="MOVEDATE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="MOVE_ADDRESS" DDLANGUAGE="E" POSITION="0062" ROLLNAME="BU_MOVE_ADDR" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="AD_ADDRNUM" ROUTPUTLEN="000000" MEMORYID="ADR" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" ENTITYTAB="ADRC" CONVEXIT="ALPHA" MASK=" CHARE" MASKLEN="0000" DDTEXT="Number of Move Target Address for Address Moves" REPTEXT="MoveTarget" SCRTEXT_S="MoveTarget" SCRTEXT_M="Move Target" SCRTEXT_L="Move Target Address" DOMNAME3L="AD_ADDRNUM" DEPTH="00" COMPTYPE="E" DEFFDNAME="ADDR_NO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="VALIDFROMDATE" DDLANGUAGE="E" POSITION="0063" ROLLNAME="BU_DATFROM" ADMINFIELD="1" INTTYPE="D" INTLEN="000016" DOMNAME="DATUM" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="DATS" LENG="000008" OUTPUTLEN="000010" DECIMALS="000000" MASK=" DATSE" MASKLEN="0000" DDTEXT="Validity Date (Valid From)" REPTEXT="Valid From" SCRTEXT_S="Valid From" SCRTEXT_M="Valid From" SCRTEXT_L="Valid From" DOMNAME3L="DATUM" SHLPORIGIN="T" DEPTH="00" COMPTYPE="E" DEFFDNAME="VALIDFROMDATE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="VALIDTODATE" DDLANGUAGE="E" POSITION="0064" ROLLNAME="BU_DATTO" ADMINFIELD="1" INTTYPE="D" INTLEN="000016" DOMNAME="DATUM" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="DATS" LENG="000008" OUTPUTLEN="000010" DECIMALS="000000" MASK=" DATSE" MASKLEN="0000" DDTEXT="Validity Date (Valid To)" REPTEXT="Valid To" SCRTEXT_S="Valid To" SCRTEXT_M="Valid To" SCRTEXT_L="Valid To" DOMNAME3L="DATUM" SHLPORIGIN="T" DEPTH="00" COMPTYPE="E" DEFFDNAME="VALIDUNTILDATE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="MOVE_ADDR_GUID" DDLANGUAGE="E" POSITION="0065" ROLLNAME="SYSUUID_C" ADMINFIELD="1" INTTYPE="C" INTLEN="000064" DOMNAME="SYSUUID_C" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DTELMASTER="D" DATATYPE="CHAR" LENG="000032" OUTPUTLEN="000032" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="UUID in character form" SCRTEXT_S="UUID" DOMNAME3L="SYSUUID_C" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CITY_NO" DDLANGUAGE="E" POSITION="0066" ROLLNAME="AD_CITYNUM" ADMINFIELD="1" INTTYPE="C" INTLEN="000024" DOMNAME="CITY_CODE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="12" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000012" OUTPUTLEN="000012" DECIMALS="000000" ENTITYTAB="ADRCITY" CONVEXIT="ALPHA" MASK=" CHARE" MASKLEN="0000" DDTEXT="City code for city/street file" REPTEXT="City Code" SCRTEXT_S="City Code" SCRTEXT_M="City Code" SCRTEXT_L="City Code" DOMMASTER="D" DOMNAME3L="CITY_CODE" DEPTH="00" COMPTYPE="E" DEFFDNAME="CITY_NO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DISTRCT_NO" DDLANGUAGE="E" POSITION="0067" ROLLNAME="AD_CITYPNM" ADMINFIELD="1" INTTYPE="C" INTLEN="000016" DOMNAME="CITYP_CODE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="08" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" ENTITYTAB="ADRCITYPRT" CONVEXIT="ALPHA" MASK=" CHARE" MASKLEN="0000" DDTEXT="District code for City and Street file" REPTEXT="District" SCRTEXT_S="District" SCRTEXT_M="District" SCRTEXT_L="District" DOMMASTER="D" DOMNAME3L="CITYP_CODE" DEPTH="00" COMPTYPE="E" DEFFDNAME="DISTRCT_NO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CHCKSTATUS" DDLANGUAGE="E" POSITION="0068" ROLLNAME="AD_CHECKST" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="AD_CHECKST" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="06" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="City file test status" REPTEXT="Status" SCRTEXT_S="Chck Stat." SCRTEXT_M="Check Status" SCRTEXT_L="Test stat./City file" DOMNAME3L="AD_CHECKST" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="CHCKSTATUS" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PBOXCIT_NO" DDLANGUAGE="E" POSITION="0069" ROLLNAME="AD_CIT2NUM" ADMINFIELD="1" INTTYPE="C" INTLEN="000024" DOMNAME="CITY_CODE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="12" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000012" OUTPUTLEN="000012" DECIMALS="000000" ENTITYTAB="ADRCITY" CONVEXIT="ALPHA" MASK=" CHARE" MASKLEN="0000" DDTEXT="City PO box code (City file)" REPTEXT="City Code" SCRTEXT_S="City Code" SCRTEXT_M="City Code" SCRTEXT_L="City Code" DOMMASTER="D" DOMNAME3L="CITY_CODE" DEPTH="00" COMPTYPE="E" DEFFDNAME="PBOXCIT_NO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STREET_NO" DDLANGUAGE="E" POSITION="0070" ROLLNAME="AD_STRNUM" ADMINFIELD="1" INTTYPE="C" INTLEN="000024" DOMNAME="STRT_CODE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="15" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000012" OUTPUTLEN="000012" DECIMALS="000000" ENTITYTAB="ADRSTREET" CONVEXIT="ALPHA" MASK=" CHARE" MASKLEN="0000" DDTEXT="Street Number for City/Street File" REPTEXT="Street Code" SCRTEXT_S="Street Cd." SCRTEXT_M="Street Code" SCRTEXT_L="Street Code" DOMMASTER="D" DOMNAME3L="STRT_CODE" DEPTH="00" COMPTYPE="E" DEFFDNAME="STREET_NO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="HOMECITYNO" DDLANGUAGE="E" POSITION="0071" ROLLNAME="AD_CITYHNM" ADMINFIELD="1" INTTYPE="C" INTLEN="000024" DOMNAME="CITY_CODE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="12" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000012" OUTPUTLEN="000012" DECIMALS="000000" ENTITYTAB="ADRCITY" CONVEXIT="ALPHA" MASK=" CHARE" MASKLEN="0000" DDTEXT="Different city for city/street file" REPTEXT="City Code" SCRTEXT_S="City Code" SCRTEXT_M="City Code" SCRTEXT_L="City Code" DOMMASTER="D" DOMNAME3L="CITY_CODE" DEPTH="00" COMPTYPE="E" DEFFDNAME="HOMECITYNO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_BOX_LOBBY" DDLANGUAGE="E" POSITION="0072" ROLLNAME="AD_PO_BOX_LBY" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="PO Box Lobby" REPTEXT="PO Box Lobby" SCRTEXT_S="Lobby" SCRTEXT_M="PO Box Lobby" SCRTEXT_L="PO Box Lobby" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="AD_PO_BOX_LBY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DELI_SERV_TYPE" DDLANGUAGE="E" POSITION="0073" ROLLNAME="AD_DELIVERY_SERVICE_TYPE" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="AD_DELIVERY_SERVICE_TYPE" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="30" SCRLEN1="10" SCRLEN2="20" SCRLEN3="30" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Type of Delivery Service" REPTEXT="Delvry Serv Type" SCRTEXT_S="Deliv Type" SCRTEXT_M="Delvry Serv Type" SCRTEXT_L="Type of Delivry Service" DOMNAME3L="AD_DELIVERY_SERVICE_TYPE" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DELI_SERV_NUMBER" DDLANGUAGE="E" POSITION="0074" ROLLNAME="AD_DELIVERY_SERVICE_NUMBER" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="30" SCRLEN1="10" SCRLEN2="20" SCRLEN3="35" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Number of Delivery Service" REPTEXT="Delivery Service Number" SCRTEXT_S="Delivry No" SCRTEXT_M="Delivery Service No." SCRTEXT_L="Number of Delivery Service" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME=".INCLUDE" DDLANGUAGE="E" POSITION="0075" ADMINFIELD="0" INTLEN="000000" PRECFIELD="BAPIBUS1006_CENTRAL_PERSON" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" S" MASKLEN="0000" DDTEXT="SAP BP: BAPI Structure for Personal Data" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FIRSTNAME" DDLANGUAGE="E" POSITION="0076" ROLLNAME="BU_NAMEP_F" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="35" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="First name of business partner (person)" REPTEXT="First name" SCRTEXT_S="First name" SCRTEXT_M="First name" SCRTEXT_L="First name" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="FIRSTNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LASTNAME" DDLANGUAGE="E" POSITION="0077" ROLLNAME="BU_NAMEP_L" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="35" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Last name of business partner (person)" REPTEXT="Last name" SCRTEXT_S="Last name" SCRTEXT_M="Last name" SCRTEXT_L="Last name" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="LASTNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="BIRTHNAME" DDLANGUAGE="E" POSITION="0078" ROLLNAME="BU_BIRTHNM" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name at birth of business partner" REPTEXT="Name at Birth" SCRTEXT_S="Birth Name" SCRTEXT_M="Name at Birth" SCRTEXT_L="Name at Birth" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="BIRTHNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="MIDDLENAME" DDLANGUAGE="E" POSITION="0079" ROLLNAME="BU_NAMEMID" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Middle name or second forename of a person" REPTEXT="Middle or second name" SCRTEXT_S="2.FirstNme" SCRTEXT_M="Middle Name" SCRTEXT_L="Middle Name" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="MIDDLENAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="SECONDNAME" DDLANGUAGE="E" POSITION="0080" ROLLNAME="BU_NAMEPL2" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Other Last Name of a Person" REPTEXT="Other Last Name" SCRTEXT_S="2.LastName" SCRTEXT_M="Other Last Name" SCRTEXT_L="Other Last Name" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="SECONDNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_ACA1" DDLANGUAGE="E" POSITION="0081" ROLLNAME="AD_TITLE1" CHECKTABLE="TSAD2" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="AD_TITLE1" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TSAD2" MASK=" CHARE" MASKLEN="0000" DDTEXT="Academic Title: Key" REPTEXT="Academic Title 1" SCRTEXT_S="Acad.Title" SCRTEXT_M="Academic Title" SCRTEXT_L="Academic Title 1" DOMNAME3L="AD_TITLE1" SHLPORIGIN="P" SHLPNAME="AD_TITLE1" SHLPFIELD="TITLE_KEY" DEPTH="00" COMPTYPE="E" DEFFDNAME="TITLE_ACA1" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_ACA2" DDLANGUAGE="E" POSITION="0082" ROLLNAME="AD_TITLE2" CHECKTABLE="TSAD2" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="AD_TITLE1" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TSAD2" MASK=" CHARE" MASKLEN="0000" DDTEXT="Second academic title (key)" REPTEXT="2nd key" SCRTEXT_S="2nd title" SCRTEXT_M="2nd acad. title" SCRTEXT_L="2nd academic title" DOMNAME3L="AD_TITLE1" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="TITLE_ACA2" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_SPPL" DDLANGUAGE="E" POSITION="0083" ROLLNAME="AD_TITLES" CHECKTABLE="TSAD5" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="AD_TITLES" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="09" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TSAD5" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name supplement, e.g. noble title (key)" REPTEXT="Key" SCRTEXT_S="Supplement" SCRTEXT_M="Name Supplement" SCRTEXT_L="Name Supplement" DOMMASTER="D" DOMNAME3L="AD_TITLES" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="TITLE_SPPL" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PREFIX1" DDLANGUAGE="E" POSITION="0084" ROLLNAME="AD_PREFIX" CHECKTABLE="TSAD4" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="AD_PREFIX" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="09" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TSAD4" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name Prefix (Key)" REPTEXT="Key" SCRTEXT_S="Prefix" SCRTEXT_M="Prefix" SCRTEXT_L="Key" DOMNAME3L="AD_PREFIX" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="PREFIX1" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PREFIX2" DDLANGUAGE="E" POSITION="0085" ROLLNAME="AD_PREFIX2" CHECKTABLE="TSAD4" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="AD_PREFIX" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="22" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TSAD4" MASK=" CHARE" MASKLEN="0000" DDTEXT="2nd name prefix (key)" REPTEXT="2nd key" SCRTEXT_S="2nd prefix" SCRTEXT_M="2nd prefix" SCRTEXT_L="2nd name prefix" DOMNAME3L="AD_PREFIX" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="PREFIX2" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NICKNAME" DDLANGUAGE="E" POSITION="0086" ROLLNAME="BU_NICKNAM" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="BU_NAME" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Nickname of Business Partner (Person)" REPTEXT="Known As" SCRTEXT_S="Known As" SCRTEXT_M="Known As" SCRTEXT_L="Known As" DOMMASTER="D" DOMNAME3L="BU_NAME" DEPTH="00" COMPTYPE="E" DEFFDNAME="NICKNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="INITIALS" DDLANGUAGE="E" POSITION="0087" ROLLNAME="AD_INITS" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT='&quot;Middle Initial&quot; or personal initials' REPTEXT="Initials" SCRTEXT_S="Initials" SCRTEXT_M="Initials" SCRTEXT_L="Initials" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="INITIALS" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMEFORMAT" DDLANGUAGE="E" POSITION="0088" ROLLNAME="AD_FORMAT" CHECKTABLE="T005N" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="AD_NAMFORM" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="06" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" ENTITYTAB="T005N" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name format" REPTEXT="Format" SCRTEXT_S="Format" SCRTEXT_M="Format name" SCRTEXT_L="Format name" DOMNAME3L="AD_NAMFORM" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="NAMEFORMAT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMCOUNTRY" DDLANGUAGE="E" POSITION="0089" ROLLNAME="AD_NAMCTRY" CHECKTABLE="T005" ADMINFIELD="1" INTTYPE="C" INTLEN="000006" DOMNAME="LAND1" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="04" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" ENTITYTAB="T005" MASK=" CHARE" MASKLEN="0000" DDTEXT="Country for name format rule" REPTEXT="Ctry" SCRTEXT_S="Country" SCRTEXT_M="Format country" SCRTEXT_L="Country for format" DOMNAME3L="LAND1" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="NAMCOUNTRY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMCOUNTRYISO" DDLANGUAGE="E" POSITION="0090" ROLLNAME="INTCA" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="INTCA" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="25" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Country ISO code" REPTEXT="ISO code" SCRTEXT_S="ISO code" SCRTEXT_M="ISO code" SCRTEXT_L="ISO code" DOMNAME3L="INTCA" SHLPORIGIN="D" SHLPNAME="F4_INTCA" SHLPFIELD="INTCA" DEPTH="00" COMPTYPE="E" DEFFDNAME="COUNTRYISO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="SEX" DDLANGUAGE="E" POSITION="0091" ROLLNAME="BU_SEXID" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="BU_SEXID" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Sex of business partner (person)" SCRTEXT_S="Sex" SCRTEXT_M="Sex" SCRTEXT_L="Sex" DOMMASTER="D" DOMNAME3L="BU_SEXID" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="BIRTHPLACE" DDLANGUAGE="E" POSITION="0092" ROLLNAME="BU_BIRTHPL" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Birthplace of business partner" REPTEXT="Birthplace" SCRTEXT_S="Birthplace" SCRTEXT_M="Birthplace" SCRTEXT_L="Birthplace" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="BIRTHPLACE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="BIRTHDATE" DDLANGUAGE="E" POSITION="0093" ROLLNAME="BU_BIRTHDT" ADMINFIELD="1" INTTYPE="D" INTLEN="000016" DOMNAME="DATUM" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="DATS" LENG="000008" OUTPUTLEN="000010" DECIMALS="000000" MASK=" DATSE" MASKLEN="0000" DDTEXT="Date of Birth of Business Partner" REPTEXT="Birth Date" SCRTEXT_S="Birth Date" SCRTEXT_M="Date of Birth" SCRTEXT_L="Date of Birth" DOMNAME3L="DATUM" SHLPORIGIN="T" DEPTH="00" COMPTYPE="E" DEFFDNAME="BIRTHDATE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DEATHDATE" DDLANGUAGE="E" POSITION="0094" ROLLNAME="BU_DEATHDT" ADMINFIELD="1" INTTYPE="D" INTLEN="000016" DOMNAME="DATUM" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="DATS" LENG="000008" OUTPUTLEN="000010" DECIMALS="000000" MASK=" DATSE" MASKLEN="0000" DDTEXT="Date of death of business partner" REPTEXT="Death date" SCRTEXT_S="Death date" SCRTEXT_M="Death date" SCRTEXT_L="Death date" DOMNAME3L="DATUM" SHLPORIGIN="T" DEPTH="00" COMPTYPE="E" DEFFDNAME="DEATHDATE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="MARITALSTATUS" DDLANGUAGE="E" POSITION="0095" ROLLNAME="BU_MARST" CHECKTABLE="TB027" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="BU_MARST" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" ENTITYTAB="TB027" MASK=" CHARE" MASKLEN="0000" DDTEXT="Marital Status of Business Partner" REPTEXT="Marital Stat." SCRTEXT_S="MaritStat" SCRTEXT_M="Marital Status" SCRTEXT_L="Marital Status" DOMNAME3L="BU_MARST" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="MARITALSTATUS" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CORRESPONDLANGUAGE" DDLANGUAGE="E" POSITION="0096" ROLLNAME="BU_LANGU_CORR" CHECKTABLE="T002" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="SPRAS" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="02" SCRLEN1="10" SCRLEN2="20" SCRLEN3="20" DTELMASTER="D" DATATYPE="LANG" LENG="000001" OUTPUTLEN="000002" DECIMALS="000000" LOWERCASE="X" ENTITYTAB="T002" CONVEXIT="ISOLA" MASK=" LANGE" MASKLEN="0000" DDTEXT="Business Partner: Correspondence Language" REPTEXT="LG" SCRTEXT_S="Language" SCRTEXT_M="Correspondence lang." SCRTEXT_L="Correspondence lang." DOMNAME3L="SPRAS" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="CORRESPONDLANGUAGE" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CORRESPONDLANGUAGEISO" DDLANGUAGE="E" POSITION="0097" ROLLNAME="LAISO" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="LAISO" ROUTPUTLEN="000000" HEADLEN="07" SCRLEN1="10" SCRLEN2="13" SCRLEN3="17" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Language according to ISO 639" REPTEXT="Lng ISO" SCRTEXT_S="Lang.(ISO)" SCRTEXT_M="Lang. (ISO)" SCRTEXT_L="Lang. (ISO 639)" DOMNAME3L="LAISO" DEPTH="00" COMPTYPE="E" DEFFDNAME="LANGU_ISO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FULLNAME" DDLANGUAGE="E" POSITION="0098" ROLLNAME="BU_NAME1TX" ADMINFIELD="1" INTTYPE="C" INTLEN="000160" DOMNAME="TEXT80" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="80" SCRLEN1="10" SCRLEN2="20" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000080" OUTPUTLEN="000080" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Full Name" REPTEXT="Full Name" SCRTEXT_S="Long Name" SCRTEXT_M="Full Name" SCRTEXT_L="Full Name" DOMNAME3L="TEXT80" DEPTH="00" COMPTYPE="E" DEFFDNAME="FULLNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="EMPLOYER" DDLANGUAGE="E" POSITION="0099" ROLLNAME="BU_EMPLO" ADMINFIELD="1" INTTYPE="C" INTLEN="000070" DOMNAME="BU_EMPLO" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="35" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000035" OUTPUTLEN="000035" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Name of Employer of a Natural Person" REPTEXT="Employer" SCRTEXT_S="Employer" SCRTEXT_M="Employer" SCRTEXT_L="Employer" DOMNAME3L="BU_EMPLO" DEPTH="00" COMPTYPE="E" DEFFDNAME="EMPLOYER" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="OCCUPATION" DDLANGUAGE="E" POSITION="0100" ROLLNAME="BU_JOBGR" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="BU_JOBGR" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="12" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TB028" MASK=" CHARE" MASKLEN="0000" DDTEXT="Occupation/group" REPTEXT="Occupation" SCRTEXT_S="Occupation" SCRTEXT_M="Occupation" SCRTEXT_L="Occupation" DOMNAME3L="BU_JOBGR" DEPTH="00" COMPTYPE="E" DEFFDNAME="OCCUPATION" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NATIONALITY" DDLANGUAGE="E" POSITION="0101" ROLLNAME="BU_NATIO" ADMINFIELD="1" INTTYPE="C" INTLEN="000006" DOMNAME="LAND1" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="03" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" ENTITYTAB="T005" MASK=" CHARE" MASKLEN="0000" DDTEXT="Nationality" REPTEXT="Nat" SCRTEXT_S="National." SCRTEXT_M="Nationality" SCRTEXT_L="Nationality" DOMNAME3L="LAND1" DEPTH="00" COMPTYPE="E" DEFFDNAME="NATIONALITY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NATIONALITYISO" DDLANGUAGE="E" POSITION="0102" ROLLNAME="INTCA" ADMINFIELD="1" INTTYPE="C" INTLEN="000004" DOMNAME="INTCA" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="25" DTELMASTER="D" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Country ISO code" REPTEXT="ISO code" SCRTEXT_S="ISO code" SCRTEXT_M="ISO code" SCRTEXT_L="ISO code" DOMNAME3L="INTCA" SHLPORIGIN="D" SHLPNAME="F4_INTCA" SHLPFIELD="INTCA" DEPTH="00" COMPTYPE="E" DEFFDNAME="COUNTRYISO" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="COUNTRYORIGIN" DDLANGUAGE="E" POSITION="0103" ROLLNAME="BU_CNDSC" ADMINFIELD="1" INTTYPE="C" INTLEN="000006" DOMNAME="LAND1" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" ENTITYTAB="T005" MASK=" CHARE" MASKLEN="0000" DDTEXT="Ctry of Origin: Non-Res. Companies" SCRTEXT_S="Ctry Orig." SCRTEXT_M="Country of Orig" SCRTEXT_L="Country of Origin" DOMNAME3L="LAND1" DEPTH="00" COMPTYPE="E" DEFFDNAME="COUNTRYORIGIN" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME=".INCLUDE" DDLANGUAGE="E" POSITION="0104" ADMINFIELD="0" INTLEN="000000" PRECFIELD="BAPIBUS1006002_CENTRAL" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" S" MASKLEN="0000" DDTEXT="SAP BP, CP Rel.: BAPI Structure for Central Data" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FUNCTIONNAME" DDLANGUAGE="E" POSITION="0105" ROLLNAME="BU_FNCTN" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Function name of partner" REPTEXT="Function name" SCRTEXT_S="Function" SCRTEXT_M="Function" SCRTEXT_L="Function name" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="FUNCTION" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FUNCTION" DDLANGUAGE="E" POSITION="0106" ROLLNAME="BU_PAFKT" CHECKTABLE="TB912" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="BU_PAFKT" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="05" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TB912" MASK=" CHARE" MASKLEN="0000" DDTEXT="Function of partner" REPTEXT="Fct" SCRTEXT_S="Function" SCRTEXT_M="Function" SCRTEXT_L="Function" DOMNAME3L="BU_PAFKT" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="FUNCTION" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DEPARTMENTNAME" DDLANGUAGE="E" POSITION="0107" ROLLNAME="BU_DPRTMNT" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Department at business partner" REPTEXT="Company department" SCRTEXT_S="Comp.dept." SCRTEXT_M="Company dept." SCRTEXT_L="Company department" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="DEPARTMENTNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DEPARTMENT" DDLANGUAGE="E" POSITION="0108" ROLLNAME="BU_ABTNR" CHECKTABLE="TB910" ADMINFIELD="1" INTTYPE="C" INTLEN="000008" DOMNAME="BU_ABTNR" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="04" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" ENTITYTAB="TB910" MASK=" CHARE" MASKLEN="0000" DDTEXT="Department" REPTEXT="Dept" SCRTEXT_S="Department" SCRTEXT_M="Department" SCRTEXT_L="Department" DOMNAME3L="BU_ABTNR" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="DEPARTMENT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="AUTHORITY" DDLANGUAGE="E" POSITION="0109" ROLLNAME="BU_PAAUTH" CHECKTABLE="TB914" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="BU_PAAUTH" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" ENTITYTAB="TB914" MASK=" CHARE" MASKLEN="0000" DDTEXT="Partner&apos;s Authority" REPTEXT="Authority" SCRTEXT_S="Authority" SCRTEXT_M="Authority" SCRTEXT_L="Authority" DOMNAME3L="BU_PAAUTH" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="AUTHORITY" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="VIP" DDLANGUAGE="E" POSITION="0110" ROLLNAME="BU_PAVIP" CHECKTABLE="TB916" ADMINFIELD="1" INTTYPE="C" INTLEN="000002" DOMNAME="BU_PAVIP" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="04" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" ENTITYTAB="TB916" MASK=" CHARE" MASKLEN="0000" DDTEXT="VIP Partner" REPTEXT="VIP" SCRTEXT_S="VIP" SCRTEXT_M="VIP" SCRTEXT_L="VIP" DOMNAME3L="BU_PAVIP" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="VIP" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="COMMENTS" DDLANGUAGE="E" POSITION="0111" ROLLNAME="BU_PAREM" ADMINFIELD="1" INTTYPE="C" INTLEN="000080" DOMNAME="TEXT40" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="40" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Notes for Partner" REPTEXT="Note" SCRTEXT_S="Note" SCRTEXT_M="Note" SCRTEXT_L="Note" DOMNAME3L="TEXT40" DEPTH="00" COMPTYPE="E" DEFFDNAME="COMMENTS" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TEL1_NUMBR" DDLANGUAGE="E" POSITION="0112" ROLLNAME="AD_TLNMBR1" ADMINFIELD="1" INTTYPE="C" INTLEN="000060" DOMNAME="CHAR30" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="First telephone no.: dialling code+number" REPTEXT="Telephone" SCRTEXT_S="Telephone" SCRTEXT_M="Telephone" SCRTEXT_L="Telephone" DOMNAME3L="CHAR30" DEPTH="00" COMPTYPE="E" DEFFDNAME="TEL1_NUMBR" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TEL1_EXT" DDLANGUAGE="E" POSITION="0113" ROLLNAME="AD_TLXTNS1" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="12" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="First Telephone No.: Extension" REPTEXT="Extension" SCRTEXT_S="Extension" SCRTEXT_M="Extension" SCRTEXT_L="Extension" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="TEL1_EXT" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FAX_NUMBER" DDLANGUAGE="E" POSITION="0114" ROLLNAME="AD_FXNMBR1" ADMINFIELD="1" INTTYPE="C" INTLEN="000060" DOMNAME="CHAR30" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="First fax no.: dialling code+number" REPTEXT="Fax" SCRTEXT_S="Fax" SCRTEXT_M="Fax" SCRTEXT_L="Fax" DOMNAME3L="CHAR30" DEPTH="00" COMPTYPE="E" DEFFDNAME="FAX_NUMBER" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FAX_EXTENS" DDLANGUAGE="E" POSITION="0115" ROLLNAME="AD_FXXTNS1" ADMINFIELD="1" INTTYPE="C" INTLEN="000020" DOMNAME="CHAR10" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="12" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="First fax no.: extension" REPTEXT="Extension" SCRTEXT_S="Extension" SCRTEXT_M="Extension" SCRTEXT_L="Extension" DOMNAME3L="CHAR10" DEPTH="00" COMPTYPE="E" DEFFDNAME="FAX_EXTENS" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="E_MAIL" DDLANGUAGE="E" POSITION="0116" ROLLNAME="AD_SMTPADR" ADMINFIELD="1" INTTYPE="C" INTLEN="000482" DOMNAME="AD_SMTPADR" ROUTPUTLEN="000000" LOGFLAG="X" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000241" OUTPUTLEN="000241" DECIMALS="000000" LOWERCASE="X" CONVEXIT="SXIDN" MASK=" CHARE" MASKLEN="0000" DDTEXT="E-Mail Address" REPTEXT="E-Mail Address" SCRTEXT_S="E-Mail" SCRTEXT_M="E-Mail Address" SCRTEXT_L="E-Mail Address" DOMMASTER="D" DOMNAME3L="AD_SMTPADR" DEPTH="00" COMPTYPE="E" DEFFDNAME="E_MAIL" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="AUTHORITY" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TB914" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="AUTHORITY" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="AUTHORITY" CHECKTABLE="TB914" CHECKFIELD="PAAUTH" PRIMPOS="0002" DOMNAME="BU_PAAUTH" DATATYPE="CHAR" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CORRESPONDLANGUAGE" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="CORRESPONDLANGUAGE" CHECKTABLE="T002" CHECKFIELD="SPRAS" PRIMPOS="0001" DOMNAME="SPRAS" DATATYPE="LANG" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="COUNTRY" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="T005" CHECKFIELD="MANDT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="COUNTRY" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="COUNTRY" CHECKTABLE="T005" CHECKFIELD="LAND1" PRIMPOS="0002" DOMNAME="LAND1" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DEPARTMENT" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TB910" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DEPARTMENT" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="DEPARTMENT" CHECKTABLE="TB910" CHECKFIELD="ABTNR" PRIMPOS="0002" DOMNAME="BU_ABTNR" DATATYPE="CHAR" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FUNCTION" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TB912" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FUNCTION" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="FUNCTION" CHECKTABLE="TB912" CHECKFIELD="PAFKT" PRIMPOS="0002" DOMNAME="BU_PAFKT" DATATYPE="CHAR" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="INDUSTRYSECTOR" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TB023" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="INDUSTRYSECTOR" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="INDUSTRYSECTOR" CHECKTABLE="TB023" CHECKFIELD="IND_SECTOR" PRIMPOS="0002" DOMNAME="BU_INDSECT" DATATYPE="CHAR" LENG="000010"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LEGALFORM" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TB019" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LEGALFORM" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="LEGALFORM" CHECKTABLE="TB019" CHECKFIELD="LEGAL_ENTY" PRIMPOS="0002" DOMNAME="BU_LEGENTY" DATATYPE="CHAR" LENG="000002"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="MARITALSTATUS" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TB027" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="MARITALSTATUS" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="MARITALSTATUS" CHECKTABLE="TB027" CHECKFIELD="MARST" PRIMPOS="0002" DOMNAME="BU_MARST" DATATYPE="CHAR" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMCOUNTRY" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="T005" CHECKFIELD="MANDT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMCOUNTRY" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="NAMCOUNTRY" CHECKTABLE="T005" CHECKFIELD="LAND1" PRIMPOS="0002" DOMNAME="LAND1" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMEFORMAT" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="T005N" CHECKFIELD="MANDT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMEFORMAT" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="NAMCOUNTRY" CHECKTABLE="T005N" CHECKFIELD="LAND1" PRIMPOS="0002" DOMNAME="LAND1" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMEFORMAT" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="NAMEFORMAT" CHECKTABLE="T005N" CHECKFIELD="NAMEFORMAT" PRIMPOS="0003" DOMNAME="AD_NAMFORM" DATATYPE="CHAR" LENG="000002"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="POBOX_CTRY" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="T005" CHECKFIELD="MANDT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="POBOX_CTRY" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="POBOX_CTRY" CHECKTABLE="T005" CHECKFIELD="LAND1" PRIMPOS="0002" DOMNAME="LAND1" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_BOX_REG" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="T005S" CHECKFIELD="MANDT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_BOX_REG" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="POBOX_CTRY" CHECKTABLE="T005S" CHECKFIELD="LAND1" PRIMPOS="0002" DOMNAME="LAND1" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_BOX_REG" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="PO_BOX_REG" CHECKTABLE="T005S" CHECKFIELD="BLAND" PRIMPOS="0003" DOMNAME="REGIO" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PREFIX1" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TSAD4" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PREFIX1" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="PREFIX1" CHECKTABLE="TSAD4" CHECKFIELD="PREFIX_KEY" PRIMPOS="0002" DOMNAME="AD_PREFIX" DATATYPE="CHAR" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PREFIX2" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TSAD4" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PREFIX2" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="PREFIX2" CHECKTABLE="TSAD4" CHECKFIELD="PREFIX_KEY" PRIMPOS="0002" DOMNAME="AD_PREFIX" DATATYPE="CHAR" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGIOGROUP" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="ADRREGGRP" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGIOGROUP" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="REGIOGROUP" CHECKTABLE="ADRREGGRP" CHECKFIELD="REGIOGROUP" PRIMPOS="0002" DOMNAME="REGIOGROUP" DATATYPE="CHAR" LENG="000008"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGION" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="T005S" CHECKFIELD="MANDT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGION" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="COUNTRY" CHECKTABLE="T005S" CHECKFIELD="LAND1" PRIMPOS="0002" DOMNAME="LAND1" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGION" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="REGION" CHECKTABLE="T005S" CHECKFIELD="BLAND" PRIMPOS="0003" DOMNAME="REGIO" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STR_ABBR" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="ADRSTRTYPE" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STR_ABBR" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="POBOX_CTRY" CHECKTABLE="ADRSTRTYPE" CHECKFIELD="COUNTRY" PRIMPOS="0002" DOMNAME="LAND1" DATATYPE="CHAR" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STR_ABBR" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="STR_ABBR" CHECKTABLE="ADRSTRTYPE" CHECKFIELD="STRTYPEAB" PRIMPOS="0003" DOMNAME="STRTYPEAB" DATATYPE="CHAR" LENG="000002"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TIME_ZONE" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TTZZ" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TIME_ZONE" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="TIME_ZONE" CHECKTABLE="TTZZ" CHECKFIELD="TZONE" PRIMPOS="0002" DOMNAME="TZNZONE" DATATYPE="CHAR" LENG="000006"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_ACA1" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TSAD2" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_ACA1" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="TITLE_ACA1" CHECKTABLE="TSAD2" CHECKFIELD="TITLE_KEY" PRIMPOS="0002" DOMNAME="AD_TITLE1" DATATYPE="CHAR" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_ACA2" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TSAD2" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_ACA2" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="TITLE_ACA2" CHECKTABLE="TSAD2" CHECKFIELD="TITLE_KEY" PRIMPOS="0002" DOMNAME="AD_TITLE1" DATATYPE="CHAR" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_SPPL" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TSAD5" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_SPPL" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="TITLE_SPPL" CHECKTABLE="TSAD5" CHECKFIELD="TITLE_KEY" PRIMPOS="0002" DOMNAME="AD_TITLES" DATATYPE="CHAR" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="VIP" FORTABLE="SYST" FORKEY="MANDT" CHECKTABLE="TB916" CHECKFIELD="CLIENT" PRIMPOS="0001" DOMNAME="MANDT" DATATYPE="CLNT" LENG="000003"/>
<dd05m TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="VIP" FORTABLE="ZEXCEL_S_ORG_REL" FORKEY="VIP" CHECKTABLE="TB916" CHECKFIELD="PAVIP" PRIMPOS="0002" DOMNAME="BU_PAVIP" DATATYPE="CHAR" LENG="000001"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="AUTHORITY" CHECKTABLE="TB914" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="1"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="CORRESPONDLANGUAGE" CHECKTABLE="T002" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="COUNTRY" CHECKTABLE="T005" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="1"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="DEPARTMENT" CHECKTABLE="TB910" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="1"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="FUNCTION" CHECKTABLE="TB912" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="1"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="INDUSTRYSECTOR" CHECKTABLE="TB023" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="1"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="LEGALFORM" CHECKTABLE="TB019" FRKART="KEY" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="1"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="MARITALSTATUS" CHECKTABLE="TB027" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="1"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMCOUNTRY" CHECKTABLE="T005" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="NAMEFORMAT" CHECKTABLE="T005N" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="POBOX_CTRY" CHECKTABLE="T005" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PO_BOX_REG" CHECKTABLE="T005S" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PREFIX1" CHECKTABLE="TSAD4" CHECKFLAG="X" NOINHERIT="N"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="PREFIX2" CHECKTABLE="TSAD4" CHECKFLAG="X" NOINHERIT="N"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGIOGROUP" CHECKTABLE="ADRREGGRP" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="REGION" CHECKTABLE="T005S" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="STR_ABBR" CHECKTABLE="ADRSTRTYPE" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TIME_ZONE" CHECKTABLE="TTZZ" FRKART="REF" CARD="CN" CHECKFLAG="X" NOINHERIT="N" CARDLEFT="C"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_ACA1" CHECKTABLE="TSAD2" CHECKFLAG="X" NOINHERIT="N"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_ACA2" CHECKTABLE="TSAD2" CHECKFLAG="X" NOINHERIT="N"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="TITLE_SPPL" CHECKTABLE="TSAD5" CHECKFLAG="X" NOINHERIT="N"/>
<dd08v TABNAME="ZEXCEL_S_ORG_REL" FIELDNAME="VIP" DDLANGUAGE="E" CHECKTABLE="TB916" FRKART="REF" CARD="CN" CHECKFLAG="X" DDTEXT="h" NOINHERIT="N" CARDLEFT="1"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_SHARED_STRING" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Shared strings" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_SHARED_STRING" FIELDNAME="STRING_NO" DDLANGUAGE="E" POSITION="0001" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_SHARED_STRING" FIELDNAME="STRING_VALUE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CELL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Cell Value" REPTEXT="Cell Value" SCRTEXT_S="Value" SCRTEXT_M="Cell Value" SCRTEXT_L="Cell Value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_SHEET_STYLE" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Sheet style structure" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_SHEET_STYLE" FIELDNAME="GUID" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLEMAPPING" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Stypemapping" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="DYNAMIC_STYLE_GUID" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="COMPLETE_STYLE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_S_CSTYLE_COMPLETE" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles ( 1 structure holds all )" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FONT" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_S_CSTYLE_FONT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Font" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_STYLE_FONT_FAMILY" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Font family" REPTEXT="Font family" SCRTEXT_S="Family" SCRTEXT_M="Font family" SCRTEXT_L="Font family" DOMNAME3L="INT1" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0011" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_STYLE_FONT_NAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000510" DOMNAME="CHAR255" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000255" OUTPUTLEN="000255" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font name" REPTEXT="Font name" SCRTEXT_S="Name" SCRTEXT_M="Font name" SCRTEXT_L="Font name" DOMNAME3L="CHAR255" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0013" ROLLNAME="ZEXCEL_STYLE_FONT_SCHEME" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font scheme" REPTEXT="Font scheme" SCRTEXT_S="Scheme" SCRTEXT_M="Font scheme" SCRTEXT_L="Font scheme" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0014" ROLLNAME="ZEXCEL_STYLE_FONT_SIZE" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Font size" REPTEXT="Font size" SCRTEXT_S="Size" SCRTEXT_M="Font size" SCRTEXT_L="Font size" DOMNAME3L="INT1" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0015" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0016" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0017" ROLLNAME="ZEXCEL_STYLE_FONT_UNDERLINE" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font underline" REPTEXT="Font underline" SCRTEXT_S="Underline" SCRTEXT_M="Font underline" SCRTEXT_L="Font underline" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FILL" DDLANGUAGE="E" POSITION="0018" ROLLNAME="ZEXCEL_S_CSTYLE_FILL" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Fill" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FILLTYPE" DDLANGUAGE="E" POSITION="0019" ROLLNAME="ZEXCEL_FILL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Fill Type" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ROTATION" DDLANGUAGE="E" POSITION="0020" ROLLNAME="ZEXCEL_ROTATION" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Rotation" REPTEXT="Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Rotation" SCRTEXT_L="Rotation" DOMNAME3L="INT4" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FGCOLOR" DDLANGUAGE="E" POSITION="0021" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0022" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0023" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0024" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0025" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BGCOLOR" DDLANGUAGE="E" POSITION="0026" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0027" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0028" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0029" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0030" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDERS" DDLANGUAGE="E" POSITION="0031" ROLLNAME="ZEXCEL_S_CSTYLE_BORDERS" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Borders" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ALLBORDERS" DDLANGUAGE="E" POSITION="0032" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0033" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0034" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0035" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0036" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0037" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0038" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="DIAGONAL" DDLANGUAGE="E" POSITION="0039" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0040" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0041" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0042" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0043" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0044" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0045" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="DIAGONAL_MODE" DDLANGUAGE="E" POSITION="0046" ROLLNAME="ZEXCEL_DIAGONAL" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Diagonal" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" DOMNAME3L="INT1" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="DOWN" DDLANGUAGE="E" POSITION="0047" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0048" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0049" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0050" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0051" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0052" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0053" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="LEFT" DDLANGUAGE="E" POSITION="0054" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0055" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0056" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0057" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0058" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0059" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0060" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RIGHT" DDLANGUAGE="E" POSITION="0061" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0062" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0063" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0064" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0065" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0066" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0067" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TOP" DDLANGUAGE="E" POSITION="0068" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0069" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0070" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0071" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0072" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0073" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0074" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="04" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ALIGNMENT" DDLANGUAGE="E" POSITION="0075" ROLLNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Alignment" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="HORIZONTAL" DDLANGUAGE="E" POSITION="0076" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="VERTICAL" DDLANGUAGE="E" POSITION="0077" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TEXTROTATION" DDLANGUAGE="E" POSITION="0078" ROLLNAME="ZEXCEL_TEXT_ROTATION" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Text Rotation" REPTEXT="Text Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Text Rotation" SCRTEXT_L="Text Rotation" DOMNAME3L="INT1" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="WRAPTEXT" DDLANGUAGE="E" POSITION="0079" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="SHRINKTOFIT" DDLANGUAGE="E" POSITION="0080" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDENT" DDLANGUAGE="E" POSITION="0081" ROLLNAME="ZEXCEL_INDENT" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Indent" REPTEXT="Indent" SCRTEXT_S="Indent" SCRTEXT_M="Indent" SCRTEXT_L="Indent" DOMNAME3L="INT1" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="NUMBER_FORMAT" DDLANGUAGE="E" POSITION="0082" ROLLNAME="ZEXCEL_S_CSTYLE_NUMBER_FORMAT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Number Format" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FORMAT_CODE" DDLANGUAGE="E" POSITION="0083" ROLLNAME="ZEXCEL_NUMBER_FORMAT" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Number format" REPTEXT="Number format" SCRTEXT_S="Format" SCRTEXT_M="Number format" SCRTEXT_L="Number format" DOMNAME3L="STRING" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="PROTECTION" DDLANGUAGE="E" POSITION="0084" ROLLNAME="ZEXCEL_S_CSTYLE_PROTECTION" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Protection" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="HIDDEN" DDLANGUAGE="E" POSITION="0085" ROLLNAME="ZEXCEL_CELL_PROTECTION" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CELL_PROTECTION" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell protection indicator" REPTEXT="Cell protection" SCRTEXT_S="Protection" SCRTEXT_M="Cell protection" SCRTEXT_L="Cell protection" DOMNAME3L="ZEXCEL_CELL_PROTECTION" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="LOCKED" DDLANGUAGE="E" POSITION="0086" ROLLNAME="ZEXCEL_CELL_PROTECTION" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CELL_PROTECTION" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell protection indicator" REPTEXT="Cell protection" SCRTEXT_S="Protection" SCRTEXT_M="Cell protection" SCRTEXT_L="Cell protection" DOMNAME3L="ZEXCEL_CELL_PROTECTION" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="COMPLETE_STYLEX" DDLANGUAGE="E" POSITION="0087" ROLLNAME="ZEXCEL_S_CSTYLEX_COMPLETE" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles ( 1 structure holds all )" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FONT" DDLANGUAGE="E" POSITION="0088" ROLLNAME="ZEXCEL_S_CSTYLEX_FONT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Font" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0089" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0090" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0091" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0092" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0093" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0094" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0095" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0096" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0097" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0098" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0099" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0100" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0101" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0102" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FILL" DDLANGUAGE="E" POSITION="0103" ROLLNAME="ZEXCEL_S_CSTYLEX_FILL" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Fill" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FILLTYPE" DDLANGUAGE="E" POSITION="0104" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ROTATION" DDLANGUAGE="E" POSITION="0105" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FGCOLOR" DDLANGUAGE="E" POSITION="0106" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0107" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0108" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0109" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0110" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BGCOLOR" DDLANGUAGE="E" POSITION="0111" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0112" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0113" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0114" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0115" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDERS" DDLANGUAGE="E" POSITION="0116" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDERS" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Borders" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ALLBORDERS" DDLANGUAGE="E" POSITION="0117" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0118" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0119" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0120" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0121" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0122" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0123" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="DIAGONAL" DDLANGUAGE="E" POSITION="0124" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0125" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0126" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0127" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0128" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0129" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0130" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="DIAGONAL_MODE" DDLANGUAGE="E" POSITION="0131" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="DOWN" DDLANGUAGE="E" POSITION="0132" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0133" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0134" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0135" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0136" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0137" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0138" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="LEFT" DDLANGUAGE="E" POSITION="0139" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0140" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0141" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0142" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0143" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0144" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0145" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RIGHT" DDLANGUAGE="E" POSITION="0146" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0147" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0148" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0149" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0150" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0151" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0152" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TOP" DDLANGUAGE="E" POSITION="0153" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0154" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0155" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="03" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0156" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0157" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0158" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0159" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="04" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ALIGNMENT" DDLANGUAGE="E" POSITION="0160" ROLLNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Alignment" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="HORIZONTAL" DDLANGUAGE="E" POSITION="0161" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="VERTICAL" DDLANGUAGE="E" POSITION="0162" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="TEXTROTATION" DDLANGUAGE="E" POSITION="0163" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="WRAPTEXT" DDLANGUAGE="E" POSITION="0164" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="SHRINKTOFIT" DDLANGUAGE="E" POSITION="0165" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="INDENT" DDLANGUAGE="E" POSITION="0166" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="NUMBER_FORMAT" DDLANGUAGE="E" POSITION="0167" ROLLNAME="ZEXCEL_S_CSTYLEX_NUMBER_FORMAT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Number Format" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="FORMAT_CODE" DDLANGUAGE="E" POSITION="0168" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="PROTECTION" DDLANGUAGE="E" POSITION="0169" ROLLNAME="ZEXCEL_S_CSTYLEX_PROTECTION" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Protection" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="HIDDEN" DDLANGUAGE="E" POSITION="0170" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="LOCKED" DDLANGUAGE="E" POSITION="0171" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="GUID" DDLANGUAGE="E" POSITION="0172" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="ADDED_TO_ITERATOR" DDLANGUAGE="E" POSITION="0173" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLEMAPPING" FIELDNAME="CL_STYLE" DDLANGUAGE="E" POSITION="0174" ROLLNAME="ZCL_EXCEL_STYLE" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="REF" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" REF RC" MASKLEN="0000" DDTEXT="Style" DEPTH="00" COMPTYPE="R" REFTYPE="C" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLE_FONT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Values for Cellstyles - Font" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_STYLE_FONT_FAMILY" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Font family" REPTEXT="Font family" SCRTEXT_S="Family" SCRTEXT_M="Font family" SCRTEXT_L="Font family" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0008" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_STYLE_FONT_NAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000510" DOMNAME="CHAR255" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000255" OUTPUTLEN="000255" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font name" REPTEXT="Font name" SCRTEXT_S="Name" SCRTEXT_M="Font name" SCRTEXT_L="Font name" DOMNAME3L="CHAR255" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_STYLE_FONT_SCHEME" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font scheme" REPTEXT="Font scheme" SCRTEXT_S="Scheme" SCRTEXT_M="Font scheme" SCRTEXT_L="Font scheme" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_STYLE_FONT_SIZE" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Font size" REPTEXT="Font size" SCRTEXT_S="Size" SCRTEXT_M="Font size" SCRTEXT_L="Font size" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0012" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FONT" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0014" ROLLNAME="ZEXCEL_STYLE_FONT_UNDERLINE" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font underline" REPTEXT="Font underline" SCRTEXT_S="Underline" SCRTEXT_M="Font underline" SCRTEXT_L="Font underline" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLE_FILL" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Values for Cellstyles - Fill" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="FILLTYPE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_FILL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Fill Type" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="ROTATION" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_ROTATION" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Rotation" REPTEXT="Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Rotation" SCRTEXT_L="Rotation" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="FGCOLOR" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="BGCOLOR" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_FILL" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Values for Cellstyles ( 1 structure holds all )" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="FONT" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_S_CSTYLE_FONT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Font" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_STYLE_FONT_FAMILY" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Font family" REPTEXT="Font family" SCRTEXT_S="Family" SCRTEXT_M="Font family" SCRTEXT_L="Font family" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0009" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_STYLE_FONT_NAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000510" DOMNAME="CHAR255" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000255" OUTPUTLEN="000255" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font name" REPTEXT="Font name" SCRTEXT_S="Name" SCRTEXT_M="Font name" SCRTEXT_L="Font name" DOMNAME3L="CHAR255" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_STYLE_FONT_SCHEME" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font scheme" REPTEXT="Font scheme" SCRTEXT_S="Scheme" SCRTEXT_M="Font scheme" SCRTEXT_L="Font scheme" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_STYLE_FONT_SIZE" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Font size" REPTEXT="Font size" SCRTEXT_S="Size" SCRTEXT_M="Font size" SCRTEXT_L="Font size" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0014" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0015" ROLLNAME="ZEXCEL_STYLE_FONT_UNDERLINE" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font underline" REPTEXT="Font underline" SCRTEXT_S="Underline" SCRTEXT_M="Font underline" SCRTEXT_L="Font underline" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="FILL" DDLANGUAGE="E" POSITION="0016" ROLLNAME="ZEXCEL_S_CSTYLE_FILL" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Fill" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="FILLTYPE" DDLANGUAGE="E" POSITION="0017" ROLLNAME="ZEXCEL_FILL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Fill Type" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="ROTATION" DDLANGUAGE="E" POSITION="0018" ROLLNAME="ZEXCEL_ROTATION" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Rotation" REPTEXT="Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Rotation" SCRTEXT_L="Rotation" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="FGCOLOR" DDLANGUAGE="E" POSITION="0019" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0020" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0021" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0022" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0023" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BGCOLOR" DDLANGUAGE="E" POSITION="0024" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0025" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0026" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0027" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0028" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDERS" DDLANGUAGE="E" POSITION="0029" ROLLNAME="ZEXCEL_S_CSTYLE_BORDERS" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Borders" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="ALLBORDERS" DDLANGUAGE="E" POSITION="0030" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0031" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0032" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0033" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0034" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0035" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0036" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="DIAGONAL" DDLANGUAGE="E" POSITION="0037" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0038" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0039" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0040" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0041" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0042" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0043" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="DIAGONAL_MODE" DDLANGUAGE="E" POSITION="0044" ROLLNAME="ZEXCEL_DIAGONAL" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Diagonal" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="DOWN" DDLANGUAGE="E" POSITION="0045" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0046" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0047" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0048" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0049" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0050" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0051" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="LEFT" DDLANGUAGE="E" POSITION="0052" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0053" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0054" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0055" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0056" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0057" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0058" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RIGHT" DDLANGUAGE="E" POSITION="0059" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0060" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0061" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0062" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0063" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0064" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0065" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TOP" DDLANGUAGE="E" POSITION="0066" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0067" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0068" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0069" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0070" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0071" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0072" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="03" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="ALIGNMENT" DDLANGUAGE="E" POSITION="0073" ROLLNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Alignment" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="HORIZONTAL" DDLANGUAGE="E" POSITION="0074" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="VERTICAL" DDLANGUAGE="E" POSITION="0075" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="TEXTROTATION" DDLANGUAGE="E" POSITION="0076" ROLLNAME="ZEXCEL_TEXT_ROTATION" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Text Rotation" REPTEXT="Text Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Text Rotation" SCRTEXT_L="Text Rotation" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="WRAPTEXT" DDLANGUAGE="E" POSITION="0077" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="SHRINKTOFIT" DDLANGUAGE="E" POSITION="0078" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="INDENT" DDLANGUAGE="E" POSITION="0079" ROLLNAME="ZEXCEL_INDENT" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Indent" REPTEXT="Indent" SCRTEXT_S="Indent" SCRTEXT_M="Indent" SCRTEXT_L="Indent" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="NUMBER_FORMAT" DDLANGUAGE="E" POSITION="0080" ROLLNAME="ZEXCEL_S_CSTYLE_NUMBER_FORMAT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Number Format" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="FORMAT_CODE" DDLANGUAGE="E" POSITION="0081" ROLLNAME="ZEXCEL_NUMBER_FORMAT" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Number format" REPTEXT="Number format" SCRTEXT_S="Format" SCRTEXT_M="Number format" SCRTEXT_L="Number format" DOMNAME3L="STRING" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="PROTECTION" DDLANGUAGE="E" POSITION="0082" ROLLNAME="ZEXCEL_S_CSTYLE_PROTECTION" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cellstyles - Protection" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="HIDDEN" DDLANGUAGE="E" POSITION="0083" ROLLNAME="ZEXCEL_CELL_PROTECTION" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CELL_PROTECTION" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell protection indicator" REPTEXT="Cell protection" SCRTEXT_S="Protection" SCRTEXT_M="Cell protection" SCRTEXT_L="Cell protection" DOMNAME3L="ZEXCEL_CELL_PROTECTION" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_COMPLETE" FIELDNAME="LOCKED" DDLANGUAGE="E" POSITION="0084" ROLLNAME="ZEXCEL_CELL_PROTECTION" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CELL_PROTECTION" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell protection indicator" REPTEXT="Cell protection" SCRTEXT_S="Protection" SCRTEXT_M="Cell protection" SCRTEXT_L="Cell protection" DOMNAME3L="ZEXCEL_CELL_PROTECTION" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLE_BORDERS" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Values for Cellstyles - Borders" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="ALLBORDERS" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="DIAGONAL" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0013" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0014" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="DIAGONAL_MODE" DDLANGUAGE="E" POSITION="0015" ROLLNAME="ZEXCEL_DIAGONAL" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Diagonal" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="DOWN" DDLANGUAGE="E" POSITION="0016" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0017" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0018" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0019" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0020" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0021" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0022" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="LEFT" DDLANGUAGE="E" POSITION="0023" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0024" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0025" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0026" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0027" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0028" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0029" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="RIGHT" DDLANGUAGE="E" POSITION="0030" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0031" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0032" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0033" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0034" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0035" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0036" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="TOP" DDLANGUAGE="E" POSITION="0037" ROLLNAME="ZEXCEL_S_CSTYLE_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Values for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0038" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0039" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0040" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0041" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0042" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0043" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLE_BORDER" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Values for Cells - border" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDER" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDER" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDER" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDER" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDER" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_BORDER" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Values for Cellstyles - Alignment" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" FIELDNAME="HORIZONTAL" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" FIELDNAME="VERTICAL" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" FIELDNAME="TEXTROTATION" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_TEXT_ROTATION" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Text Rotation" REPTEXT="Text Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Text Rotation" SCRTEXT_L="Text Rotation" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" FIELDNAME="WRAPTEXT" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" FIELDNAME="SHRINKTOFIT" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLE_ALIGNMENT" FIELDNAME="INDENT" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_INDENT" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Indent" REPTEXT="Indent" SCRTEXT_S="Indent" SCRTEXT_M="Indent" SCRTEXT_L="Indent" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_PROTECTION" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag for Cellstyles - Protection" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_PROTECTION" FIELDNAME="HIDDEN" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_PROTECTION" FIELDNAME="LOCKED" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLES_COND_MAPPING" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Style mapping" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLES_COND_MAPPING" FIELDNAME="GUID" DDLANGUAGE="E" POSITION="0001" ROLLNAME="GUID_16" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="SYSUUID" ROUTPUTLEN="000000" HEADLEN="07" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="GUID in &apos;RAW&apos; format" REPTEXT="GUID 16" SCRTEXT_S="GUID 16" SCRTEXT_M="GUID 16" SCRTEXT_L="GUID 16" DOMNAME3L="SYSUUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLES_COND_MAPPING" FIELDNAME="STYLE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLES_COND_MAPPING" FIELDNAME="DXF" DDLANGUAGE="E" POSITION="0003" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLES_MAPPING" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Style mapping" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLES_MAPPING" FIELDNAME="GUID" DDLANGUAGE="E" POSITION="0001" ROLLNAME="GUID_16" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="SYSUUID" ROUTPUTLEN="000000" HEADLEN="07" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="GUID in &apos;RAW&apos; format" REPTEXT="GUID 16" SCRTEXT_S="GUID 16" SCRTEXT_M="GUID 16" SCRTEXT_L="GUID 16" DOMNAME3L="SYSUUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLES_MAPPING" FIELDNAME="STYLE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLE_ALIGNMENT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Cell alignment" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_ALIGNMENT" FIELDNAME="HORIZONTAL" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_ALIGNMENT" FIELDNAME="VERTICAL" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_ALIGNMENT" FIELDNAME="TEXTROTATION" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_TEXT_ROTATION" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Text Rotation" REPTEXT="Text Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Text Rotation" SCRTEXT_L="Text Rotation" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_ALIGNMENT" FIELDNAME="WRAPTEXT" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_ALIGNMENT" FIELDNAME="SHRINKTOFIT" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_ALIGNMENT" FIELDNAME="INDENT" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_INDENT" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Indent" REPTEXT="Indent" SCRTEXT_S="Indent" SCRTEXT_M="Indent" SCRTEXT_L="Indent" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLE_BORDER" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Border Style" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="LEFT_COLOR" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="LEFT_STYLE" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="RIGHT_COLOR" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="RIGHT_STYLE" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="TOP_COLOR" DDLANGUAGE="E" POSITION="0013" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0014" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0015" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0016" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0017" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="TOP_STYLE" DDLANGUAGE="E" POSITION="0018" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="BOTTOM_COLOR" DDLANGUAGE="E" POSITION="0019" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0020" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0021" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0022" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0023" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="BOTTOM_STYLE" DDLANGUAGE="E" POSITION="0024" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="DIAGONAL_COLOR" DDLANGUAGE="E" POSITION="0025" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0026" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0027" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0028" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0029" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="DIAGONAL_STYLE" DDLANGUAGE="E" POSITION="0030" ROLLNAME="ZEXCEL_BORDER" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Border style" REPTEXT="Border style" SCRTEXT_S="Border" SCRTEXT_M="Border style" SCRTEXT_L="Border style" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="DIAGONALUP" DDLANGUAGE="E" POSITION="0031" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_BORDER" FIELDNAME="DIAGONALDOWN" DDLANGUAGE="E" POSITION="0032" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLE_COLOR" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Color" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_COLOR" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_COLOR" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_COLOR" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_COLOR" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLE_FILL" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Cell Fill" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="FILLTYPE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_FILL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Fill Type" REPTEXT="Fill Type" SCRTEXT_S="Fill Type" SCRTEXT_M="Fill Type" SCRTEXT_L="Fill Type" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="ROTATION" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_ROTATION" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Rotation" REPTEXT="Rotation" SCRTEXT_S="Rotation" SCRTEXT_M="Rotation" SCRTEXT_L="Rotation" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="FGCOLOR" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="BGCOLOR" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FILL" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLE_FONT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Cell Font" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0004" ROLLNAME="CHAR20" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Char 20" REPTEXT="Char20" SCRTEXT_S="Char20" SCRTEXT_M="Char20" SCRTEXT_L="Char20" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0006" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0012" ROLLNAME="CHAR255" ADMINFIELD="0" INTTYPE="C" INTLEN="000510" DOMNAME="CHAR255" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="07" SCRLEN2="00" SCRLEN3="00" DATATYPE="CHAR" LENG="000255" OUTPUTLEN="000255" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Char255" SCRTEXT_S="Char255" DOMNAME3L="CHAR255" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0013" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_FONT" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0014" ROLLNAME="ZEXCEL_STYLE_FONT_SCHEME" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font scheme" REPTEXT="Font scheme" SCRTEXT_S="Scheme" SCRTEXT_M="Font scheme" SCRTEXT_L="Font scheme" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLE_NUMFMT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Number format" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_NUMFMT" FIELDNAME="NUMFMT" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_NUMBER_FORMAT" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Number format" REPTEXT="Number format" SCRTEXT_S="Format" SCRTEXT_M="Number format" SCRTEXT_L="Number format" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_STYLE_PROTECTION" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Protection" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_PROTECTION" FIELDNAME="LOCKED" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_LOCKED" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="XFELD" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="09" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell locked" REPTEXT="Cell locked" SCRTEXT_S="Cell lock" SCRTEXT_M="Cell locked" SCRTEXT_L="Cell locked" DOMNAME3L="XFELD" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_STYLE_PROTECTION" FIELDNAME="HIDDEN" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_HIDDEN" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="XFELD" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell hidden" REPTEXT="Cell hidden" SCRTEXT_S="Cell hide" SCRTEXT_M="Cell hidden" SCRTEXT_L="Cell hidden" DOMNAME3L="XFELD" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_TABCOLOR" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Tabcolor" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_TABCOLOR" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_TABLE_SETTINGS" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Excel table binding settings" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="TABLE_STYLE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_TABLE_STYLE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Name of the table style" SCRTEXT_S="Table styl" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="TABLE_NAME" DDLANGUAGE="E" POSITION="0002" ROLLNAME="DSTRING" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="06" SCRLEN2="10" SCRLEN3="15" DTELMASTER="D" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000132" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="String" REPTEXT="String" SCRTEXT_S="String" SCRTEXT_M="String" SCRTEXT_L="String" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="TOP_LEFT_COLUMN" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_CELL_COLUMN_ALPHA" ADMINFIELD="0" INTTYPE="C" INTLEN="000006" DOMNAME="CHAR3" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="CHAR3" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="TOP_LEFT_ROW" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="SHOW_ROW_STRIPES" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="SHOW_COLUMN_STRIPES" DDLANGUAGE="E" POSITION="0006" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="BOTTOM_RIGHT_COLUMN" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_CELL_COLUMN_ALPHA" ADMINFIELD="0" INTTYPE="C" INTLEN="000006" DOMNAME="CHAR3" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="CHAR3" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="BOTTOM_RIGHT_ROW" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_WORKSHEET_COLUMNDIME" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Stucture for the collection of column dimensions" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_COLUMNDIME" FIELDNAME="COLUMN" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_COLUMN_ALPHA" ADMINFIELD="0" INTTYPE="C" INTLEN="000006" DOMNAME="CHAR3" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="CHAR3" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_COLUMNDIME" FIELDNAME="COLUMN_DIMENSION" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZCL_EXCEL_WORKSHEET_COLUMNDIME" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="REF" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" REF RC" MASKLEN="0000" DDTEXT="Worksheet ColumnDimension" DEPTH="00" COMPTYPE="R" REFTYPE="C" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Sheet Header / Footer" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="LEFT_VALUE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="DSTRING" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="06" SCRLEN2="10" SCRLEN3="15" DTELMASTER="D" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000132" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="String" REPTEXT="String" SCRTEXT_S="String" SCRTEXT_M="String" SCRTEXT_L="String" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="LEFT_FONT" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_S_STYLE_FONT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Cell Font" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0006" ROLLNAME="CHAR20" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Char 20" REPTEXT="Char20" SCRTEXT_S="Char20" SCRTEXT_M="Char20" SCRTEXT_L="Char20" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0007" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0008" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0013" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0014" ROLLNAME="CHAR255" ADMINFIELD="0" INTTYPE="C" INTLEN="000510" DOMNAME="CHAR255" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="07" SCRLEN2="00" SCRLEN3="00" DATATYPE="CHAR" LENG="000255" OUTPUTLEN="000255" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Char255" SCRTEXT_S="Char255" DOMNAME3L="CHAR255" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0015" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0016" ROLLNAME="ZEXCEL_STYLE_FONT_SCHEME" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font scheme" REPTEXT="Font scheme" SCRTEXT_S="Scheme" SCRTEXT_M="Font scheme" SCRTEXT_L="Font scheme" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="CENTER_VALUE" DDLANGUAGE="E" POSITION="0017" ROLLNAME="DSTRING" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="06" SCRLEN2="10" SCRLEN3="15" DTELMASTER="D" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000132" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="String" REPTEXT="String" SCRTEXT_S="String" SCRTEXT_M="String" SCRTEXT_L="String" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="CENTER_FONT" DDLANGUAGE="E" POSITION="0018" ROLLNAME="ZEXCEL_S_STYLE_FONT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Cell Font" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0019" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0020" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0021" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0022" ROLLNAME="CHAR20" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Char 20" REPTEXT="Char20" SCRTEXT_S="Char20" SCRTEXT_M="Char20" SCRTEXT_L="Char20" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0023" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0024" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0025" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0026" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0027" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0028" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0029" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0030" ROLLNAME="CHAR255" ADMINFIELD="0" INTTYPE="C" INTLEN="000510" DOMNAME="CHAR255" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="07" SCRLEN2="00" SCRLEN3="00" DATATYPE="CHAR" LENG="000255" OUTPUTLEN="000255" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Char255" SCRTEXT_S="Char255" DOMNAME3L="CHAR255" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0031" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0032" ROLLNAME="ZEXCEL_STYLE_FONT_SCHEME" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font scheme" REPTEXT="Font scheme" SCRTEXT_S="Scheme" SCRTEXT_M="Font scheme" SCRTEXT_L="Font scheme" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="RIGHT_VALUE" DDLANGUAGE="E" POSITION="0033" ROLLNAME="DSTRING" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="06" SCRLEN2="10" SCRLEN3="15" DTELMASTER="D" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000132" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="String" REPTEXT="String" SCRTEXT_S="String" SCRTEXT_M="String" SCRTEXT_L="String" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="RIGHT_FONT" DDLANGUAGE="E" POSITION="0034" ROLLNAME="ZEXCEL_S_STYLE_FONT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Cell Font" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0035" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0036" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0037" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0038" ROLLNAME="CHAR20" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Char 20" REPTEXT="Char20" SCRTEXT_S="Char20" SCRTEXT_M="Char20" SCRTEXT_L="Char20" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0039" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0040" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0041" ROLLNAME="ZEXCEL_S_STYLE_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0042" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0043" ROLLNAME="ZEXCEL_STYLE_COLOR_INDEXED" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="19" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Indexed color value" REPTEXT="Indexed color value" SCRTEXT_S="Color" SCRTEXT_M="Indexed color" SCRTEXT_L="Indexed color value" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0044" ROLLNAME="ZEXCEL_STYLE_COLOR_THEME" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000011" DECIMALS="000000" MASK=" INT4E" MASKLEN="0000" DDTEXT="Theme Color" REPTEXT="Theme Color" SCRTEXT_S="Color" SCRTEXT_M="Theme Color" SCRTEXT_L="Theme Color" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0045" ROLLNAME="ZEXCEL_STYLE_COLOR_TINT" ADMINFIELD="0" INTTYPE="F" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="FLTP" LENG="000016" OUTPUTLEN="000022" DECIMALS="000016" MASK=" FLTPE" MASKLEN="0000" DDTEXT="Tint" REPTEXT="Tint" SCRTEXT_S="Tint" SCRTEXT_M="Tint" SCRTEXT_L="Tint" DEPTH="02" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0046" ROLLNAME="CHAR255" ADMINFIELD="0" INTTYPE="C" INTLEN="000510" DOMNAME="CHAR255" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="07" SCRLEN2="00" SCRLEN3="00" DATATYPE="CHAR" LENG="000255" OUTPUTLEN="000255" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Char255" SCRTEXT_S="Char255" DOMNAME3L="CHAR255" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0047" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_HEAD_FOOT" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0048" ROLLNAME="ZEXCEL_STYLE_FONT_SCHEME" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Font scheme" REPTEXT="Font scheme" SCRTEXT_S="Scheme" SCRTEXT_M="Font scheme" SCRTEXT_L="Font scheme" DOMNAME3L="CHAR20" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_WORKSHEET_ROWDIMENSIO" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Stucture for the collection of row dimensions" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_ROWDIMENSIO" FIELDNAME="ROW" DDLANGUAGE="E" POSITION="0001" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_WORKSHEET_ROWDIMENSIO" FIELDNAME="ROW_DIMENSION" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZCL_EXCEL_WORKSHEET_ROWDIMENSI" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="REF" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" REF RC" MASKLEN="0000" DDTEXT="Worksheet RowDimension" DEPTH="00" COMPTYPE="R" REFTYPE="C" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_NUMBER_FORMAT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag for Cellstyles - Number Format" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_NUMBER_FORMAT" FIELDNAME="FORMAT_CODE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CONVERTER_OPTION" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Converter options for grid configuration" AUTHCLASS="00" PROZPUFF="000" EXCLASS="2">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_OPTION" FIELDNAME="FILTER" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CONVERTER_OPTION_FILTER" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CONVERTER_OPTION" ROUTPUTLEN="000000" HEADLEN="14" SCRLEN1="10" SCRLEN2="15" SCRLEN3="24" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Filter options for converter with grid object" REPTEXT="Filter options" SCRTEXT_S="Filter" SCRTEXT_M="Filter options" SCRTEXT_L="Converter Filter options" DOMNAME3L="ZEXCEL_CONVERTER_OPTION" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_OPTION" FIELDNAME="SUBTOT" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CONVERTER_OPTION_SUBTOT" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CONVERTER_OPTION" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="26" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Subtotal options for converter with grid object" REPTEXT="Subtotal options" SCRTEXT_S="Subtotal" SCRTEXT_M="Subtotal options" SCRTEXT_L="Converter subtotal options" DOMNAME3L="ZEXCEL_CONVERTER_OPTION" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_OPTION" FIELDNAME="HIDENC" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_CONVERTER_OPTION_HIDENC" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CONVERTER_OPTION" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="17" SCRLEN3="30" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Hiden column options for converter with grid object" REPTEXT="Hiden column options" SCRTEXT_S="Hiden col." SCRTEXT_M="Hiden column opt." SCRTEXT_L="Converter hiden column options" DOMNAME3L="ZEXCEL_CONVERTER_OPTION" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_OPTION" FIELDNAME="HIDEHD" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_CONVERTER_OPTION_HIDEHD" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_CONVERTER_OPTION" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="17" SCRLEN3="30" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Hiden column header for converter with grid object" REPTEXT="Hiden column options" SCRTEXT_S="Hiden col." SCRTEXT_M="Hiden column opt." SCRTEXT_L="Converter hiden column options" DOMNAME3L="ZEXCEL_CONVERTER_OPTION" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_CONDITIONAL_DATABAR" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Databar settings" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_DATABAR" FIELDNAME="CFVO1_TYPE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CONDITIONAL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_DATABAR" FIELDNAME="CFVO1_VALUE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CONDITIONAL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Condition value" REPTEXT="Condition value" SCRTEXT_S="Value" SCRTEXT_M="Condition value" SCRTEXT_L="Condition value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_DATABAR" FIELDNAME="CFVO2_TYPE" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_CONDITIONAL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_DATABAR" FIELDNAME="CFVO2_VALUE" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_CONDITIONAL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Condition value" REPTEXT="Condition value" SCRTEXT_S="Value" SCRTEXT_M="Condition value" SCRTEXT_L="Condition value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_DATABAR" FIELDNAME="COLORRGB" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_COLOR" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="06" SCRLEN2="12" SCRLEN3="12" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color" REPTEXT="Color" SCRTEXT_S="Color" SCRTEXT_M="Color" SCRTEXT_L="Color" DOMNAME3L="CHAR8" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CONVERTER_FCAT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Field catalog for converter" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" DDLANGUAGE="E" POSITION="0001" ROLLNAME="TABNAME" CHECKTABLE="DD02L" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="AS4TAB" ROUTPUTLEN="000000" MEMORYID="DTB" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD02L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Table Name" REPTEXT="Table Name" SCRTEXT_S="Table" SCRTEXT_M="Table Name" SCRTEXT_L="Table Name" DOMNAME3L="AS4TAB" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="TABNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FIELDNAME" CHECKTABLE="DD03L" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="COLUMNNAME" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FIELDNAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="POSITION" DDLANGUAGE="E" POSITION="0004" ROLLNAME="TABFDPOS" ADMINFIELD="0" INTTYPE="N" INTLEN="000008" DOMNAME="AS4POS" ROUTPUTLEN="000000" HEADLEN="06" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="NUMC" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" MASK=" NUMCE" MASKLEN="0000" DDTEXT="Position of the field in the table" REPTEXT="TabPos" SCRTEXT_S="Table pos." SCRTEXT_M="Table position" SCRTEXT_L="Table position" DOMNAME3L="AS4POS" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="INTTYPE" DDLANGUAGE="E" POSITION="0005" ROLLNAME="INTTYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="INTTYPE" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" LOWERCASE="X" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="ABAP data type (C,D,N,...)" REPTEXT="Ty." SCRTEXT_S="ABAP type" SCRTEXT_M="ABAP type" SCRTEXT_L="ABAP type" DOMNAME3L="INTTYPE" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="DECIMALS" DDLANGUAGE="E" POSITION="0006" ROLLNAME="INT1" ADMINFIELD="0" INTTYPE="X" INTLEN="000001" DOMNAME="INT1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="04" SCRLEN2="04" SCRLEN3="04" DTELMASTER="D" DATATYPE="INT1" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" MASK=" INT1E" MASKLEN="0000" DDTEXT="Byte Value" SCRTEXT_S="Byte" SCRTEXT_M="Byte" SCRTEXT_L="Byte" DOMNAME3L="INT1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="SCRTEXT_S" DDLANGUAGE="E" POSITION="0007" ROLLNAME="SCRTEXT_S" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="SCRTEXT_S" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Short Field Label" REPTEXT="Short field label" SCRTEXT_S="Short" SCRTEXT_M="ShortFieldLabel" SCRTEXT_L="Short field label" DOMNAME3L="SCRTEXT_S" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="SCRTEXT_M" DDLANGUAGE="E" POSITION="0008" ROLLNAME="SCRTEXT_M" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="SCRTEXT_M" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Medium Field Label" REPTEXT="Medium Field Label" SCRTEXT_S="Medium" SCRTEXT_M="Medium Fld Labl" SCRTEXT_L="Medium Field Label" DOMNAME3L="SCRTEXT_M" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_M" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="SCRTEXT_L" DDLANGUAGE="E" POSITION="0009" ROLLNAME="SCRTEXT_L" ADMINFIELD="0" INTTYPE="C" INTLEN="000080" DOMNAME="SCRTEXT_L" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Long Field Label" REPTEXT="Long Field Label" SCRTEXT_S="Long" SCRTEXT_M="Long Fld Label" SCRTEXT_L="Long field label" DOMNAME3L="SCRTEXT_L" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_L" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TOTALS_FUNCTION" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_TABLE_TOTALS_FUNCTION" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Totals function for table column (xml ST_TotalsRowFunction)" SCRTEXT_S="Function" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIX_COLUMN" DDLANGUAGE="E" POSITION="0011" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="ALIGNMENT" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="IS_OPTIMIZED" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="IS_HIDDEN" DDLANGUAGE="E" POSITION="0014" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="IS_COLLAPSED" DDLANGUAGE="E" POSITION="0015" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="IS_SUBTOTALLED" DDLANGUAGE="E" POSITION="0016" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="SORT_LEVEL" DDLANGUAGE="E" POSITION="0017" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="STYLE_HDR" DDLANGUAGE="E" POSITION="0018" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="STYLE_NORMAL" DDLANGUAGE="E" POSITION="0019" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="STYLE_STRIPPED" DDLANGUAGE="E" POSITION="0020" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="STYLE_TOTAL" DDLANGUAGE="E" POSITION="0021" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="STYLE_SUBTOTAL" DDLANGUAGE="E" POSITION="0022" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="COL_ID" DDLANGUAGE="E" POSITION="0023" ROLLNAME="LVC_COLID" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="ALV control: Column ID" REPTEXT="Column ID" SCRTEXT_S="Column ID" SCRTEXT_M="Column ID" SCRTEXT_L="Column ID" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="CONVEXIT" DDLANGUAGE="E" POSITION="0024" ROLLNAME="CONVEXIT" ADMINFIELD="0" INTTYPE="C" INTLEN="000010" DOMNAME="CONVEXIT" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000005" OUTPUTLEN="000005" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Conversion Routine" REPTEXT="Converesion Routine" SCRTEXT_S="Conv.Rout." SCRTEXT_M="Convers. Rout." SCRTEXT_L="Conversion Routine" DOMNAME3L="CONVEXIT" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONVERTER_FCAT" FORKEY="TABNAME" CHECKTABLE="DD03L" CHECKFIELD="TABNAME" PRIMPOS="0001" DOMNAME="AS4TAB" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONVERTER_FCAT" FORKEY="FIELDNAME" CHECKTABLE="DD03L" CHECKFIELD="FIELDNAME" PRIMPOS="0002" DOMNAME="FDNAME" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="&apos;A&apos;" CHECKTABLE="DD03L" CHECKFIELD="AS4LOCAL" PRIMPOS="0003" DOMNAME="AS4LOCAL" DATATYPE="CHAR" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="&apos;0000&apos;" CHECKTABLE="DD03L" CHECKFIELD="AS4VERS" PRIMPOS="0004" DOMNAME="AS4VERS" DATATYPE="NUMC" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONVERTER_FCAT" FORKEY="POSITION" CHECKTABLE="DD03L" CHECKFIELD="POSITION" PRIMPOS="0005" DOMNAME="AS4POS" DATATYPE="NUMC" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" FORTABLE="ZEXCEL_S_CONVERTER_FCAT" FORKEY="TABNAME" CHECKTABLE="DD02L" CHECKFIELD="TABNAME" PRIMPOS="0001" DOMNAME="AS4TAB" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" FORTABLE="&apos;A&apos;" CHECKTABLE="DD02L" CHECKFIELD="AS4LOCAL" PRIMPOS="0002" DOMNAME="AS4LOCAL" DATATYPE="CHAR" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" FORTABLE="&apos;0000&apos;" CHECKTABLE="DD02L" CHECKFIELD="AS4VERS" PRIMPOS="0003" DOMNAME="AS4VERS" DATATYPE="NUMC" LENG="000004"/>
<dd08v TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" DDLANGUAGE="E" CHECKTABLE="DD03L"/>
<dd08v TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" DDLANGUAGE="E" CHECKTABLE="DD02L"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CONVERTER_FIL" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Filter information for cells" AUTHCLASS="00" PROZPUFF="000" EXCLASS="3">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FIL" FIELDNAME="ROWNUMBER" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FIL" FIELDNAME="COLUMNNAME" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FIELDNAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CONVERTER_LAYO" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Converter settings for table" AUTHCLASS="00" PROZPUFF="000" EXCLASS="3">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_LAYO" FIELDNAME="IS_STRIPPED" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_LAYO" FIELDNAME="IS_FIXED" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_LAYO" FIELDNAME="MAX_SUBTOTAL_LEVEL" DDLANGUAGE="E" POSITION="0003" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Field catalog for converter" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="TABNAME" DDLANGUAGE="E" POSITION="0001" ROLLNAME="TABNAME" CHECKTABLE="DD02L" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="AS4TAB" ROUTPUTLEN="000000" MEMORYID="DTB" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD02L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Table Name" REPTEXT="Table Name" SCRTEXT_S="Table" SCRTEXT_M="Table Name" SCRTEXT_L="Table Name" DOMNAME3L="AS4TAB" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="TABNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="FIELDNAME" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FIELDNAME" CHECKTABLE="DD03L" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="COLUMNNAME" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FIELDNAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="POSITION" DDLANGUAGE="E" POSITION="0004" ROLLNAME="TABFDPOS" ADMINFIELD="0" INTTYPE="N" INTLEN="000008" DOMNAME="AS4POS" ROUTPUTLEN="000000" HEADLEN="06" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="NUMC" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" MASK=" NUMCE" MASKLEN="0000" DDTEXT="Position of the field in the table" REPTEXT="TabPos" SCRTEXT_S="Table pos." SCRTEXT_M="Table position" SCRTEXT_L="Table position" DOMNAME3L="AS4POS" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="INTTYPE" DDLANGUAGE="E" POSITION="0005" ROLLNAME="INTTYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="INTTYPE" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" LOWERCASE="X" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="ABAP data type (C,D,N,...)" REPTEXT="Ty." SCRTEXT_S="ABAP type" SCRTEXT_M="ABAP type" SCRTEXT_L="ABAP type" DOMNAME3L="INTTYPE" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="SCRTEXT_S" DDLANGUAGE="E" POSITION="0006" ROLLNAME="SCRTEXT_S" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="SCRTEXT_S" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Short Field Label" REPTEXT="Short field label" SCRTEXT_S="Short" SCRTEXT_M="ShortFieldLabel" SCRTEXT_L="Short field label" DOMNAME3L="SCRTEXT_S" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="SCRTEXT_M" DDLANGUAGE="E" POSITION="0007" ROLLNAME="SCRTEXT_M" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="SCRTEXT_M" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Medium Field Label" REPTEXT="Medium Field Label" SCRTEXT_S="Medium" SCRTEXT_M="Medium Fld Labl" SCRTEXT_L="Medium Field Label" DOMNAME3L="SCRTEXT_M" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_M" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="SCRTEXT_L" DDLANGUAGE="E" POSITION="0008" ROLLNAME="SCRTEXT_L" ADMINFIELD="0" INTTYPE="C" INTLEN="000080" DOMNAME="SCRTEXT_L" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Long Field Label" REPTEXT="Long Field Label" SCRTEXT_S="Long" SCRTEXT_M="Long Fld Label" SCRTEXT_L="Long field label" DOMNAME3L="SCRTEXT_L" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_L" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="TOTALS_FUNCTION" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_TABLE_TOTALS_FUNCTION" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Totals function for table column (xml ST_TotalsRowFunction)" SCRTEXT_S="Function" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="FIX_COLUMN" DDLANGUAGE="E" POSITION="0010" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="IS_OPTIMIZED" DDLANGUAGE="E" POSITION="0011" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="IS_VISIBLE" DDLANGUAGE="E" POSITION="0012" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="ALIGNMENT" DDLANGUAGE="E" POSITION="0013" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd05m TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONV_FIELDCATALOG" FORKEY="TABNAME" CHECKTABLE="DD03L" CHECKFIELD="TABNAME" PRIMPOS="0001" DOMNAME="AS4TAB" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONV_FIELDCATALOG" FORKEY="FIELDNAME" CHECKTABLE="DD03L" CHECKFIELD="FIELDNAME" PRIMPOS="0002" DOMNAME="FDNAME" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="FIELDNAME" FORTABLE="&apos;A&apos;" CHECKTABLE="DD03L" CHECKFIELD="AS4LOCAL" PRIMPOS="0003" DOMNAME="AS4LOCAL" DATATYPE="CHAR" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="FIELDNAME" FORTABLE="&apos;0000&apos;" CHECKTABLE="DD03L" CHECKFIELD="AS4VERS" PRIMPOS="0004" DOMNAME="AS4VERS" DATATYPE="NUMC" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONV_FIELDCATALOG" FORKEY="POSITION" CHECKTABLE="DD03L" CHECKFIELD="POSITION" PRIMPOS="0005" DOMNAME="AS4POS" DATATYPE="NUMC" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="TABNAME" FORTABLE="ZEXCEL_S_CONV_FIELDCATALOG" FORKEY="TABNAME" CHECKTABLE="DD02L" CHECKFIELD="TABNAME" PRIMPOS="0001" DOMNAME="AS4TAB" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="TABNAME" FORTABLE="&apos;A&apos;" CHECKTABLE="DD02L" CHECKFIELD="AS4LOCAL" PRIMPOS="0002" DOMNAME="AS4LOCAL" DATATYPE="CHAR" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="TABNAME" FORTABLE="&apos;0000&apos;" CHECKTABLE="DD02L" CHECKFIELD="AS4VERS" PRIMPOS="0003" DOMNAME="AS4VERS" DATATYPE="NUMC" LENG="000004"/>
<dd08v TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="FIELDNAME" DDLANGUAGE="E" CHECKTABLE="DD03L"/>
<dd08v TABNAME="ZEXCEL_S_CONV_FIELDCATALOG" FIELDNAME="TABNAME" DDLANGUAGE="E" CHECKTABLE="DD02L"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CONV_SETTINGS" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Converter settings for table" AUTHCLASS="00" PROZPUFF="000" EXCLASS="2">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CONV_SETTINGS" FIELDNAME="IS_STRIPPED" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONV_SETTINGS" FIELDNAME="IS_FIXED" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag for Cellstyles - Alignment" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" FIELDNAME="HORIZONTAL" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" FIELDNAME="VERTICAL" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" FIELDNAME="TEXTROTATION" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" FIELDNAME="WRAPTEXT" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" FIELDNAME="SHRINKTOFIT" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" FIELDNAME="INDENT" DDLANGUAGE="E" POSITION="0006" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_CONDITIONAL_CELLIS" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Iconset settings" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_CELLIS" FIELDNAME="FORMULA" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_STYLE_FORMULA" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Style formula" REPTEXT="Style formula" SCRTEXT_S="Formula" SCRTEXT_M="Style formula" SCRTEXT_L="Style formula" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_CELLIS" FIELDNAME="OPERATOR" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CONDITION_OPERATOR" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="20" SCRLEN1="10" SCRLEN2="18" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition operator" REPTEXT="Condition operator" SCRTEXT_S="Cond. oper" SCRTEXT_M="Condition operator" SCRTEXT_L="Condition operator" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_CELLIS" FIELDNAME="CELL_STYLE" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_CONDITIONAL_EXPRESSION" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Expression settings" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_EXPRESSION" FIELDNAME="FORMULA" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_STYLE_FORMULA" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="13" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Style formula" REPTEXT="Style formula" SCRTEXT_S="Formula" SCRTEXT_M="Style formula" SCRTEXT_L="Style formula" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_EXPRESSION" FIELDNAME="CELL_STYLE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_CONDITIONAL_ICONSET" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Iconset settings" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="ICONSET" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CONDITION_RULE_ICONSET" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="22" SCRLEN1="10" SCRLEN2="18" SCRLEN3="22" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition rule iconset" REPTEXT="Condition rule iconset" SCRTEXT_S="Cond. rule" SCRTEXT_M="Cond. rule iconset" SCRTEXT_L="Condition rule iconset" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO1_TYPE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CONDITIONAL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO1_VALUE" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_CONDITIONAL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Condition value" REPTEXT="Condition value" SCRTEXT_S="Value" SCRTEXT_M="Condition value" SCRTEXT_L="Condition value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO2_TYPE" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_CONDITIONAL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO2_VALUE" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_CONDITIONAL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Condition value" REPTEXT="Condition value" SCRTEXT_S="Value" SCRTEXT_M="Condition value" SCRTEXT_L="Condition value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO3_TYPE" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_CONDITIONAL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO3_VALUE" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_CONDITIONAL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Condition value" REPTEXT="Condition value" SCRTEXT_S="Value" SCRTEXT_M="Condition value" SCRTEXT_L="Condition value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO4_TYPE" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_CONDITIONAL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO4_VALUE" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_CONDITIONAL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Condition value" REPTEXT="Condition value" SCRTEXT_S="Value" SCRTEXT_M="Condition value" SCRTEXT_L="Condition value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO5_TYPE" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_CONDITIONAL_TYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="TEXT10" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" DOMNAME3L="TEXT10" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="CFVO5_VALUE" DDLANGUAGE="E" POSITION="0011" ROLLNAME="ZEXCEL_CONDITIONAL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Condition value" REPTEXT="Condition value" SCRTEXT_S="Value" SCRTEXT_M="Condition value" SCRTEXT_L="Condition value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_ICONSET" FIELDNAME="SHOWVALUE" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_CONDITIONAL_SHOW_VALUE" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="ZEXCEL_BOOLE01" ROUTPUTLEN="000000" HEADLEN="15" SCRLEN1="05" SCRLEN2="15" SCRLEN3="15" DTELMASTER="E" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Condition type" REPTEXT="Condition type" SCRTEXT_S="Type" SCRTEXT_M="Condition type" SCRTEXT_L="Condition type" DOMNAME3L="ZEXCEL_BOOLE01" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_DRAWING_LOCATION" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Drawing location for Excel" AUTHCLASS="00" PROZPUFF="000" EXCLASS="3">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_DRAWING_LOCATION" FIELDNAME="COL" DDLANGUAGE="E" POSITION="0001" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_LOCATION" FIELDNAME="COL_OFFSET" DDLANGUAGE="E" POSITION="0002" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_LOCATION" FIELDNAME="ROW" DDLANGUAGE="E" POSITION="0003" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_LOCATION" FIELDNAME="ROW_OFFSET" DDLANGUAGE="E" POSITION="0004" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_DRAWING_POSITION" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Drawing position for Excel" AUTHCLASS="00" PROZPUFF="000" EXCLASS="0">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="ANCHOR" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_DRAWING_ANCHOR" ADMINFIELD="0" INTTYPE="C" INTLEN="000006" DOMNAME="ZEXCEL_DRAWING_ANCHOR" ROUTPUTLEN="000000" HEADLEN="06" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000003" OUTPUTLEN="000003" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Excel Drawing anchor" REPTEXT="Anchor" SCRTEXT_S="Anchor" SCRTEXT_M="Anchor" SCRTEXT_L="Anchor Type" DOMNAME3L="ZEXCEL_DRAWING_ANCHOR" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="FROM" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_DRAWING_LOCATION" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Drawing location for Excel" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="COL" DDLANGUAGE="E" POSITION="0003" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="COL_OFFSET" DDLANGUAGE="E" POSITION="0004" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="ROW" DDLANGUAGE="E" POSITION="0005" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="ROW_OFFSET" DDLANGUAGE="E" POSITION="0006" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="TO" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_DRAWING_LOCATION" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Drawing location for Excel" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="COL" DDLANGUAGE="E" POSITION="0008" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="COL_OFFSET" DDLANGUAGE="E" POSITION="0009" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="ROW" DDLANGUAGE="E" POSITION="0010" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="ROW_OFFSET" DDLANGUAGE="E" POSITION="0011" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0012" ROLLNAME="ZEXCEL_DRAWING_SIZE" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Drawing size for Excel" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="WIDTH" DDLANGUAGE="E" POSITION="0013" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_POSITION" FIELDNAME="HEIGHT" DDLANGUAGE="E" POSITION="0014" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="01" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_FONT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag for Cellstyles - Font" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0006" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0007" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0008" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0009" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0010" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0011" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0012" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FONT" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0014" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_FILL" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag for Cellstyles - Fill" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="FILLTYPE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="ROTATION" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="FGCOLOR" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0006" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0007" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="BGCOLOR" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0009" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0010" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0011" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_FILL" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0012" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag for Cellstyles ( 1 structure holds all )" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="FONT" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_S_CSTYLEX_FONT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Font" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BOLD" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="COLOR" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0006" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0007" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="FAMILY" DDLANGUAGE="E" POSITION="0008" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="ITALIC" DDLANGUAGE="E" POSITION="0009" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="NAME" DDLANGUAGE="E" POSITION="0010" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="SCHEME" DDLANGUAGE="E" POSITION="0011" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="SIZE" DDLANGUAGE="E" POSITION="0012" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="STRIKETHROUGH" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="UNDERLINE" DDLANGUAGE="E" POSITION="0014" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="UNDERLINE_MODE" DDLANGUAGE="E" POSITION="0015" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="FILL" DDLANGUAGE="E" POSITION="0016" ROLLNAME="ZEXCEL_S_CSTYLEX_FILL" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Fill" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="FILLTYPE" DDLANGUAGE="E" POSITION="0017" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="ROTATION" DDLANGUAGE="E" POSITION="0018" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="FGCOLOR" DDLANGUAGE="E" POSITION="0019" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0020" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0021" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0022" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0023" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BGCOLOR" DDLANGUAGE="E" POSITION="0024" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0025" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0026" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0027" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0028" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDERS" DDLANGUAGE="E" POSITION="0029" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDERS" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Borders" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="ALLBORDERS" DDLANGUAGE="E" POSITION="0030" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0031" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0032" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0033" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0034" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0035" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0036" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="DIAGONAL" DDLANGUAGE="E" POSITION="0037" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0038" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0039" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0040" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0041" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0042" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0043" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="DIAGONAL_MODE" DDLANGUAGE="E" POSITION="0044" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="DOWN" DDLANGUAGE="E" POSITION="0045" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0046" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0047" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0048" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0049" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0050" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0051" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="LEFT" DDLANGUAGE="E" POSITION="0052" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0053" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0054" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0055" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0056" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0057" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0058" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RIGHT" DDLANGUAGE="E" POSITION="0059" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0060" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0061" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0062" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0063" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0064" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0065" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TOP" DDLANGUAGE="E" POSITION="0066" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0067" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0068" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="02" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0069" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0070" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0071" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0072" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="03" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="ALIGNMENT" DDLANGUAGE="E" POSITION="0073" ROLLNAME="ZEXCEL_S_CSTYLEX_ALIGNMENT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Alignment" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="HORIZONTAL" DDLANGUAGE="E" POSITION="0074" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="VERTICAL" DDLANGUAGE="E" POSITION="0075" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="TEXTROTATION" DDLANGUAGE="E" POSITION="0076" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="WRAPTEXT" DDLANGUAGE="E" POSITION="0077" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="SHRINKTOFIT" DDLANGUAGE="E" POSITION="0078" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="INDENT" DDLANGUAGE="E" POSITION="0079" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="NUMBER_FORMAT" DDLANGUAGE="E" POSITION="0080" ROLLNAME="ZEXCEL_S_CSTYLEX_NUMBER_FORMAT" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Number Format" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="FORMAT_CODE" DDLANGUAGE="E" POSITION="0081" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="PROTECTION" DDLANGUAGE="E" POSITION="0082" ROLLNAME="ZEXCEL_S_CSTYLEX_PROTECTION" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cellstyles - Protection" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="HIDDEN" DDLANGUAGE="E" POSITION="0083" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COMPLETE" FIELDNAME="LOCKED" DDLANGUAGE="E" POSITION="0084" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_COLOR" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag Color" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COLOR" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COLOR" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COLOR" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_COLOR" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag for Cellstyles - Borders" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="ALLBORDERS" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0006" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0007" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="DIAGONAL" DDLANGUAGE="E" POSITION="0008" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0009" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0010" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0011" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0012" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0013" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0014" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="DIAGONAL_MODE" DDLANGUAGE="E" POSITION="0015" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="DOWN" DDLANGUAGE="E" POSITION="0016" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0017" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0018" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0019" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0020" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0021" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0022" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="LEFT" DDLANGUAGE="E" POSITION="0023" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0024" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0025" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0026" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0027" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0028" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0029" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="RIGHT" DDLANGUAGE="E" POSITION="0030" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0031" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0032" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0033" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0034" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0035" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0036" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="TOP" DDLANGUAGE="E" POSITION="0037" ROLLNAME="ZEXCEL_S_CSTYLEX_BORDER" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag for Cells - border" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0038" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0039" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="01" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0040" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0041" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0042" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDERS" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0043" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="02" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CSTYLEX_BORDER" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Changeflag for Cells - border" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDER" FIELDNAME="BORDER_STYLE" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDER" FIELDNAME="BORDER_COLOR" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_S_CSTYLEX_COLOR" ADMINFIELD="0" INTLEN="000000" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DATATYPE="STRU" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRUS" MASKLEN="0000" DDTEXT="Changeflag Color" DEPTH="00" COMPTYPE="S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDER" FIELDNAME="RGB" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDER" FIELDNAME="INDEXED" DDLANGUAGE="E" POSITION="0004" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDER" FIELDNAME="THEME" DDLANGUAGE="E" POSITION="0005" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CSTYLEX_BORDER" FIELDNAME="TINT" DDLANGUAGE="E" POSITION="0006" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="01" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CONVERTER_COL" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Color information for cells" AUTHCLASS="00" PROZPUFF="000" EXCLASS="3">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_COL" FIELDNAME="ROWNUMBER" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_COL" FIELDNAME="COLUMNNAME" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FIELDNAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_COL" FIELDNAME="FONTCOLOR" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_COL" FIELDNAME="FILLCOLOR" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_STYLE_COLOR_ARGB" ADMINFIELD="0" INTTYPE="C" INTLEN="000016" DOMNAME="CHAR8" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="CHAR" LENG="000008" OUTPUTLEN="000008" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Color ARGB" REPTEXT="Color ARGB" SCRTEXT_S="Color ARGB" SCRTEXT_M="Color ARGB" SCRTEXT_L="Color ARGB" DOMNAME3L="CHAR8" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_COL" FIELDNAME="NOKEYCOL" DDLANGUAGE="E" POSITION="0005" ROLLNAME="LVC_NOKEYC" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="CHAR1" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="ALV control: Override key color" DOMNAME3L="CHAR1" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CELL_DATA" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Cell data" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CELL_DATA" FIELDNAME="CELL_ROW" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELL_DATA" FIELDNAME="CELL_COLUMN" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CELL_COLUMN" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELL_DATA" FIELDNAME="CELL_VALUE" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_CELL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Cell Value" REPTEXT="Cell Value" SCRTEXT_S="Value" SCRTEXT_M="Cell Value" SCRTEXT_L="Cell Value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELL_DATA" FIELDNAME="CELL_FORMULA" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_CELL_FORMULA" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="12" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Cell Formula" REPTEXT="Cell Formula" SCRTEXT_S="Formula" SCRTEXT_M="Cell Formula" SCRTEXT_L="Cell Formula" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELL_DATA" FIELDNAME="CELL_COORDS" DDLANGUAGE="E" POSITION="0005" ROLLNAME="ZEXCEL_CELL_COORDS" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="25" SCRLEN1="10" SCRLEN2="16" SCRLEN3="25" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Cell coordinates as Excel" REPTEXT="Cell coordinates as Excel" SCRTEXT_S="Cell coord" SCRTEXT_M="Cell coordinates" SCRTEXT_L="Cell coordinates as Excel" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELL_DATA" FIELDNAME="CELL_STYLE" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELL_DATA" FIELDNAME="DATA_TYPE" DDLANGUAGE="E" POSITION="0007" ROLLNAME="ZEXCEL_CELL_DATA_TYPE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="14" SCRLEN1="09" SCRLEN2="14" SCRLEN3="14" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Cell data type" REPTEXT="Cell data type" SCRTEXT_S="Data type" SCRTEXT_M="Cell data type" SCRTEXT_L="Cell data type" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_CELLXFS" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Cell style" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="NUMFMTID" DDLANGUAGE="E" POSITION="0001" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="FONTID" DDLANGUAGE="E" POSITION="0002" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="FILLID" DDLANGUAGE="E" POSITION="0003" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="BORDERID" DDLANGUAGE="E" POSITION="0004" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="XFID" DDLANGUAGE="E" POSITION="0005" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="ALIGNMENTID" DDLANGUAGE="E" POSITION="0006" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="PROTECTIONID" DDLANGUAGE="E" POSITION="0007" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="APPLYNUMBERFORMAT" DDLANGUAGE="E" POSITION="0008" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="APPLYFONT" DDLANGUAGE="E" POSITION="0009" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="APPLYFILL" DDLANGUAGE="E" POSITION="0010" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="APPLYBORDER" DDLANGUAGE="E" POSITION="0011" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="APPLYALIGNMENT" DDLANGUAGE="E" POSITION="0012" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CELLXFS" FIELDNAME="APPLYPROTECTION" DDLANGUAGE="E" POSITION="0013" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_AUTOFILTER_VALUES" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Autofilter cell values for filter" AUTHCLASS="00" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_AUTOFILTER_VALUES" FIELDNAME="COLUMN" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_COLUMN" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_AUTOFILTER_VALUES" FIELDNAME="VALUE" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CELL_VALUE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Cell Value" REPTEXT="Cell Value" SCRTEXT_S="Value" SCRTEXT_M="Cell Value" SCRTEXT_L="Cell Value" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_S_AUTOFILTER_AREA" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Autofilter area ( rows and columns )" AUTHCLASS="00" PROZPUFF="000" EXCLASS="3">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_S_AUTOFILTER_AREA" FIELDNAME="ROW_START" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_AUTOFILTER_AREA" FIELDNAME="COL_START" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CELL_COLUMN" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_AUTOFILTER_AREA" FIELDNAME="ROW_END" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_AUTOFILTER_AREA" FIELDNAME="COL_END" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_CELL_COLUMN" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_PANE" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" AUTHCLASS="00" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_PANE" FIELDNAME="YSPLIT" DDLANGUAGE="E" POSITION="0001" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_PANE" FIELDNAME="XSPLIT" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CELL_ROW" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="08" SCRLEN1="08" SCRLEN2="08" SCRLEN3="08" DTELMASTER="E" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Cell Row" REPTEXT="Cell Row" SCRTEXT_S="Row" SCRTEXT_M="Cell Row" SCRTEXT_L="Cell Row" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_PANE" FIELDNAME="TOPLEFTCELL" DDLANGUAGE="E" POSITION="0003" ROLLNAME="ZEXCEL_CELL_COORDS" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="25" SCRLEN1="10" SCRLEN2="16" SCRLEN3="25" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Cell coordinates as Excel" REPTEXT="Cell coordinates as Excel" SCRTEXT_S="Cell coord" SCRTEXT_M="Cell coordinates" SCRTEXT_L="Cell coordinates as Excel" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_PANE" FIELDNAME="ACTIVEPANE" POSITION="0004" ROLLNAME="ZEXCEL_PANE_TYPE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DTELMASTER="R" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_PANE" FIELDNAME="STATE" POSITION="0005" ROLLNAME="ZEXCEL_PANE_STATE" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" DOMNAME="STRING" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="00" SCRLEN2="00" SCRLEN3="00" DTELMASTER="R" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DOMNAME3L="STRING" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TABL TABNAME="ZEXCEL_DRAWING_SIZE" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Drawing size for Excel" AUTHCLASS="00" PROZPUFF="000" EXCLASS="0">
<dd09l AS4VERS="0000" SCHFELDANZ="000"/>
<dd03p TABNAME="ZEXCEL_DRAWING_SIZE" FIELDNAME="WIDTH" DDLANGUAGE="E" POSITION="0001" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_DRAWING_SIZE" FIELDNAME="HEIGHT" DDLANGUAGE="E" POSITION="0002" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>
<TTYP TYPENAME="ZEXCEL_T_WORKSHEET_COLUMNDIME" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_WORKSHEET_COLUMNDIME" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Collection of column dimensions" TYPELEN="000016" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_STYLE_PROTECTION" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLE_PROTECTION" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="K" KEYKIND="N" KEYFDCOUNT="0002" DDTEXT="Table type for styles ZEXCEL_S_STYLE_PROTECTION" TYPELEN="000004" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_STYLE_PROTECTION" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="LOCKED"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_PROTECTION" KEYFDPOS="0002" ROWTYPEPOS="0002" KEYFIELD="HIDDEN"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_STYLE_NUMFMT" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLE_NUMFMT" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="K" KEYKIND="N" KEYFDCOUNT="0001" DDTEXT="Table type for styles ZEXCEL_S_STYLE_NUMFMT" TYPELEN="000008" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_STYLE_NUMFMT" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="NUMFMT"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_STYLE_FONT" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLE_FONT" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="K" KEYKIND="N" KEYFDCOUNT="0010" DDTEXT="Table type for styles ZEXCEL_S_STYLE_FONT" TYPELEN="000640" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="BOLD"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0002" ROWTYPEPOS="0002" KEYFIELD="ITALIC"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0003" ROWTYPEPOS="0003" KEYFIELD="UNDERLINE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0004" ROWTYPEPOS="0004" KEYFIELD="UNDERLINE_MODE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0005" ROWTYPEPOS="0005" KEYFIELD="STRIKETHROUGH"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0006" ROWTYPEPOS="0006" KEYFIELD="SIZE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0007" ROWTYPEPOS="0007" KEYFIELD="COLOR"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0008" ROWTYPEPOS="0012" KEYFIELD="NAME"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0009" ROWTYPEPOS="0013" KEYFIELD="FAMILY"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FONT" KEYFDPOS="0010" ROWTYPEPOS="0014" KEYFIELD="SCHEME"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_STYLE_FILL" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLE_FILL" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="K" KEYKIND="N" KEYFDCOUNT="0004" DDTEXT="Cell Fills" TYPELEN="000112" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_STYLE_FILL" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="FILLTYPE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FILL" KEYFDPOS="0002" ROWTYPEPOS="0002" KEYFIELD="ROTATION"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FILL" KEYFDPOS="0003" ROWTYPEPOS="0003" KEYFIELD="FGCOLOR"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_FILL" KEYFDPOS="0004" ROWTYPEPOS="0008" KEYFIELD="BGCOLOR"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_STYLE_COLOR_ARGB" DDLANGUAGE="E" ROWTYPE="ZEXCEL_STYLE_COLOR_ARGB" ROWKIND="E" DATATYPE="CHAR" LENG="000008" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Table of RGB colors" TYPELEN="000008" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_STYLE_BORDER" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLE_BORDER" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="K" KEYKIND="N" KEYFDCOUNT="0012" DDTEXT="Border Style" TYPELEN="000368" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="LEFT_COLOR"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0002" ROWTYPEPOS="0006" KEYFIELD="LEFT_STYLE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0003" ROWTYPEPOS="0007" KEYFIELD="RIGHT_COLOR"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0004" ROWTYPEPOS="0012" KEYFIELD="RIGHT_STYLE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0005" ROWTYPEPOS="0013" KEYFIELD="TOP_COLOR"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0006" ROWTYPEPOS="0018" KEYFIELD="TOP_STYLE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0007" ROWTYPEPOS="0019" KEYFIELD="BOTTOM_COLOR"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0008" ROWTYPEPOS="0024" KEYFIELD="BOTTOM_STYLE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0009" ROWTYPEPOS="0025" KEYFIELD="DIAGONAL_COLOR"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0010" ROWTYPEPOS="0030" KEYFIELD="DIAGONAL_STYLE"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0011" ROWTYPEPOS="0031" KEYFIELD="DIAGONALUP"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_BORDER" KEYFDPOS="0012" ROWTYPEPOS="0032" KEYFIELD="DIAGONALDOWN"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_STYLE_ALIGNMENT" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLE_ALIGNMENT" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="K" KEYKIND="N" KEYFDCOUNT="0006" DDTEXT="Table type for" TYPELEN="000088" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_STYLE_ALIGNMENT" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="HORIZONTAL"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_ALIGNMENT" KEYFDPOS="0002" ROWTYPEPOS="0002" KEYFIELD="VERTICAL"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_ALIGNMENT" KEYFDPOS="0003" ROWTYPEPOS="0003" KEYFIELD="TEXTROTATION"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_ALIGNMENT" KEYFDPOS="0004" ROWTYPEPOS="0004" KEYFIELD="WRAPTEXT"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_ALIGNMENT" KEYFDPOS="0005" ROWTYPEPOS="0005" KEYFIELD="SHRINKTOFIT"/>
<dd42v TYPENAME="ZEXCEL_T_STYLE_ALIGNMENT" KEYFDPOS="0006" ROWTYPEPOS="0006" KEYFIELD="INDENT"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_STYLES_MAPPING" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLES_MAPPING" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Styles mapping" TYPELEN="000020" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_STYLES_COND_MAPPING" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLES_COND_MAPPING" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Styles mapping" TYPELEN="000024" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_STYLEMAPPING2" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLEMAPPING" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="H" KEYDEF="K" KEYKIND="U" KEYFDCOUNT="0001" DDTEXT="Stylemapping: GUID -&gt; Values" TYPELEN="001464" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_STYLEMAPPING2" KEYFDPOS="0001" ROWTYPEPOS="0172" KEYFIELD="GUID"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_STYLEMAPPING1" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_STYLEMAPPING" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="H" KEYDEF="K" KEYKIND="U" KEYFDCOUNT="0003" DDTEXT="Stylemapping: Values -&gt; GUID" TYPELEN="001464" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_STYLEMAPPING1" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="DYNAMIC_STYLE_GUID"/>
<dd42v TYPENAME="ZEXCEL_T_STYLEMAPPING1" KEYFDPOS="0002" ROWTYPEPOS="0087" KEYFIELD="COMPLETE_STYLEX"/>
<dd42v TYPENAME="ZEXCEL_T_STYLEMAPPING1" KEYFDPOS="0003" ROWTYPEPOS="0002" KEYFIELD="COMPLETE_STYLE"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_SHEET_STYLE" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_SHEET_STYLE" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Sheet style table type" TYPELEN="000016" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_SHARED_STRING" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_SHARED_STRING" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="S" KEYDEF="K" KEYKIND="N" KEYFDCOUNT="0001" DDTEXT="Shared Strings" TYPELEN="000012" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_SHARED_STRING" KEYFDPOS="0001" ROWTYPEPOS="0002" KEYFIELD="STRING_VALUE"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_FIELDCATALOG" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_FIELDCATALOG" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Table binding field catalog" TYPELEN="000340" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_CONV_FIELDCATALOG" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CONV_FIELDCATALOG" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Converter configurations for fields" TYPELEN="000388" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_CONVERTER_LAYO" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CONVERTER_LAYO" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Table type for zexcel_s_converter_layo" TYPELEN="000008" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_CONVERTER_FIL" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CONVERTER_FIL" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="H" KEYDEF="K" KEYKIND="U" KEYFDCOUNT="0002" DDTEXT="Table type for filter information of cells for converter" TYPELEN="000064" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_CONVERTER_FIL" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="ROWNUMBER"/>
<dd42v TYPENAME="ZEXCEL_T_CONVERTER_FIL" KEYFDPOS="0002" ROWTYPEPOS="0002" KEYFIELD="COLUMNNAME"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_CONVERTER_FCAT" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CONVERTER_FCAT" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Conter table for tabel fields" TYPELEN="000492" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_CONVERTER_COL" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CONVERTER_COL" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="H" KEYDEF="K" KEYKIND="U" KEYFDCOUNT="0002" DDTEXT="Table type for color information of cells for converter" TYPELEN="000100" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_CONVERTER_COL" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="ROWNUMBER"/>
<dd42v TYPENAME="ZEXCEL_T_CONVERTER_COL" KEYFDPOS="0002" ROWTYPEPOS="0002" KEYFIELD="COLUMNNAME"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_CELL_DATA_UNSORTED" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CELL_DATA" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Excel worksheet content" TYPELEN="000056" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_CELL_DATA" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CELL_DATA" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="S" KEYDEF="K" KEYKIND="U" KEYFDCOUNT="0002" DDTEXT="Excel worksheet content" TYPELEN="000056" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_CELL_DATA" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="CELL_ROW"/>
<dd42v TYPENAME="ZEXCEL_T_CELL_DATA" KEYFDPOS="0002" ROWTYPEPOS="0002" KEYFIELD="CELL_COLUMN"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_CELLXFS" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CELLXFS" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="K" KEYKIND="N" KEYFDCOUNT="0013" DDTEXT="Cell styles" TYPELEN="000052" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000">
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0001" ROWTYPEPOS="0001" KEYFIELD="NUMFMTID"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0002" ROWTYPEPOS="0002" KEYFIELD="FONTID"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0003" ROWTYPEPOS="0003" KEYFIELD="FILLID"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0004" ROWTYPEPOS="0004" KEYFIELD="BORDERID"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0005" ROWTYPEPOS="0005" KEYFIELD="XFID"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0006" ROWTYPEPOS="0006" KEYFIELD="ALIGNMENTID"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0007" ROWTYPEPOS="0007" KEYFIELD="PROTECTIONID"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0008" ROWTYPEPOS="0008" KEYFIELD="APPLYNUMBERFORMAT"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0009" ROWTYPEPOS="0009" KEYFIELD="APPLYFONT"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0010" ROWTYPEPOS="0010" KEYFIELD="APPLYFILL"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0011" ROWTYPEPOS="0011" KEYFIELD="APPLYBORDER"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0012" ROWTYPEPOS="0012" KEYFIELD="APPLYALIGNMENT"/>
<dd42v TYPENAME="ZEXCEL_T_CELLXFS" KEYFDPOS="0013" ROWTYPEPOS="0013" KEYFIELD="APPLYPROTECTION"/>
</TTYP>
<TTYP TYPENAME="ZEXCEL_T_AUTOFILTER_VALUES" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_AUTOFILTER_VALUES" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Table with autofilter values" TYPELEN="000012" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
<TTYP TYPENAME="ZEXCEL_T_WORKSHEET_ROWDIMENSIO" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_WORKSHEET_ROWDIMENSIO" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" DDTEXT="Collection of row dimensions" TYPELEN="000012" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>
</nugget>