Implemented Fix by Shahrin Shahrulzaman to add support for named rages for the Excel 2007 Reader #126

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@230 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Gregor Wolf 2011-12-15 21:32:29 +00:00
parent b146c57818
commit e239953895
2 changed files with 1118 additions and 1115 deletions

View File

@ -1,90 +1,99 @@
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_RANGE" VERSION="1" LANGU="E" DESCRIPT="Worksheet" UUID="1151494D16947660E1000000C0A8FA28" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="FEMIA" CREATEDON="20100628" CHANGEDON="00000000" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<publicSection>class ZCL_EXCEL_RANGE definition
public
final
create public .
*&quot;* public components of class ZCL_EXCEL_RANGE
*&quot;* do not include other source files here!!!
public section.
data NAME type ZEXCEL_RANGE_NAME .
data GUID type ZEXCEL_RANGE_GUID .
methods CONSTRUCTOR .
methods GET_GUID
returning
value(EP_GUID) type ZEXCEL_RANGE_GUID .
methods SET_VALUE
importing
!IP_SHEET_NAME type ZEXCEL_SHEET_TITLE
!IP_START_ROW type ZEXCEL_CELL_ROW
!IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA
!IP_STOP_ROW type ZEXCEL_CELL_ROW
!IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
methods GET_VALUE
returning
value(EP_VALUE) type ZEXCEL_RANGE_VALUE .</publicSection>
<protectedSection>*&quot;* protected components of class ZABAP_EXCEL_WORKSHEET
*&quot;* do not include other source files here!!!
protected section.</protectedSection>
<privateSection>*&quot;* private components of class ZCL_EXCEL_RANGE
*&quot;* do not include other source files here!!!
private section.
data VALUE type ZEXCEL_RANGE_VALUE .</privateSection>
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes</localImplementation>
<localTypes>*&quot;* use this source file for any type declarations (class
*&quot;* definitions, interfaces or data types) you need for method
*&quot;* implementation or private method&apos;s signature</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GUID" VERSION="1" LANGU="E" DESCRIPT="GUID for the OLTP System (RAW16)" EXPOSURE="2" STATE="1" EDITORDER="2 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_GUID" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="NAME" VERSION="1" LANGU="E" DESCRIPT="Range Name" EXPOSURE="2" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" EXPOSURE="0" STATE="1" EDITORDER="3 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="701" TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" MTDTYPE="2" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_GUID" VERSION="1" LANGU="E" DESCRIPT="Get Guid" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="GUID for the OLTP System (RAW16)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_GUID"/>
<source>method GET_GUID.
ep_guid = me-&gt;guid.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_VALUE" VERSION="1" LANGU="E" DESCRIPT="Get value" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_VALUE" SCONAME="EP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE"/>
<source>method GET_VALUE.
ep_value = me-&gt;value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" VERSION="1" LANGU="E" DESCRIPT="Set Range value" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_SHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_START_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_START_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_STOP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_STOP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110205" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<source>method SET_VALUE.
DATA: lv_start_row_c TYPE char7,
lv_stop_row_c TYPE char7,
lv_value TYPE string.
lv_stop_row_c = ip_stop_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_start_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
lv_value = ip_sheet_name.
me-&gt;value = zcl_excel_common=&gt;escape_string( ip_value = lv_value ).
CONCATENATE me-&gt;value &apos;!$&apos; ip_start_column &apos;$&apos; lv_start_row_c &apos;:$&apos; ip_stop_column &apos;$&apos; lv_stop_row_c INTO me-&gt;value.
endmethod.</source>
</method>
</CLAS>
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_RANGE" VERSION="1" LANGU="E" DESCRIPT="Worksheet" UUID="1151494D16947660E1000000C0A8FA28" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="FEMIA" CREATEDON="20100628" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="702" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<publicSection>class ZCL_EXCEL_RANGE definition
public
final
create public .
*&quot;* public components of class ZCL_EXCEL_RANGE
*&quot;* do not include other source files here!!!
public section.
data NAME type ZEXCEL_RANGE_NAME .
data GUID type ZEXCEL_RANGE_GUID .
methods CONSTRUCTOR .
methods GET_GUID
returning
value(EP_GUID) type ZEXCEL_RANGE_GUID .
methods SET_VALUE
importing
!IP_SHEET_NAME type ZEXCEL_SHEET_TITLE
!IP_START_ROW type ZEXCEL_CELL_ROW
!IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA
!IP_STOP_ROW type ZEXCEL_CELL_ROW
!IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
methods GET_VALUE
returning
value(EP_VALUE) type ZEXCEL_RANGE_VALUE .
methods SET_RANGE_VALUE
importing
!IP_VALUE type ZEXCEL_RANGE_VALUE .</publicSection>
<protectedSection>*&quot;* protected components of class ZABAP_EXCEL_WORKSHEET
*&quot;* do not include other source files here!!!
protected section.</protectedSection>
<privateSection>*&quot;* private components of class ZCL_EXCEL_RANGE
*&quot;* do not include other source files here!!!
private section.
data VALUE type ZEXCEL_RANGE_VALUE .</privateSection>
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes</localImplementation>
<localTypes>*&quot;* use this source file for any type declarations (class
*&quot;* definitions, interfaces or data types) you need for method
*&quot;* implementation or private method&apos;s signature</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GUID" VERSION="1" LANGU="E" DESCRIPT="GUID for the OLTP System (RAW16)" EXPOSURE="2" STATE="1" EDITORDER="2 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_GUID" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="NAME" VERSION="1" LANGU="E" DESCRIPT="Range Name" EXPOSURE="2" STATE="1" EDITORDER="1 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_NAME" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" EXPOSURE="0" STATE="1" EDITORDER="3 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" MTDTYPE="2" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<source>method CONSTRUCTOR.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_GUID" VERSION="1" LANGU="E" DESCRIPT="Get Guid" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="GUID for the OLTP System (RAW16)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_GUID"/>
<source>method GET_GUID.
ep_guid = me-&gt;guid.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_VALUE" VERSION="1" LANGU="E" DESCRIPT="Get value" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="GET_VALUE" SCONAME="EP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE"/>
<source>method GET_VALUE.
ep_value = me-&gt;value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_RANGE_VALUE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " AUTHOR="DEVELOPER" CREATEDON="20111215" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_RANGE_VALUE" SCONAME="IP_VALUE" VERSION="1" LANGU="E" DESCRIPT="Cell Value" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="DEVELOPER" CREATEDON="20111215" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_RANGE_VALUE"/>
<source>method SET_RANGE_VALUE.
me-&gt;value = ip_value.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" VERSION="1" LANGU="E" DESCRIPT="Set Range value" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_SHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_START_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_START_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_STOP_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_RANGE" CMPNAME="SET_VALUE" SCONAME="IP_STOP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " AUTHOR="BCUSER" CREATEDON="20101212" CHANGEDBY="DEVELOPER" CHANGEDON="20111215" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<source>method SET_VALUE.
DATA: lv_start_row_c TYPE char7,
lv_stop_row_c TYPE char7,
lv_value TYPE string.
lv_stop_row_c = ip_stop_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_start_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
lv_value = ip_sheet_name.
me-&gt;value = zcl_excel_common=&gt;escape_string( ip_value = lv_value ).
CONCATENATE me-&gt;value &apos;!$&apos; ip_start_column &apos;$&apos; lv_start_row_c &apos;:$&apos; ip_stop_column &apos;$&apos; lv_stop_row_c INTO me-&gt;value.
endmethod.</source>
</method>
</CLAS>

File diff suppressed because it is too large Load Diff