Data Validation Custom, Sheet Properties, DEMO22 (based on real Business Requirements)

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@85 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Ivan Femia 2010-12-21 20:23:36 +00:00
parent 37a0a5582a
commit 047330e494
8 changed files with 398 additions and 502 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_COMMON" VERSION="1" LANGU="E" DESCRIPT="Static common methods" UUID="5E42354C6579E82CE1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="BCUSER" CHANGEDON="20101211" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" WITH_UNIT_TESTS="X" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<CLAS CLSNAME="ZCL_EXCEL_COMMON" VERSION="1" LANGU="E" DESCRIPT="Static common methods" UUID="5E42354C6579E82CE1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20101215" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" WITH_UNIT_TESTS="X" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<publicSection>class ZCL_EXCEL_COMMON definition
public
final
@ -9,16 +9,13 @@
*&quot;* do not include other source files here!!!
public section.
constants C_EXCEL_BASELINE_DATE type D value &apos;19000101&apos;. &quot;#EC NOTEXT
class-data C_EXCEL_NUMFMT_OFFSET type INT1 value 164. &quot;#EC NOTEXT .
constants C_EXCEL_SHEET_MAX_COL type INT4 value 16384. &quot;#EC NOTEXT
constants C_EXCEL_SHEET_MIN_COL type INT4 value 1. &quot;#EC NOTEXT
class-data C_SPRAS_EN type SPRAS value &apos;E&apos;. &quot;#EC NOTEXT .
class-data O_CONV type ref to CL_ABAP_CONV_OUT_CE .
constants C_EXCEL_BASELINE_DATE type D value &apos;19000101&apos;. &quot;#EC NOTEXT
class-methods GET_FIELDCATALOG
importing
!IP_TABLE type STANDARD TABLE
returning
value(EP_FIELDCATALOG) type ZEXCEL_T_FIELDCATALOG .
class-methods CONVERT_COLUMN2ALPHA
importing
!IP_COLUMN type ZEXCEL_CELL_COLUMN
@ -29,32 +26,27 @@ public section.
!IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA
returning
value(EP_COLUMN) type ZEXCEL_CELL_COLUMN .
class-methods NUMBER_TO_EXCEL_STRING
class-methods CONVERT_COLUMNROW2COLUMN_A_ROW
importing
value(IP_VALUE) type NUMERIC
returning
value(EP_VALUE) type ZEXCEL_CELL_VALUE .
!I_COLUMNROW type STRING
exporting
!E_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA
!E_ROW type ZEXCEL_CELL_ROW .
class-methods DATE_TO_EXCEL_STRING
importing
!IP_VALUE type D
returning
value(EP_VALUE) type ZEXCEL_CELL_VALUE .
class-methods TIME_TO_EXCEL_STRING
importing
!IP_VALUE type T
returning
value(EP_VALUE) type ZEXCEL_CELL_VALUE .
class-methods ENCRYPT_PASSWORD
importing
!I_PWD type ZEXCEL_AES_PASSWORD
returning
value(R_ENCRYPTED_PWD) type ZEXCEL_AES_PASSWORD .
class-methods CONVERT_COLUMNROW2COLUMN_A_ROW
class-methods ESCAPE_STRING
importing
!I_COLUMNROW type STRING
exporting
!E_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA
!E_ROW type ZEXCEL_CELL_ROW .
!IP_VALUE type STRING
returning
value(EP_ESCAPED_VALUE) type STRING .
class-methods EXCEL_STRING_TO_DATE
importing
!IP_VALUE type ZEXCEL_CELL_VALUE
@ -64,7 +56,22 @@ public section.
importing
!IP_VALUE type ZEXCEL_CELL_VALUE
returning
value(EP_VALUE) type T .</publicSection>
value(EP_VALUE) type T .
class-methods GET_FIELDCATALOG
importing
!IP_TABLE type STANDARD TABLE
returning
value(EP_FIELDCATALOG) type ZEXCEL_T_FIELDCATALOG .
class-methods NUMBER_TO_EXCEL_STRING
importing
value(IP_VALUE) type NUMERIC
returning
value(EP_VALUE) type ZEXCEL_CELL_VALUE .
class-methods TIME_TO_EXCEL_STRING
importing
!IP_VALUE type T
returning
value(EP_VALUE) type ZEXCEL_CELL_VALUE .</publicSection>
<protectedSection>*&quot;* protected components of class ZCL_EXCEL_COMMON
*&quot;* do not include other source files here!!!
protected section.</protectedSection>
@ -97,222 +104,16 @@ private section.
*&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_Excel_Common_Test DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_excel_common_test DEFINITION FOR TESTING. &quot;#AU Risk_Level Harmless
&quot;#AU Duration Short
*?#&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_Excel_Common_Test
*?&lt;/TEST_CLASS&gt;
*?&lt;TEST_MEMBER&gt;f_Cut
*?&lt;/TEST_MEMBER&gt;
*?&lt;OBJECT_UNDER_TEST&gt;ZCL_EXCEL_COMMON
*?&lt;/OBJECT_UNDER_TEST&gt;
*?&lt;OBJECT_IS_LOCAL/&gt;
*?&lt;GENERATE_FIXTURE/&gt;
*?&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_common. &quot;class under test
METHODS: convert_columnrow2column_a_row FOR TESTING.
METHODS: date_conversions FOR TESTING.
METHODS: time_conversions FOR TESTING.
ENDCLASS. &quot;zcl_Excel_Common_Test
*----------------------------------------------------------------------*
* CLASS zcl_Excel_Common_Test IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS zcl_excel_common_test IMPLEMENTATION.
* ===========================================
METHOD convert_columnrow2column_a_row.
* ======================================
DATA i_columnrow TYPE string VALUE &apos;AB344&apos;.
DATA e_column TYPE zexcel_cell_column_alpha.
DATA e_row TYPE zexcel_cell_row.
zcl_excel_common=&gt;convert_columnrow2column_a_row(
EXPORTING
i_columnrow = i_columnrow
IMPORTING
e_column = e_column
e_row = e_row
).
cl_aunit_assert=&gt;assert_equals(
act = e_column
exp = &apos;AB&apos;
msg = &apos;Testing value e_Column&apos;
* level =
).
cl_aunit_assert=&gt;assert_equals(
act = e_row
exp = 344
msg = &apos;Testing value e_Row&apos;
* level =
).
i_columnrow = &apos;B3&apos;.
zcl_excel_common=&gt;convert_columnrow2column_a_row(
EXPORTING
i_columnrow = i_columnrow
IMPORTING
e_column = e_column
e_row = e_row
).
cl_aunit_assert=&gt;assert_equals(
act = e_column
exp = &apos;B&apos;
msg = &apos;Testing value e_Column&apos;
* level =
).
cl_aunit_assert=&gt;assert_equals(
act = e_row
exp = 3
msg = &apos;Testing value e_Row&apos;
* level =
).
ENDMETHOD. &quot;convert_Columnrow2column_A_Row
METHOD date_conversions.
DATA: lv_date TYPE d,
lv_cell TYPE zexcel_cell_value.
* test date conversions. Expected values generated using Excel 2010
lv_date = &apos;20100101&apos;.
lv_cell = zcl_excel_common=&gt;date_to_excel_string( lv_date ).
cl_aunit_assert=&gt;assert_equals(
act = lv_cell
exp = &apos;40179&apos;
msg = &apos;Wrong date conversion&apos; ).
lv_date = zcl_excel_common=&gt;excel_string_to_date( lv_cell ).
cl_aunit_assert=&gt;assert_equals(
act = lv_date
exp = &apos;20100101&apos;
msg = &apos;Wrong date conversion&apos; ).
lv_date = &apos;20080229&apos;.
lv_cell = zcl_excel_common=&gt;date_to_excel_string( lv_date ).
cl_aunit_assert=&gt;assert_equals(
act = lv_cell
exp = &apos;39507&apos;
msg = &apos;Wrong date conversion&apos; ).
lv_date = zcl_excel_common=&gt;excel_string_to_date( lv_cell ).
cl_aunit_assert=&gt;assert_equals(
act = lv_date
exp = &apos;20080229&apos;
msg = &apos;Wrong date conversion&apos; ).
lv_date = &apos;19991231&apos;.
lv_cell = zcl_excel_common=&gt;date_to_excel_string( lv_date ).
cl_aunit_assert=&gt;assert_equals(
act = lv_cell
exp = &apos;36525&apos;
msg = &apos;Wrong date conversion&apos; ).
lv_date = zcl_excel_common=&gt;excel_string_to_date( lv_cell ).
cl_aunit_assert=&gt;assert_equals(
act = lv_date
exp = &apos;19991231&apos;
msg = &apos;Wrong date conversion&apos; ).
ENDMETHOD. &quot;date_conversions
METHOD time_conversions.
DATA: lv_time TYPE t,
lv_cell TYPE zexcel_cell_value,
lv_value TYPE f.
* test time conversions. Expected values generated using Excel 2010
lv_time = &apos;000000&apos;.
lv_value = zcl_excel_common=&gt;time_to_excel_string( lv_time ).
cl_aunit_assert=&gt;assert_equals_f(
act = lv_value
exp = 0
msg = &apos;Wrong time conversion&apos; ).
lv_cell = lv_value.
lv_time = zcl_excel_common=&gt;excel_string_to_time( lv_cell ).
cl_aunit_assert=&gt;assert_equals(
act = lv_time
exp = &apos;000000&apos;
msg = &apos;Wrong time conversion&apos; ).
lv_time = &apos;090909&apos;.
lv_value = zcl_excel_common=&gt;time_to_excel_string( lv_time ).
cl_aunit_assert=&gt;assert_equals_f(
act = lv_value
exp = &apos;0.38135416666666666&apos;
msg = &apos;Wrong time conversion&apos; ).
lv_cell = lv_value.
lv_time = zcl_excel_common=&gt;excel_string_to_time( lv_cell ).
cl_aunit_assert=&gt;assert_equals(
act = lv_time
exp = &apos;090909&apos;
msg = &apos;Wrong time conversion&apos; ).
lv_time = &apos;120000&apos;.
lv_value = zcl_excel_common=&gt;time_to_excel_string( lv_time ).
cl_aunit_assert=&gt;assert_equals_f(
act = lv_value
exp = &apos;0.5&apos;
msg = &apos;Wrong time conversion&apos; ).
lv_cell = lv_value.
lv_time = zcl_excel_common=&gt;excel_string_to_time( lv_cell ).
cl_aunit_assert=&gt;assert_equals(
act = lv_time
exp = &apos;120000&apos;
msg = &apos;Wrong time conversion&apos; ).
lv_time = &apos;235959&apos;.
lv_value = zcl_excel_common=&gt;time_to_excel_string( lv_time ).
cl_aunit_assert=&gt;assert_equals_f(
act = lv_value
exp = &apos;0.99998842592592585&apos;
msg = &apos;Wrong time conversion&apos; ).
lv_cell = lv_value.
lv_time = zcl_excel_common=&gt;excel_string_to_time( lv_cell ).
cl_aunit_assert=&gt;assert_equals(
act = lv_time
exp = &apos;235959&apos;
msg = &apos;Wrong time conversion&apos; ).
ENDMETHOD. &quot;time_conversions
ENDCLASS. &quot;zcl_Excel_Common_Test</localTestClasses>
<textPool/>
<classDocumentation/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_EXCEL_BASELINE_DATE" VERSION="1" LANGU="E" DESCRIPT="Excel baseline date" EXPOSURE="2" STATE="1" EDITORDER="4 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDON="00000000" ATTDECLTYP="2" ATTVALUE="&apos;19000101&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="D" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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="1 " AUTHOR="BCUSER" CREATEDON="20100724" CHANGEDBY="BCUSER" CHANGEDON="20101211" ATTDECLTYP="1" ATTVALUE="64" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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="1 " AUTHOR="BCUSER" CREATEDON="20100816" CHANGEDBY="BCUSER" CHANGEDON="20101211" ATTDECLTYP="1" ATTVALUE="164" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_SPRAS_EN" VERSION="1" LANGU="E" DESCRIPT="Language Key" EXPOSURE="2" STATE="1" EDITORDER="2 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" ATTDECLTYP="1" ATTVALUE="&apos;E&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SPRAS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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="3 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_ABAP_CONV_OUT_CE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CHAR2HEX" VERSION="1" LANGU="E" DESCRIPT="Character to Hexadecimal" EXPOSURE="0" STATE="1" EDITORDER="7 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<attribute CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="C_EXCEL_BASELINE_DATE" VERSION="1" LANGU="E" DESCRIPT="Excel baseline date" EXPOSURE="2" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="2" ATTVALUE="&apos;19000101&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="D" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="1" ATTVALUE="64" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100812" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="1" ATTVALUE="164" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="2" ATTVALUE="16384" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="INT4" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101111" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="1" ATTVALUE="&apos;E&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SPRAS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_ABAP_CONV_OUT_CE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CHAR2HEX" VERSION="1" LANGU="E" DESCRIPT="Character to Hexadecimal" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<source>method CHAR2HEX.
IF o_conv IS NOT BOUND.
@ -326,11 +127,10 @@ ENDCLASS. &quot;zcl_Excel_Common_Test</localTestClasses>
r_hex+1 = o_conv-&gt;get_buffer( ). &quot; x&apos;65&apos; must be x&apos;0065&apos;
endmethod.</source>
<methodDocumentation/>
</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 " AUTHOR="BCUSER" CREATEDON="20100724" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20100724" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<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 " AUTHOR="BCUSER" CREATEDON="20100724" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<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 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20101215" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<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 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<source>method CONVERT_COLUMN2ALPHA.
DATA: lo_conv TYPE REF TO cl_abap_conv_in_ce,
@ -351,11 +151,10 @@ endmethod.</source>
ENDWHILE.
endmethod.</source>
<methodDocumentation/>
</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 " AUTHOR="BCUSER" CREATEDON="20100724" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20100724" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<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 " AUTHOR="BCUSER" CREATEDON="20100724" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<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 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20101215" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<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 " AUTHOR="FEMIA" CREATEDON="20100710" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<source>method CONVERT_COLUMN2INT.
DATA: lv_uccpi TYPE i,
@ -382,12 +181,11 @@ endmethod.</source>
ENDIF.
endmethod.</source>
<methodDocumentation/>
</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="11 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<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 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<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 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<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 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDON="00000000" 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 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDON="00000000" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<source>method CONVERT_COLUMNROW2COLUMN_A_ROW.
DATA: width TYPE i,
col_width TYPE i,
@ -403,23 +201,21 @@ endmethod.</source>
row_str = i_columnrow+col_width(width).
e_row = row_str.
endmethod.</source>
<methodDocumentation/>
</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="5 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<source>METHOD date_to_excel_string.
<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="5 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101215" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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.
lv_date_diff = ip_value - c_excel_baseline_date + 2.
ep_value = zcl_excel_common=&gt;number_to_excel_string( ip_value = lv_date_diff ).
ENDMETHOD.</source>
<methodDocumentation/>
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ENCRYPT_PASSWORD" VERSION="1" LANGU="E" DESCRIPT="Encrypt password" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_AES_PASSWORD"/>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ENCRYPT_PASSWORD" VERSION="1" LANGU="E" DESCRIPT="Encrypt password" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_AES_PASSWORD"/>
<source>method ENCRYPT_PASSWORD.
DATA lv_curr_offset TYPE i.
@ -458,12 +254,18 @@ ENDMETHOD.</source>
WRITE lv_pwd_hash TO r_encrypted_pwd.
endmethod.</source>
<methodDocumentation/>
</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="12 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDON="00000000" 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 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDON="00000000" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="D"/>
<source>METHOD excel_string_to_date.
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ESCAPE_STRING" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="ESCAPE_STRING" SCONAME="EP_ESCAPED_VALUE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>METHOD escape_string.
CONCATENATE `&apos;` ip_value `&apos;` INTO ep_escaped_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="8 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDON="00000000" 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 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDON="00000000" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="D"/>
<source>method EXCEL_STRING_TO_DATE.
DATA: lv_date_int TYPE i.
TRY .
@ -472,13 +274,12 @@ endmethod.</source>
CATCH cx_sy_conversion_error.
CLEAR ep_value.
ENDTRY.
ENDMETHOD.</source>
<methodDocumentation/>
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="13 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDON="00000000" 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 " AUTHOR="BCUSER" CREATEDON="20101211" CHANGEDON="00000000" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T"/>
<source>METHOD excel_string_to_time.
<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="9 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDON="00000000" 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 " AUTHOR="FEMIA" CREATEDON="20101215" CHANGEDON="00000000" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="T"/>
<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.
@ -493,12 +294,11 @@ lc_seconds_in_day TYPE i VALUE 86400.
CATCH cx_sy_conversion_error.
CLEAR ep_value.
ENDTRY.
ENDMETHOD.</source>
<methodDocumentation/>
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="GET_FIELDCATALOG" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100816" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20100816" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20100816" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_T_FIELDCATALOG"/>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="GET_FIELDCATALOG" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100809" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100809" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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 " AUTHOR="FEMIA" CREATEDON="20100809" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_T_FIELDCATALOG"/>
<source>method GET_FIELDCATALOG.
DATA: lr_data TYPE REF TO data,
@ -522,11 +322,10 @@ ENDMETHOD.</source>
ENDLOOP.
endmethod.</source>
<methodDocumentation/>
</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="4 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<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="11 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<source>method NUMBER_TO_EXCEL_STRING.
DATA: lv_value_c TYPE c LENGTH 100.
@ -540,11 +339,10 @@ endmethod.</source>
CONCATENATE &apos;-&apos; ep_value INTO ep_value.
ENDIF.
endmethod.</source>
<methodDocumentation/>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHL01" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="9 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHL01" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="12 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<source>method SHL01.
DATA:
@ -561,11 +359,10 @@ endmethod.</source>
SET BIT 16 OF r_pwd_hash TO 0.
endmethod.</source>
<methodDocumentation/>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHR14" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="10 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20101127" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="SHR14" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="13 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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 " AUTHOR="FEMIA" CREATEDON="20101120" CHANGEDBY="FEMIA" CHANGEDON="20101215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_PWD_HASH"/>
<source>method SHR14.
DATA:
@ -589,11 +386,10 @@ endmethod.</source>
ENDDO.
endmethod.</source>
<methodDocumentation/>
</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="6 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" 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 " AUTHOR="BCUSER" CREATEDON="20100821" CHANGEDBY="BCUSER" CHANGEDON="20101211" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_VALUE"/>
<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="14 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101215" 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,
@ -604,6 +400,5 @@ endmethod.</source>
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>
<methodDocumentation/>
</method>
</CLAS>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_DATA_VALIDATION" VERSION="1" LANGU="E" DESCRIPT="Data validation" UUID="46923C4CA2A25223E1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<CLAS CLSNAME="ZCL_EXCEL_DATA_VALIDATION" VERSION="1" LANGU="E" DESCRIPT="Data validation" UUID="46923C4CA2A25223E1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100828" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<publicSection>class ZCL_EXCEL_DATA_VALIDATION definition
public
final
@ -11,13 +11,16 @@ public section.
type-pools ABAP .
data ALLOWBLANK type FLAG value &apos;X&apos;. &quot;#EC NOTEXT .
data CELL_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
data CELL_COLUMN_TO type ZEXCEL_CELL_COLUMN_ALPHA .
data CELL_ROW type ZEXCEL_CELL_ROW .
class-data C_TYPE_LIST type ZEXCEL_DATA_VAL_TYPE value &apos;list&apos;. &quot;#EC NOTEXT .
data CELL_ROW_TO type ZEXCEL_CELL_ROW .
constants C_CUSTOM type ZEXCEL_DATA_VAL_TYPE value &apos;custom&apos;. &quot;#EC NOTEXT
constants C_TYPE_LIST type ZEXCEL_DATA_VAL_TYPE value &apos;list&apos;. &quot;#EC NOTEXT
data SHOWERRORMESSAGE type FLAG value &apos;X&apos;. &quot;#EC NOTEXT .
data SHOWINPUTMESSAGE type FLAG value &apos;X&apos;. &quot;#EC NOTEXT .
data TYPE type ZEXCEL_DATA_VAL_TYPE .
data VALUE type ZEXCEL_VALIDATION_FORMULA1 .
data CELL_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
methods CONSTRUCTOR .</publicSection>
<protectedSection>*&quot;* protected components of class ZCL_EXCEL_DATA_VALIDATION
@ -36,15 +39,18 @@ private section.</privateSection>
*&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="1 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CELL_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="2" STATE="1" EDITORDER="8 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CELL_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="2" STATE="1" EDITORDER="2 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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="3 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" ATTDECLTYP="1" ATTVALUE="&apos;list&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="SHOWERRORMESSAGE" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="4 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="SHOWINPUTMESSAGE" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="5 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="TYPE" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="6 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="VALUE" VERSION="1" LANGU="E" DESCRIPT="Validation formula1" EXPOSURE="2" STATE="1" EDITORDER="7 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_VALIDATION_FORMULA1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100820" MTDTYPE="2" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="ALLOWBLANK" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100828" ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CELL_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="2" STATE="1" EDITORDER="2 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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="3 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="CELL_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="2" STATE="1" EDITORDER="4 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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="5 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="C_CUSTOM" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="6 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="2" ATTVALUE="&apos;custom&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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="7 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="2" ATTVALUE="&apos;list&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="SHOWERRORMESSAGE" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="8 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="SHOWINPUTMESSAGE" VERSION="1" LANGU="E" DESCRIPT="General Flag" EXPOSURE="2" STATE="1" EDITORDER="9 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="0" ATTVALUE="&apos;X&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="FLAG" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="TYPE" VERSION="1" LANGU="E" DESCRIPT="Data validation type" EXPOSURE="2" STATE="1" EDITORDER="10 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DATA_VAL_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DATA_VALIDATION" CMPNAME="VALUE" VERSION="1" LANGU="E" DESCRIPT="Validation formula1" EXPOSURE="2" STATE="1" EDITORDER="11 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20101221" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_VALIDATION_FORMULA1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100713" CHANGEDBY="FEMIA" CHANGEDON="20100828" MTDTYPE="2" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
type = me-&gt;c_type_list.

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" UUID="C1BF274C8A345F2DE1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="FEMIA" CREATEDON="20100628" CHANGEDBY="FEMIA" CHANGEDON="20101217" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_WORKSHEET" REFCLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" VERSION="1" EXPOSURE="2" STATE="1" AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" RELTYPE="1"/>
<implementing CLSNAME="ZCL_EXCEL_WORKSHEET" REFCLSNAME="ZIF_EXCEL_SHEET_PROTECTION" VERSION="1" EXPOSURE="2" STATE="1" AUTHOR="FEMIA" CREATEDON="20100921" CHANGEDBY="FEMIA" CHANGEDON="20101217" RELTYPE="1"/>
<publicSection>class ZCL_EXCEL_WORKSHEET definition
public
@ -11,6 +12,7 @@
public section.
type-pools ABAP .
interfaces ZIF_EXCEL_SHEET_PROPERTIES .
interfaces ZIF_EXCEL_SHEET_PROTECTION .
constants C_BREAK_COLUMN type ZEXCEL_BREAK value 2. &quot;#EC NOTEXT
@ -62,7 +64,9 @@ public section.
importing
!IP_TABLE type STANDARD TABLE
!IT_FIELD_CATALOG type ZEXCEL_T_FIELDCATALOG optional
!IS_TABLE_SETTINGS type ZEXCEL_S_TABLE_SETTINGS optional .
!IS_TABLE_SETTINGS type ZEXCEL_S_TABLE_SETTINGS optional
exporting
!ES_TABLE_SETTINGS type ZEXCEL_S_TABLE_SETTINGS .
methods CALCULATE_COLUMN_WIDTHS .
methods CONSTRUCTOR
importing
@ -409,6 +413,20 @@ endclass.</localTypes>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="TABLES" VERSION="1" LANGU="E" DESCRIPT="Colletion of tables" EXPOSURE="0" STATE="1" EDITORDER="24 " AUTHOR="FEMIA" CREATEDON="20100831" CHANGEDBY="FEMIA" CHANGEDON="20101217" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" EXPOSURE="0" STATE="1" EDITORDER="25 " AUTHOR="FEMIA" CREATEDON="20100629" CHANGEDBY="FEMIA" CHANGEDON="20101217" ATTDECLTYP="0" ATTVALUE="&apos;Worksheet&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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="26 " AUTHOR="FEMIA" CREATEDON="20100704" CHANGEDBY="FEMIA" CHANGEDON="20101217" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CELL_DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE">
<source>METHOD zif_excel_sheet_properties~get_style.
ep_style = zif_excel_sheet_properties~style.
ENDMETHOD.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_WORKSHEET" CPDNAME="ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE">
<source>method ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.
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.
@ -2550,6 +2568,7 @@ endmethod.</source>
<parameter CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="BIND_TABLE" SCONAME="IP_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100809" CHANGEDBY="FEMIA" CHANGEDON="20101217" 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 " AUTHOR="FEMIA" CREATEDON="20100809" CHANGEDBY="FEMIA" CHANGEDON="20101217" 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 " AUTHOR="FEMIA" CREATEDON="20100809" CHANGEDBY="FEMIA" CHANGEDON="20101217" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_TABLE_SETTINGS"/>
<source>METHOD bind_table.
DATA:
@ -2591,11 +2610,11 @@ endmethod.</source>
ls_settings-top_left_row = lc_top_left_row.
ENDIF.
if it_field_catalog is not supplied.
IF it_field_catalog IS NOT SUPPLIED.
lt_field_catalog = zcl_excel_common=&gt;get_fieldcatalog( ip_table = ip_table ).
else.
ELSE.
lt_field_catalog = it_field_catalog.
endif.
ENDIF.
CREATE OBJECT lo_table.
lo_table-&gt;settings = ls_settings.
@ -2677,6 +2696,11 @@ endmethod.</source>
&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.
es_table_settings-bottom_right_row = ls_settings-top_left_row + lv_rows + 1. &quot;Last rows
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="6 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20101112" CHANGEDBY="FEMIA" CHANGEDON="20101217" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
@ -2744,8 +2768,8 @@ endmethod.</source>
<method CLSNAME="ZCL_EXCEL_WORKSHEET" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100628" CHANGEDBY="FEMIA" CHANGEDON="20101217" MTDTYPE="2" MTDDECLTYP="0" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100828" CHANGEDBY="FEMIA" CHANGEDON="20101217" 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 " AUTHOR="FEMIA" CREATEDON="20100629" CHANGEDBY="FEMIA" CHANGEDON="20101217" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" PAROPTIONL="X"/>
<source>method CONSTRUCTOR.
DATA: lv_title TYPE ZEXCEL_SHEET_TITLE.
<source>METHOD constructor.
DATA: lv_title TYPE zexcel_sheet_title.
me-&gt;excel = ip_excel.
@ -2769,6 +2793,7 @@ endmethod.</source>
CREATE OBJECT tables.
CREATE OBJECT drawings.
me-&gt;zif_excel_sheet_protection~initialize( ).
me-&gt;zif_excel_sheet_properties~initialize( ).
CREATE OBJECT hyperlinks.
* initialize active cell coordinates
@ -2780,7 +2805,7 @@ endmethod.</source>
lower_cell-cell_column = 1.
upper_cell-cell_row = 1.
upper_cell-cell_column = 1.
endmethod.</source>
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="8 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100812" CHANGEDBY="FEMIA" CHANGEDON="20101217" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<source>method DELETE_MERGE.

