mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-04 18:36:09 +08:00

In the reader I've added loading of theme1.xml file. Color scheme and fonts are loaded to proper structure and can be updated, fmtscheme is at the moment copied from oryginal file as well as object defaults, extra colors and extension list. In case of new file default office theme is used. Changes can be tested with DEMO37 just create simple excel with theme settings and use program to rewrite file.
187 lines
12 KiB
XML
187 lines
12 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<CLAS CLSNAME="ZCL_EXCEL_THEME_FMT_SCHEME" VERSION="1" LANGU="E" DESCRIPT="Theme FMT Scheme" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" WITH_UNIT_TESTS="X" DURATION_TYPE="0 " RISK_LEVEL="0 ">
|
|
<localImplementation>*"* use this source file for the definition and implementation of
|
|
*"* local helper classes, interface definitions and type
|
|
*"* declarations</localImplementation>
|
|
<localTypes>*"* use this source file for any type of declarations (class
|
|
*"* definitions, interfaces or type declarations) you need for
|
|
*"* components in the private section</localTypes>
|
|
<localMacros>*"* use this source file for any macro definitions you need
|
|
*"* in the implementation part of the class</localMacros>
|
|
<localTestClasses>*"* use this source file for your ABAP unit test classes</localTestClasses>
|
|
<attribute CLSNAME="ZCL_EXCEL_THEME_FMT_SCHEME" CMPNAME="FMT_SCHEME" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="IF_IXML_ELEMENT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<method CLSNAME="ZCL_EXCEL_THEME_FMT_SCHEME" CMPNAME="BUILD_XML" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_THEME_FMT_SCHEME" CMPNAME="BUILD_XML" SCONAME="IO_DOCUMENT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
|
|
<source>method build_xml.
|
|
data: lo_xml type ref to cl_xml_document.
|
|
data: lo_node type ref to if_ixml_node.
|
|
data: default_fmt_scheme type string.
|
|
data: lo_scheme_element type ref to if_ixml_element.
|
|
data: lo_elements type ref to if_ixml_element.
|
|
check io_document is bound.
|
|
lo_elements ?= io_document->find_from_name_ns( name = zcl_excel_theme=>c_theme_elements ).
|
|
if lo_elements is bound.
|
|
|
|
if fmt_scheme is initial.
|
|
create object lo_xml.
|
|
lo_xml->parse_string( get_default_fmt( ) ).
|
|
lo_node = lo_xml->get_first_node( ).
|
|
lo_elements->append_child( new_child = lo_node ).
|
|
else.
|
|
lo_elements->append_child( new_child = fmt_scheme ).
|
|
endif.
|
|
endif.
|
|
endmethod. "build_xml</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_THEME_FMT_SCHEME" CMPNAME="GET_DEFAULT_FMT" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_THEME_FMT_SCHEME" CMPNAME="GET_DEFAULT_FMT" SCONAME="RV_STRING" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
|
|
<source>method get_default_fmt.
|
|
concatenate '<a:fmtScheme name="Office">'
|
|
' <a:fillStyleLst>'
|
|
' <a:solidFill>'
|
|
' <a:schemeClr val="phClr"/>'
|
|
' </a:solidFill>'
|
|
' <a:gradFill rotWithShape="1">'
|
|
' <a:gsLst>'
|
|
' <a:gs pos="0">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:lumMod val="110000"/>'
|
|
' <a:satMod val="105000"/>'
|
|
' <a:tint val="67000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' <a:gs pos="50000">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:lumMod val="105000"/>'
|
|
' <a:satMod val="103000"/>'
|
|
' <a:tint val="73000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' <a:gs pos="100000">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:lumMod val="105000"/>'
|
|
' <a:satMod val="109000"/>'
|
|
' <a:tint val="81000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' </a:gsLst>'
|
|
' <a:lin ang="5400000" scaled="0"/>'
|
|
' </a:gradFill>'
|
|
' <a:gradFill rotWithShape="1">'
|
|
' <a:gsLst>'
|
|
' <a:gs pos="0">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:satMod val="103000"/>'
|
|
' <a:lumMod val="102000"/>'
|
|
' <a:tint val="94000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' <a:gs pos="50000">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:satMod val="110000"/>'
|
|
' <a:lumMod val="100000"/>'
|
|
' <a:shade val="100000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' <a:gs pos="100000">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:lumMod val="99000"/>'
|
|
' <a:satMod val="120000"/>'
|
|
' <a:shade val="78000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' </a:gsLst>'
|
|
' <a:lin ang="5400000" scaled="0"/>'
|
|
' </a:gradFill>'
|
|
' </a:fillStyleLst>'
|
|
' <a:lnStyleLst>'
|
|
' <a:ln w="6350" cap="flat" cmpd="sng" algn="ctr">'
|
|
' <a:solidFill>'
|
|
' <a:schemeClr val="phClr"/>'
|
|
' </a:solidFill>'
|
|
' <a:prstDash val="solid"/>'
|
|
' <a:miter lim="800000"/>'
|
|
' </a:ln>'
|
|
' <a:ln w="12700" cap="flat" cmpd="sng" algn="ctr">'
|
|
' <a:solidFill>'
|
|
' <a:schemeClr val="phClr"/>'
|
|
' </a:solidFill>'
|
|
' <a:prstDash val="solid"/>'
|
|
' <a:miter lim="800000"/>'
|
|
' </a:ln>'
|
|
' <a:ln w="19050" cap="flat" cmpd="sng" algn="ctr">'
|
|
' <a:solidFill>'
|
|
' <a:schemeClr val="phClr"/>'
|
|
' </a:solidFill>'
|
|
' <a:prstDash val="solid"/>'
|
|
' <a:miter lim="800000"/>'
|
|
' </a:ln>'
|
|
' </a:lnStyleLst>'
|
|
' <a:effectStyleLst>'
|
|
' <a:effectStyle>'
|
|
' <a:effectLst/>'
|
|
' </a:effectStyle>'
|
|
' <a:effectStyle>'
|
|
' <a:effectLst/>'
|
|
' </a:effectStyle>'
|
|
' <a:effectStyle>'
|
|
' <a:effectLst>'
|
|
' <a:outerShdw blurRad="57150" dist="19050" dir="5400000" algn="ctr" rotWithShape="0">'
|
|
' <a:srgbClr val="000000">'
|
|
' <a:alpha val="63000"/>'
|
|
' </a:srgbClr>'
|
|
' </a:outerShdw>'
|
|
' </a:effectLst>'
|
|
' </a:effectStyle>'
|
|
' </a:effectStyleLst>'
|
|
' <a:bgFillStyleLst>'
|
|
' <a:solidFill>'
|
|
' <a:schemeClr val="phClr"/>'
|
|
' </a:solidFill>'
|
|
' <a:solidFill>'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:tint val="95000"/>'
|
|
' <a:satMod val="170000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:solidFill>'
|
|
' <a:gradFill rotWithShape="1">'
|
|
' <a:gsLst>'
|
|
' <a:gs pos="0">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:tint val="93000"/>'
|
|
' <a:satMod val="150000"/>'
|
|
' <a:shade val="98000"/>'
|
|
' <a:lumMod val="102000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' <a:gs pos="50000">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:tint val="98000"/>'
|
|
' <a:satMod val="130000"/>'
|
|
' <a:shade val="90000"/>'
|
|
' <a:lumMod val="103000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' <a:gs pos="100000">'
|
|
' <a:schemeClr val="phClr">'
|
|
' <a:shade val="63000"/>'
|
|
' <a:satMod val="120000"/>'
|
|
' </a:schemeClr>'
|
|
' </a:gs>'
|
|
' </a:gsLst>'
|
|
' <a:lin ang="5400000" scaled="0"/>'
|
|
' </a:gradFill>'
|
|
' </a:bgFillStyleLst>'
|
|
' </a:fmtScheme>'
|
|
into rv_string .
|
|
endmethod. "get_default_fmt</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_THEME_FMT_SCHEME" CMPNAME="LOAD" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_THEME_FMT_SCHEME" CMPNAME="LOAD" SCONAME="IO_FMT_SCHEME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="IF_IXML_ELEMENT"/>
|
|
<source>method load.
|
|
"! so far copy only existing values
|
|
fmt_scheme ?= io_fmt_scheme.
|
|
endmethod. "load</source>
|
|
</method>
|
|
</CLAS>
|