mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 05:46:35 +08:00

Basically only the size was miscalulated. Added new method to Drawing class to convert from emu to pixel and use this on reading a drawing. Probable still not working when using different dpi then standard - but I have to see this before I can tackle it.
647 lines
41 KiB
XML
647 lines
41 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<CLAS CLSNAME="ZCL_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " ZSAPLINK_PLUGIN_MAJOR_VERSION="0 " ZSAPLINK_PLUGIN_MINOR_VERSION="1 " ZSAPLINK_PLUGIN_BUILD_VERSION="0 " ZSAPLINK_PLUGIN_INFO1="ZSAPLINK_CLASS is part of the main ZSAPLINK project --> This plugin found there instead of ZSAPLINK_PLUGINS projects" ZSAPLINK_PLUGIN_INFO2="SAPLINK homepage: https://www.assembla.com/spaces/saplink/wiki" ZSAPLINK_PLUGIN_INFO3="Download from https://www.assembla.com/code/saplink/subversion/nodes" ZSAPLINK_PLUGIN_INFO4="and navigate to: trunk -> core -> ZSAPLINK -> CLAS -> ZSAPLINK_CLASS.slnk">
|
|
<implementing CLSNAME="ZCL_EXCEL" REFCLSNAME="ZIF_EXCEL_BOOK_VBA_PROJECT" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
|
|
<implementing CLSNAME="ZCL_EXCEL" REFCLSNAME="ZIF_EXCEL_BOOK_PROTECTION" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
|
|
<implementing CLSNAME="ZCL_EXCEL" REFCLSNAME="ZIF_EXCEL_BOOK_PROPERTIES" VERSION="1" EXPOSURE="2" STATE="1" RELTYPE="1" EDITORDER="0 "/>
|
|
<localImplementation>*"* local class implementation for public class
|
|
*"* use this source file for the implementation part of
|
|
*"* local helper classes</localImplementation>
|
|
<localTypes>*"* use this source file for any type declarations (class
|
|
*"* definitions, interfaces or data types) you need for method
|
|
*"* implementation or private method's signature</localTypes>
|
|
<localMacros>*"* use this source file for any macro definitions you need
|
|
*"* in the implementation part of the class</localMacros>
|
|
<localTestClasses>CLASS zcl_tc_excel DEFINITION DEFERRED.
|
|
CLASS zcl_excel DEFINITION LOCAL FRIENDS zcl_tc_excel.
|
|
|
|
*----------------------------------------------------------------------*
|
|
* CLASS zcl_Tc_Excel DEFINITION
|
|
*----------------------------------------------------------------------*
|
|
*
|
|
*----------------------------------------------------------------------*
|
|
CLASS zcl_tc_excel DEFINITION FOR TESTING
|
|
DURATION SHORT
|
|
RISK LEVEL HARMLESS
|
|
.
|
|
*?<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
*?<asx:values>
|
|
*?<TESTCLASS_OPTIONS>
|
|
*?<TEST_CLASS>zcl_Tc_Excel
|
|
*?</TEST_CLASS>
|
|
*?<TEST_MEMBER>f_Cut
|
|
*?</TEST_MEMBER>
|
|
*?<OBJECT_UNDER_TEST>ZCL_EXCEL
|
|
*?</OBJECT_UNDER_TEST>
|
|
*?<OBJECT_IS_LOCAL/>
|
|
*?<GENERATE_FIXTURE>X
|
|
*?</GENERATE_FIXTURE>
|
|
*?<GENERATE_CLASS_FIXTURE>X
|
|
*?</GENERATE_CLASS_FIXTURE>
|
|
*?<GENERATE_INVOCATION>X
|
|
*?</GENERATE_INVOCATION>
|
|
*?<GENERATE_ASSERT_EQUAL>X
|
|
*?</GENERATE_ASSERT_EQUAL>
|
|
*?</TESTCLASS_OPTIONS>
|
|
*?</asx:values>
|
|
*?</asx:abap>
|
|
PRIVATE SECTION.
|
|
* ================
|
|
DATA:
|
|
f_cut TYPE REF TO zcl_excel. "class under test
|
|
|
|
CLASS-METHODS: class_setup.
|
|
CLASS-METHODS: class_teardown.
|
|
METHODS: setup.
|
|
METHODS: teardown.
|
|
METHODS: create_empty_excel FOR TESTING.
|
|
|
|
ENDCLASS. "zcl_Tc_Excel
|
|
|
|
|
|
*----------------------------------------------------------------------*
|
|
* CLASS zcl_Tc_Excel IMPLEMENTATION
|
|
*----------------------------------------------------------------------*
|
|
*
|
|
*----------------------------------------------------------------------*
|
|
CLASS zcl_tc_excel IMPLEMENTATION.
|
|
* ==================================
|
|
|
|
METHOD class_setup.
|
|
* ===================
|
|
|
|
|
|
ENDMETHOD. "class_Setup
|
|
|
|
|
|
METHOD class_teardown.
|
|
* ======================
|
|
|
|
|
|
ENDMETHOD. "class_Teardown
|
|
|
|
|
|
METHOD setup.
|
|
* =============
|
|
|
|
CREATE OBJECT f_cut.
|
|
ENDMETHOD. "setup
|
|
|
|
|
|
METHOD teardown.
|
|
* ================
|
|
|
|
|
|
ENDMETHOD. "teardown
|
|
|
|
*// START TEST METHODS
|
|
|
|
METHOD create_empty_excel.
|
|
* ==================================
|
|
|
|
DATA: lv_count TYPE i.
|
|
lv_count = f_cut->get_worksheets_size( ).
|
|
|
|
cl_abap_unit_assert=>assert_equals( act = lv_count
|
|
exp = 1
|
|
msg = 'Testing number of sheet'
|
|
level = if_aunit_constants=>tolerable ).
|
|
ENDMETHOD. "create_empty_excel
|
|
|
|
*// END TEST METHODS
|
|
|
|
|
|
ENDCLASS. "zcl_Tc_Excel</localTestClasses>
|
|
<textPool>
|
|
<language SPRAS="E">
|
|
<textElement ID="I" KEY="001" ENTRY="Worksheet not existing" LENGTH="30 "/>
|
|
<textElement ID="I" KEY="002" ENTRY="Deleting last remaining worksheet is not allowed" LENGTH="60 "/>
|
|
</language>
|
|
</textPool>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="Autofilters collection" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTERS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="CHARTS" VERSION="1" LANGU="E" DESCRIPT="Charts collection" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWINGS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="DEFAULT_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" EXPOSURE="0" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="DRAWINGS" VERSION="1" LANGU="E" DESCRIPT="Worksheets collection" EXPOSURE="0" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWINGS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="LEGACY_PALETTE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTRDONLY="X" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_LEGACY_PALETTE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="RANGES" VERSION="1" LANGU="E" DESCRIPT="Ranges collection" EXPOSURE="0" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="SECURITY" VERSION="1" LANGU="E" DESCRIPT="Security" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_SECURITY" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="STYLES" VERSION="1" LANGU="E" DESCRIPT="Styles collection" EXPOSURE="0" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="T_STYLEMAPPING1" VERSION="1" LANGU="E" DESCRIPT="Stylemapping: Values -> GUID" EXPOSURE="0" STATE="1" EDITORDER="8 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLEMAPPING1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="T_STYLEMAPPING2" VERSION="1" LANGU="E" DESCRIPT="Stylemapping: GUID -> Values" EXPOSURE="0" STATE="1" EDITORDER="9 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_STYLEMAPPING2" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="USE_TEMPLATE" VERSION="1" LANGU="E" DESCRIPT="Checkbox" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XFELD" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="VERSION" VERSION="1" LANGU="E" DESCRIPT="abap2xlsx version" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="'7.0.3'" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR10" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL" CMPNAME="WORKSHEETS" VERSION="1" LANGU="E" DESCRIPT="Worksheets collection" EXPOSURE="1" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEETS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE">
|
|
<source>METHOD zif_excel_book_properties~initialize.
|
|
DATA: lv_timestamp TYPE timestampl.
|
|
|
|
me->zif_excel_book_properties~application = 'Microsoft Excel'.
|
|
me->zif_excel_book_properties~appversion = '12.0000'.
|
|
|
|
GET TIME STAMP FIELD lv_timestamp.
|
|
me->zif_excel_book_properties~created = lv_timestamp.
|
|
me->zif_excel_book_properties~creator = sy-uname.
|
|
me->zif_excel_book_properties~description = zcl_excel=>version.
|
|
me->zif_excel_book_properties~modified = lv_timestamp.
|
|
me->zif_excel_book_properties~lastmodifiedby = sy-uname.
|
|
ENDMETHOD.</source>
|
|
</interfaceMethod>
|
|
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE">
|
|
<source>method ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.
|
|
me->zif_excel_book_protection~protected = zif_excel_book_protection=>c_unprotected.
|
|
me->zif_excel_book_protection~lockrevision = zif_excel_book_protection=>c_unlocked.
|
|
me->zif_excel_book_protection~lockstructure = zif_excel_book_protection=>c_unlocked.
|
|
me->zif_excel_book_protection~lockwindows = zif_excel_book_protection=>c_unlocked.
|
|
CLEAR me->zif_excel_book_protection~workbookpassword.
|
|
CLEAR me->zif_excel_book_protection~revisionspassword.
|
|
endmethod.</source>
|
|
</interfaceMethod>
|
|
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME">
|
|
<source>method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.
|
|
me->zif_excel_book_vba_project~codename = ip_codename.
|
|
endmethod.</source>
|
|
</interfaceMethod>
|
|
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR">
|
|
<source>method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.
|
|
me->zif_excel_book_vba_project~codename_pr = ip_codename_pr.
|
|
endmethod.</source>
|
|
</interfaceMethod>
|
|
<interfaceMethod CLSNAME="ZCL_EXCEL" CPDNAME="ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT">
|
|
<source>method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.
|
|
me->zif_excel_book_vba_project~vbaproject = ip_vbaproject.
|
|
endmethod.</source>
|
|
</interfaceMethod>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Create a new autofilter" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_AUTOFILTER" SCONAME="IO_SHEET" VERSION="1" LANGU="E" DESCRIPT="Sheet GUID for the OLTP System (RAW16)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_AUTOFILTER" SCONAME="RO_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTER"/>
|
|
<exception CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_AUTOFILTER" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
|
<source>METHOD add_new_autofilter.
|
|
* Check for autofilter reference: new or overwrite; only one per sheet
|
|
ro_autofilter = autofilters->add( io_sheet ) .
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Create a new drawing" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_DRAWING" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" PARVALUE="ZCL_EXCEL_DRAWING=>TYPE_IMAGE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_DRAWING" SCONAME="IP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE" PAROPTIONL="X"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_DRAWING" SCONAME="EO_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Drawing" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_DRAWING"/>
|
|
<source>method ADD_NEW_DRAWING.
|
|
DATA: lv_guid TYPE guid_16.
|
|
* Create default blank worksheet
|
|
CREATE OBJECT eo_drawing
|
|
EXPORTING
|
|
ip_type = ip_type
|
|
ip_title = ip_title.
|
|
|
|
CASE ip_type.
|
|
WHEN 'image'.
|
|
drawings->add( eo_drawing ).
|
|
WHEN 'chart'.
|
|
charts->add( eo_drawing ).
|
|
ENDCASE.
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_RANGE" VERSION="1" LANGU="E" DESCRIPT="Create a new range" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_RANGE" SCONAME="EO_RANGE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_RANGE"/>
|
|
<source>method ADD_NEW_RANGE.
|
|
* Create default blank range
|
|
CREATE OBJECT eo_range.
|
|
ranges->add( eo_range ).
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_STYLE" VERSION="1" LANGU="E" DESCRIPT="Create a new style" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_STYLE" SCONAME="IP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE" PAROPTIONL="X"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_STYLE" SCONAME="EO_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
|
|
<source>method ADD_NEW_STYLE.
|
|
* Start of deletion # issue 139 - Dateretention of cellstyles
|
|
* CREATE OBJECT eo_style.
|
|
* styles->add( eo_style ).
|
|
* End of deletion # issue 139 - Dateretention of cellstyles
|
|
* Start of insertion # issue 139 - Dateretention of cellstyles
|
|
* Create default style
|
|
CREATE OBJECT eo_style
|
|
EXPORTING
|
|
ip_guid = ip_guid.
|
|
styles->add( eo_style ).
|
|
|
|
DATA: style2 TYPE zexcel_s_stylemapping.
|
|
* Copy to new representations
|
|
style2 = stylemapping_dynamic_style( eo_style ).
|
|
INSERT style2 INTO TABLE t_stylemapping1.
|
|
INSERT style2 INTO TABLE t_stylemapping2.
|
|
* End of insertion # issue 139 - Dateretention of cellstyles
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Create a new worksheet" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_WORKSHEET" SCONAME="IP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" PAROPTIONL="X"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_WORKSHEET" SCONAME="EO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
|
<exception CLSNAME="ZCL_EXCEL" CMPNAME="ADD_NEW_WORKSHEET" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
|
<source>method ADD_NEW_WORKSHEET.
|
|
DATA: lv_guid TYPE guid_16.
|
|
|
|
* Create default blank worksheet
|
|
CREATE OBJECT eo_worksheet
|
|
EXPORTING
|
|
ip_excel = me
|
|
ip_title = ip_title.
|
|
|
|
worksheets->add( eo_worksheet ).
|
|
worksheets->active_worksheet = worksheets->size( ).
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="ADD_STATIC_STYLES" VERSION="1" LANGU="E" DESCRIPT="Add static styles to styles iterator" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<source>METHOD add_static_styles.
|
|
" # issue 139
|
|
FIELD-SYMBOLS: <style1> LIKE LINE OF t_stylemapping1,
|
|
<style2> LIKE LINE OF t_stylemapping2.
|
|
DATA: style TYPE REF TO zcl_excel_style.
|
|
|
|
LOOP AT me->t_stylemapping1 ASSIGNING <style1> WHERE added_to_iterator IS INITIAL.
|
|
READ TABLE me->t_stylemapping2 ASSIGNING <style2> WITH TABLE KEY guid = <style1>-guid.
|
|
CHECK sy-subrc = 0. " Should always be true since these tables are being filled parallel
|
|
|
|
style = me->add_new_style( <style1>-guid ).
|
|
|
|
zcl_excel_common=>recursive_struct_to_class( EXPORTING i_source = <style1>-complete_style
|
|
i_sourcex = <style1>-complete_stylex
|
|
CHANGING e_target = style ).
|
|
|
|
ENDLOOP.
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<source>method CONSTRUCTOR.
|
|
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
|
lo_style TYPE REF TO zcl_excel_style.
|
|
|
|
* Inizialize instance objects
|
|
CREATE OBJECT security.
|
|
CREATE OBJECT worksheets.
|
|
CREATE OBJECT ranges.
|
|
CREATE OBJECT styles.
|
|
CREATE OBJECT drawings
|
|
EXPORTING
|
|
ip_type = zcl_excel_drawing=>type_image.
|
|
CREATE OBJECT charts
|
|
EXPORTING
|
|
ip_type = zcl_excel_drawing=>type_chart.
|
|
CREATE OBJECT legacy_palette.
|
|
CREATE OBJECT autofilters.
|
|
|
|
me->zif_excel_book_protection~initialize( ).
|
|
me->zif_excel_book_properties~initialize( ).
|
|
|
|
me->add_new_worksheet( ).
|
|
me->add_new_style( ). " Standard style
|
|
lo_style = me->add_new_style( ). " Standard style with fill gray125
|
|
lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_pattern_gray125.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="DELETE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Delete worksheet" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="DELETE_WORKSHEET" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
|
<exception CLSNAME="ZCL_EXCEL" CMPNAME="DELETE_WORKSHEET" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
|
<source>METHOD delete_worksheet.
|
|
|
|
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
|
l_size TYPE i,
|
|
lv_errormessage TYPE string.
|
|
|
|
l_size = get_worksheets_size( ).
|
|
IF l_size = 1. " Only 1 worksheet left --> check whether this is the worksheet to be deleted
|
|
lo_worksheet = me->get_worksheet_by_index( 1 ).
|
|
IF lo_worksheet = io_worksheet.
|
|
lv_errormessage = 'Deleting last remaining worksheet is not allowed'(002).
|
|
RAISE EXCEPTION TYPE zcx_excel
|
|
EXPORTING
|
|
error = lv_errormessage.
|
|
ENDIF.
|
|
ENDIF.
|
|
|
|
me->worksheets->remove( io_worksheet ).
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="DELETE_WORKSHEET_BY_INDEX" VERSION="1" LANGU="E" DESCRIPT="Delete worksheet by index" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="DELETE_WORKSHEET_BY_INDEX" SCONAME="IV_INDEX" VERSION="1" LANGU="E" DESCRIPT="Index of worksheet to delete" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="NUMERIC"/>
|
|
<source>METHOD delete_worksheet_by_index.
|
|
|
|
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
|
lv_errormessage TYPE string.
|
|
|
|
lo_worksheet = me->get_worksheet_by_index( iv_index ).
|
|
IF lo_worksheet IS NOT BOUND.
|
|
lv_errormessage = 'Worksheet not existing'(001).
|
|
RAISE EXCEPTION TYPE zcx_excel
|
|
EXPORTING
|
|
error = lv_errormessage.
|
|
ENDIF.
|
|
me->delete_worksheet( lo_worksheet ).
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="DELETE_WORKSHEET_BY_NAME" VERSION="1" LANGU="E" DESCRIPT="Delete worksheet by name" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="DELETE_WORKSHEET_BY_NAME" SCONAME="IV_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title of worksheet to delete" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
|
|
<source>METHOD delete_worksheet_by_name.
|
|
|
|
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
|
lv_errormessage TYPE string.
|
|
|
|
lo_worksheet = me->get_worksheet_by_name( iv_title ).
|
|
IF lo_worksheet IS NOT BOUND.
|
|
lv_errormessage = 'Worksheet not existing'(001).
|
|
RAISE EXCEPTION TYPE zcx_excel
|
|
EXPORTING
|
|
error = lv_errormessage.
|
|
ENDIF.
|
|
me->delete_worksheet( lo_worksheet ).
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_ACTIVE_SHEET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Get active worksheet index" EXPOSURE="2" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_ACTIVE_SHEET_INDEX" SCONAME="R_ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
|
|
<source>method GET_ACTIVE_SHEET_INDEX.
|
|
r_active_worksheet = me->worksheets->active_worksheet.
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Get active worksheet" EXPOSURE="2" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_ACTIVE_WORKSHEET" SCONAME="EO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
|
<source>method GET_ACTIVE_WORKSHEET.
|
|
|
|
eo_worksheet = me->worksheets->get( me->worksheets->active_worksheet ).
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_AUTOFILTERS_REFERENCE" VERSION="1" LANGU="E" DESCRIPT="Get filter reference" EXPOSURE="2" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_AUTOFILTERS_REFERENCE" SCONAME="RO_AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="Autofilters collection" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTERS"/>
|
|
<source>method GET_AUTOFILTERS_REFERENCE.
|
|
|
|
ro_autofilters = autofilters.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_DEFAULT_STYLE" VERSION="1" LANGU="E" DESCRIPT="Get default style" EXPOSURE="2" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_DEFAULT_STYLE" SCONAME="EP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
|
|
<source>method GET_DEFAULT_STYLE.
|
|
ep_style = me->default_style.
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_DRAWINGS_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get drawing iterator" EXPOSURE="2" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_DRAWINGS_ITERATOR" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_DRAWINGS_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
|
|
<source>method GET_DRAWINGS_ITERATOR.
|
|
|
|
CASE ip_type.
|
|
WHEN zcl_excel_drawing=>type_image.
|
|
eo_iterator = me->drawings->get_iterator( ).
|
|
WHEN zcl_excel_drawing=>type_chart.
|
|
eo_iterator = me->charts->get_iterator( ).
|
|
WHEN OTHERS.
|
|
ENDCASE.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_NEXT_TABLE_ID" VERSION="1" LANGU="E" DESCRIPT="Get table ID unique across sheets" EXPOSURE="2" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_NEXT_TABLE_ID" SCONAME="EP_ID" VERSION="1" LANGU="E" DESCRIPT="ID" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
|
|
<source>method GET_NEXT_TABLE_ID.
|
|
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
|
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
|
lv_tables_count TYPE i.
|
|
|
|
lo_iterator = me->get_worksheets_iterator( ).
|
|
WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true.
|
|
lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ).
|
|
|
|
lv_tables_count = lo_worksheet->get_tables_size( ).
|
|
ADD lv_tables_count TO ep_id.
|
|
|
|
ENDWHILE.
|
|
|
|
ADD 1 TO ep_id.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_RANGES_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get ranges iterator" EXPOSURE="2" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_RANGES_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
|
|
<source>method GET_RANGES_ITERATOR.
|
|
|
|
eo_iterator = me->ranges->get_iterator( ).
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_STATIC_CELLSTYLE_GUID" VERSION="1" LANGU="E" DESCRIPT="Get GUID for static cellstyle" EXPOSURE="2" STATE="1" EDITORDER="18 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STATIC_CELLSTYLE_GUID" SCONAME="IP_CSTYLE_COMPLETE" VERSION="1" LANGU="E" DESCRIPT="Values for Cellstyles ( 1 structure holds all )" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLE_COMPLETE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STATIC_CELLSTYLE_GUID" SCONAME="IP_CSTYLEX_COMPLETE" VERSION="1" LANGU="E" DESCRIPT="Changeflag for Cellstyles ( 1 structure holds all )" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CSTYLEX_COMPLETE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STATIC_CELLSTYLE_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
|
|
<source>METHOD get_static_cellstyle_guid.
|
|
" # issue 139
|
|
DATA: style LIKE LINE OF me->t_stylemapping1.
|
|
|
|
READ TABLE me->t_stylemapping1 INTO style
|
|
WITH TABLE KEY dynamic_style_guid = style-guid " no dynamic style --> look for initial guid here
|
|
complete_style = ip_cstyle_complete
|
|
complete_stylex = ip_cstylex_complete.
|
|
IF sy-subrc <> 0.
|
|
style-complete_style = ip_cstyle_complete.
|
|
style-complete_stylex = ip_cstylex_complete.
|
|
* CALL FUNCTION 'GUID_CREATE' " del issue #379 - function is outdated in newer releases
|
|
* IMPORTING
|
|
* ev_guid_16 = style-guid.
|
|
style-guid = zcl_excel_obsolete_func_wrap=>guid_create( ). " ins issue #379 - replacement for outdated function call
|
|
INSERT style INTO TABLE me->t_stylemapping1.
|
|
INSERT style INTO TABLE me->t_stylemapping2.
|
|
|
|
ENDIF.
|
|
|
|
ep_guid = style-guid.
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLES_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get styles iterator" EXPOSURE="2" STATE="1" EDITORDER="19 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLES_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
|
|
<source>method GET_STYLES_ITERATOR.
|
|
|
|
eo_iterator = me->styles->get_iterator( ).
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_INDEX_IN_STYLES" VERSION="1" LANGU="E" DESCRIPT="Get index of style in styles" EXPOSURE="2" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_INDEX_IN_STYLES" SCONAME="IP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_INDEX_IN_STYLES" SCONAME="EP_INDEX" VERSION="1" LANGU="E" DESCRIPT="Index of Internal Tables" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="SYTABIX"/>
|
|
<exception CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_INDEX_IN_STYLES" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
|
<source>method GET_STYLE_INDEX_IN_STYLES.
|
|
DATA: index TYPE syindex.
|
|
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
|
|
lo_style TYPE REF TO zcl_excel_style.
|
|
|
|
CHECK ip_guid IS NOT INITIAL.
|
|
|
|
|
|
lo_iterator = me->get_styles_iterator( ).
|
|
WHILE lo_iterator->has_next( ) = 'X'.
|
|
ADD 1 TO index.
|
|
lo_style ?= lo_iterator->get_next( ).
|
|
IF lo_style->get_guid( ) = ip_guid.
|
|
ep_index = index.
|
|
EXIT.
|
|
ENDIF.
|
|
ENDWHILE.
|
|
|
|
IF ep_index IS INITIAL.
|
|
RAISE EXCEPTION TYPE zcx_excel
|
|
EXPORTING
|
|
error = 'Index not found'.
|
|
else.
|
|
SUBTRACT 1 from ep_index. " In excel list starts with "0"
|
|
ENDIF.
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_TO_GUID" VERSION="1" LANGU="E" DESCRIPT="Get style(structure) for guid" EXPOSURE="2" STATE="1" EDITORDER="21 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_TO_GUID" SCONAME="IP_GUID" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_TO_GUID" SCONAME="EP_STYLEMAPPING" VERSION="1" LANGU="E" DESCRIPT="Stypemapping" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLEMAPPING"/>
|
|
<exception CLSNAME="ZCL_EXCEL" CMPNAME="GET_STYLE_TO_GUID" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
|
<source>method GET_STYLE_TO_GUID.
|
|
" # issue 139
|
|
|
|
READ TABLE me->t_stylemapping2 INTO ep_stylemapping WITH TABLE KEY guid = ip_guid.
|
|
IF sy-subrc <> 0.
|
|
RAISE EXCEPTION TYPE zcx_excel
|
|
EXPORTING
|
|
error = 'GUID not found'.
|
|
ENDIF.
|
|
|
|
IF ep_stylemapping-dynamic_style_guid IS NOT INITIAL.
|
|
zcl_excel_common=>recursive_class_to_struct( EXPORTING i_source = ep_stylemapping-cl_style
|
|
CHANGING e_target = ep_stylemapping-complete_style
|
|
e_targetx = ep_stylemapping-complete_stylex ).
|
|
ENDIF.
|
|
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_ITERATOR" VERSION="1" LANGU="E" DESCRIPT="Get worksheets iterator" EXPOSURE="2" STATE="1" EDITORDER="22 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_ITERATOR" SCONAME="EO_ITERATOR" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="CL_OBJECT_COLLECTION_ITERATOR"/>
|
|
<source>method GET_WORKSHEETS_ITERATOR.
|
|
|
|
eo_iterator = me->worksheets->get_iterator( ).
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_NAME" VERSION="1" LANGU="E" DESCRIPT="Returns the name of worksheets" EXPOSURE="2" STATE="1" EDITORDER="23 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_NAME" SCONAME="EP_NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME"/>
|
|
<source>method GET_WORKSHEETS_NAME.
|
|
|
|
ep_name = me->worksheets->name.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_SIZE" VERSION="1" LANGU="E" DESCRIPT="Returns the number of worksheets" EXPOSURE="2" STATE="1" EDITORDER="24 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEETS_SIZE" SCONAME="EP_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
|
|
<source>METHOD get_worksheets_size.
|
|
|
|
ep_size = me->worksheets->size( ).
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_INDEX" VERSION="1" LANGU="E" DESCRIPT="Get worksheet by index" EXPOSURE="2" STATE="1" EDITORDER="26 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_INDEX" SCONAME="IV_INDEX" VERSION="1" LANGU="E" DESCRIPT="Index of worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="NUMERIC"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_INDEX" SCONAME="EO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
|
<source>METHOD get_worksheet_by_index.
|
|
|
|
|
|
DATA: lv_index TYPE zexcel_active_worksheet.
|
|
|
|
lv_index = iv_index.
|
|
eo_worksheet = me->worksheets->get( lv_index ).
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_NAME" VERSION="1" LANGU="E" DESCRIPT="Get worksheet by name" EXPOSURE="2" STATE="1" EDITORDER="25 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_NAME" SCONAME="IP_SHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="GET_WORKSHEET_BY_NAME" SCONAME="EO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
|
|
<source>METHOD get_worksheet_by_name.
|
|
|
|
DATA: lv_index TYPE zexcel_active_worksheet,
|
|
l_size TYPE i.
|
|
|
|
l_size = get_worksheets_size( ).
|
|
|
|
DO l_size TIMES.
|
|
lv_index = sy-index.
|
|
eo_worksheet = me->worksheets->get( lv_index ).
|
|
IF eo_worksheet->get_title( ) = ip_sheet_name.
|
|
RETURN.
|
|
ENDIF.
|
|
ENDDO.
|
|
|
|
CLEAR eo_worksheet.
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Set active worksheet index" EXPOSURE="2" STATE="1" EDITORDER="27 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX" SCONAME="I_ACTIVE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Active Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ACTIVE_WORKSHEET"/>
|
|
<exception CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
|
<source>METHOD set_active_sheet_index.
|
|
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
|
lv_errormessage TYPE string.
|
|
|
|
*--------------------------------------------------------------------*
|
|
* Check whether worksheet exists
|
|
*--------------------------------------------------------------------*
|
|
lo_worksheet = me->get_worksheet_by_index( i_active_worksheet ).
|
|
IF lo_worksheet IS NOT BOUND.
|
|
lv_errormessage = 'Worksheet not existing'(001).
|
|
RAISE EXCEPTION TYPE zcx_excel
|
|
EXPORTING
|
|
error = lv_errormessage.
|
|
ENDIF.
|
|
|
|
me->worksheets->active_worksheet = i_active_worksheet.
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX_BY_NAME" VERSION="1" LANGU="E" DESCRIPT="Set active worksheet index by name" EXPOSURE="2" STATE="1" EDITORDER="28 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="SET_ACTIVE_SHEET_INDEX_BY_NAME" SCONAME="I_WORKSHEET_NAME" VERSION="1" LANGU="E" DESCRIPT="Worksheets name" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_WORKSHEETS_NAME"/>
|
|
<source>METHOD set_active_sheet_index_by_name.
|
|
|
|
DATA: ws_it TYPE REF TO cl_object_collection_iterator,
|
|
ws TYPE REF TO zcl_excel_worksheet,
|
|
lv_title TYPE zexcel_sheet_title,
|
|
count TYPE i VALUE 1.
|
|
|
|
ws_it = me->worksheets->get_iterator( ).
|
|
|
|
WHILE ws_it->if_object_collection_iterator~has_next( ) = abap_true.
|
|
ws ?= ws_it->if_object_collection_iterator~get_next( ).
|
|
lv_title = ws->get_title( ).
|
|
IF lv_title = i_worksheet_name.
|
|
me->worksheets->active_worksheet = count.
|
|
EXIT.
|
|
ENDIF.
|
|
count = count + 1.
|
|
ENDWHILE.
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="SET_DEFAULT_STYLE" VERSION="1" LANGU="E" DESCRIPT="Set default style" EXPOSURE="2" STATE="1" EDITORDER="29 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="SET_DEFAULT_STYLE" SCONAME="IP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
|
|
<exception CLSNAME="ZCL_EXCEL" CMPNAME="SET_DEFAULT_STYLE" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
|
|
<source>method SET_DEFAULT_STYLE.
|
|
me->default_style = ip_style.
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL" CMPNAME="STYLEMAPPING_DYNAMIC_STYLE" VERSION="1" LANGU="E" DESCRIPT="Convert dynamic style to static styleentry" EXPOSURE="0" STATE="1" EDITORDER="30 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="STYLEMAPPING_DYNAMIC_STYLE" SCONAME="IP_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_STYLE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL" CMPNAME="STYLEMAPPING_DYNAMIC_STYLE" SCONAME="EO_STYLE2" VERSION="1" LANGU="E" DESCRIPT="Stypemapping" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_S_STYLEMAPPING"/>
|
|
<source>method STYLEMAPPING_DYNAMIC_STYLE.
|
|
" # issue 139
|
|
eo_style2-dynamic_style_guid = ip_style->get_guid( ).
|
|
eo_style2-guid = eo_style2-dynamic_style_guid.
|
|
eo_style2-added_to_iterator = abap_true.
|
|
eo_style2-cl_style = ip_style.
|
|
|
|
* don't care about attributes here, since this data may change
|
|
* dynamically
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
</CLAS>
|