View File

@ -1582,7 +1582,7 @@ endmethod.</source>
<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 " AUTHOR="FEMIA" CREATEDON="20100702" CHANGEDBY="FEMIA" CHANGEDON="20101206" 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 " AUTHOR="FEMIA" CREATEDON="20100702" CHANGEDBY="FEMIA" CHANGEDON="20101206" 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 " AUTHOR="FEMIA" CREATEDON="20100702" CHANGEDBY="FEMIA" CHANGEDON="20101206" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>method CREATE_XL_SHEET.
<source>METHOD create_xl_sheet.
** Constant node name
DATA: lc_xml_node_worksheet TYPE string VALUE &apos;worksheet&apos;,
@ -1720,38 +1720,39 @@ endmethod.</source>
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.
DATA: lv_value TYPE string,
t_range_merge TYPE string_table,
lv_merge TYPE string,
lv_column_p TYPE zexcel_cell_column_alpha,
lv_column TYPE zexcel_cell_column,
lv_flag TYPE c,
lt_percent_val TYPE TABLE OF string,
ls_percent_val TYPE string,
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,
lv_relation_id TYPE i VALUE 0.
DATA: default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime,
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,
t_range_merge TYPE string_table,
lv_merge TYPE string,
lv_column_p TYPE zexcel_cell_column_alpha,
lv_column TYPE zexcel_cell_column,
lv_style_guid TYPE zexcel_cell_style,
lv_flag TYPE c,
lt_percent_val TYPE TABLE OF string,
ls_percent_val TYPE string,
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,
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,
write_current_row TYPE boolean.
FIELD-SYMBOLS: &lt;ls_sheet_content&gt; TYPE zexcel_s_cell_data,
&lt;fs_range_merge&gt; LIKE LINE OF t_range_merge.
DATA: column_dimensions TYPE zexcel_t_worksheet_columndime.
FIELD-SYMBOLS: &lt;column_dimension&gt; LIKE LINE OF column_dimensions.
DATA: row_dimensions TYPE zexcel_t_worksheet_rowdimensio.
FIELD-SYMBOLS: &lt;row_dimension&gt; LIKE LINE OF row_dimensions.
DATA: outline_level_row TYPE i VALUE 0,
outline_level_col TYPE i VALUE 0.
DATA: col_count TYPE int4.
DATA: row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: write_current_row TYPE boolean.
&lt;fs_range_merge&gt; LIKE LINE OF t_range_merge,
&lt;column_dimension&gt; TYPE zexcel_s_worksheet_columndime,
&lt;row_dimension&gt; TYPE zexcel_s_worksheet_rowdimensio.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
lo_ixml = cl_ixml=&gt;create( ).
@ -1950,74 +1951,101 @@ endmethod.</source>
value = lv_value ).
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; sheetFormatPr node
&quot; cols node
IF NOT column_dimensions IS INITIAL.
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 ).
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
&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 ).
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_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.
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( ).
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_outlinelevel
&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( ).
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( ).
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; Style
lv_value = &lt;column_dimension&gt;-column_dimension-&gt;get_xf_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_style
value = lv_value ).
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; col node
ENDLOOP.
lo_element-&gt;append_child( new_child = lo_element_2 ). &quot; col node
ENDLOOP.
ELSE.
IF io_worksheet-&gt;zif_excel_sheet_properties~get_style( ) IS NOT INITIAL.
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.
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.
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
ENDIF.
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; cols node
ENDIF.
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; cols node
&quot; sheetData node
lo_element = lo_document-&gt;create_simple_element( name = lc_xml_node_sheetdata
parent = lo_document ).
@ -2128,6 +2156,84 @@ endmethod.</source>
ENDLOOP.
lo_element_root-&gt;append_child( new_child = lo_element ). &quot; sheetData node
IF io_worksheet-&gt;zif_excel_sheet_protection~protected EQ abap_true.
&quot; pageMargins 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; 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.
@ -2270,9 +2376,13 @@ endmethod.</source>
lo_element_2-&gt;set_attribute_ns( name = lc_xml_attr_showerrormessage
value = lv_value ).
lv_cell_row_s = lo_data_validation-&gt;cell_row.
SHIFT lv_cell_row_s RIGHT DELETING TRAILING space.
SHIFT lv_cell_row_s LEFT DELETING LEADING space.
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
@ -2306,83 +2416,6 @@ endmethod.</source>
ENDLOOP.
ENDIF.
IF io_worksheet-&gt;zif_excel_sheet_protection~protected EQ abap_true.
&quot; pageMargins 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.
* links
DATA: lv_hyperlinks_count TYPE i,
lo_link TYPE REF TO zcl_excel_hyperlink.
@ -2629,7 +2662,7 @@ endmethod.</source>
lo_renderer = lo_ixml-&gt;create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer-&gt;render( ).
endmethod.</source>
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="0" STATE="1" EDITORDER="11 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100705" CHANGEDBY="FEMIA" CHANGEDON="20101206" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20100831" CHANGEDBY="FEMIA" CHANGEDON="20101206" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-16"?>
<INTF CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" VERSION="1" LANGU="E" DESCRIPT="Sheet properties" UUID="555F104DDE80A933E1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" CHGDANYON="00000000" UNICODE="X" R3RELEASE="701">
<attribute CLSNAME="ZIF_EXCEL_SHEET_PROPERTIES" CMPNAME="STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" EXPOSURE="2" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDBY="FEMIA" CHANGEDON="20101221" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" 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 " AUTHOR="FEMIA" CREATEDON="20101221" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
</method>
</INTF>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100817" UNAM="FEMIA" UDAT="20101220" VERN="000030" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101220" STIME="214615" IDATE="20101220" ITIME="214615" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100817" UNAM="FEMIA" UDAT="20101221" VERN="000031" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101221" STIME="151127" IDATE="20101221" ITIME="151127" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Run all ABAP2XLSX Demo Programs" LENGTH="31 "/>
@ -57,5 +57,5 @@ START-OF-SELECTION.
SUBMIT zdemo_excel19 WITH p_path = p_path AND RETURN. &quot; Set active sheet
&quot; zdemo_excel20 is not added because it uses ALV and cannot be processed
SUBMIT zdemo_excel21 WITH p_path = p_path AND RETURN. &quot; Color Picker
SUBMIT zdemo_excel22 WITH p_path = p_path AND RETURN. &quot; Bind table with field catalog &amp; style</source>
SUBMIT zdemo_excel22 WITH p_path = p_path AND RETURN. &quot; Bind table with field catalog &amp; sheet style</source>
</PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL22" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20101220" UNAM="FEMIA" UDAT="20101220" VERN="000013" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101220" STIME="213947" IDATE="20101220" ITIME="213947" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL22" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20101220" UNAM="FEMIA" UDAT="20101221" VERN="000018" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101221" STIME="161716" IDATE="20101221" ITIME="161716" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export internal table" LENGTH="37 "/>
@ -20,12 +20,15 @@ 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_editable TYPE REF TO zcl_excel_style,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
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_table_settings TYPE zexcel_s_table_settings,
ls_table_settings_out TYPE zexcel_s_table_settings.
DATA: lv_file TYPE xstring,
lv_style_guid TYPE zexcel_cell_style,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
@ -33,7 +36,8 @@ 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.
lv_file_separator TYPE c,
lv_row TYPE char10.
FIELD-SYMBOLS: &lt;fs_field_catalog&gt; TYPE zexcel_s_fieldcatalog.
@ -48,7 +52,7 @@ AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
p_path = lv_workdir.
p_path = lv_workdir.
START-OF-SELECTION.
@ -68,10 +72,17 @@ START-OF-SELECTION.
DATA lt_test TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_test.
&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 = 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;capman&apos; ).
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.
@ -86,39 +97,52 @@ START-OF-SELECTION.
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;.
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;.
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;.
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-&gt;get_guid( ).
when &apos;PRICE&apos;.
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.
WHEN OTHERS.
&lt;fs_field_catalog&gt;-dynpfld = abap_false.
endcase.
endloop.
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( ip_table = lt_test
it_field_catalog = lt_field_catalog
is_table_settings = ls_table_settings ).
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_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;value.
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 OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).

View File

@ -1,9 +1,11 @@
<?xml version="1.0" encoding="utf-16"?>
<TABL TABNAME="ZEXCEL_S_TABLE_SETTINGS" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Excel table binding settings" AUTHCLASS="00" AS4USER="BCUSER" AS4DATE="20100830" AS4TIME="123625" PROZPUFF="000" EXCLASS="1">
<TABL TABNAME="ZEXCEL_S_TABLE_SETTINGS" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Excel table binding settings" AUTHCLASS="00" AS4USER="FEMIA" AS4DATE="20101221" AS4TIME="154758" PROZPUFF="000" EXCLASS="1">
<dd09l AS4VERS="0000" SCHFELDANZ="000" AS4DATE="00000000" AS4TIME="000000"/>
<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"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="TOP_LEFT_COLUMN" DDLANGUAGE="E" POSITION="0002" ROLLNAME="ZEXCEL_CELL_COLUMN_ALPHA" ADMINFIELD="0" INTTYPE="C" INTLEN="000004" DOMNAME="CHAR2" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="CHAR2" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="TOP_LEFT_ROW" 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"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="SHOW_ROW_STRIPES" 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"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="SHOW_COLUMN_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"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="BOTTOM_RIGHT_COLUMN" DDLANGUAGE="E" POSITION="0006" ROLLNAME="ZEXCEL_CELL_COLUMN_ALPHA" ADMINFIELD="0" INTTYPE="C" INTLEN="000004" DOMNAME="CHAR2" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DTELMASTER="E" DATATYPE="CHAR" LENG="000002" OUTPUTLEN="000002" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" DOMNAME3L="CHAR2" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000"/>
<dd03p TABNAME="ZEXCEL_S_TABLE_SETTINGS" FIELDNAME="BOTTOM_RIGHT_ROW" DDLANGUAGE="E" POSITION="0007" 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"/>
</TABL>