Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php
private function writeValueAxis($objWriter, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, Axis $xAxis, GridLines $majorGridlines, GridLines $minorGridlines)
    {
        $objWriter->startElement('c:valAx');

        if ($id2 > 0) {
            $objWriter->startElement('c:axId');
            $objWriter->writeAttribute('val', $id2);
            $objWriter->endElement();
        }

        $objWriter->startElement('c:scaling');

        if ($xAxis->getAxisOptionsProperty('maximum') !== null) {
            $objWriter->startElement('c:max');
            $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('maximum'));
            $objWriter->endElement();
        }

        if ($xAxis->getAxisOptionsProperty('minimum') !== null) {
            $objWriter->startElement('c:min');
            $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minimum'));
            $objWriter->endElement();
        }

        $objWriter->startElement('c:orientation');
        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('orientation'));

        $objWriter->endElement();
        $objWriter->endElement();

        $objWriter->startElement('c:delete');
        $objWriter->writeAttribute('val', 0);
        $objWriter->endElement();

        $objWriter->startElement('c:axPos');
        $objWriter->writeAttribute('val', 'l');
        $objWriter->endElement();

        $objWriter->startElement('c:majorGridlines');
        $objWriter->startElement('c:spPr');

        if ($majorGridlines->getLineColorProperty('value') !== null) {
            $objWriter->startElement('a:ln');
            $objWriter->writeAttribute('w', $majorGridlines->getLineStyleProperty('width'));
            $objWriter->startElement('a:solidFill');
            $objWriter->startElement("a:{$majorGridlines->getLineColorProperty('type')}");
            $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('value'));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('alpha'));
            $objWriter->endElement(); //end alpha
            $objWriter->endElement(); //end srgbClr
            $objWriter->endElement(); //end solidFill

            $objWriter->startElement('a:prstDash');
            $objWriter->writeAttribute('val', $majorGridlines->getLineStyleProperty('dash'));
            $objWriter->endElement();

            if ($majorGridlines->getLineStyleProperty('join') == 'miter') {
                $objWriter->startElement('a:miter');
                $objWriter->writeAttribute('lim', '800000');
                $objWriter->endElement();
            } else {
                $objWriter->startElement('a:bevel');
                $objWriter->endElement();
            }

            if ($majorGridlines->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
                $objWriter->startElement('a:headEnd');
                $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(['arrow', 'head', 'type']));
                $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('head', 'w'));
                $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('head', 'len'));
                $objWriter->endElement();
            }

            if ($majorGridlines->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
                $objWriter->startElement('a:tailEnd');
                $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(['arrow', 'end', 'type']));
                $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('end', 'w'));
                $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('end', 'len'));
                $objWriter->endElement();
            }
            $objWriter->endElement(); //end ln
        }
        $objWriter->startElement('a:effectLst');

        if ($majorGridlines->getGlowSize() !== null) {
            $objWriter->startElement('a:glow');
            $objWriter->writeAttribute('rad', $majorGridlines->getGlowSize());
            $objWriter->startElement("a:{$majorGridlines->getGlowColor('type')}");
            $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('value'));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('alpha'));
            $objWriter->endElement(); //end alpha
            $objWriter->endElement(); //end schemeClr
            $objWriter->endElement(); //end glow
        }

        if ($majorGridlines->getShadowProperty('presets') !== null) {
            $objWriter->startElement("a:{$majorGridlines->getShadowProperty('effect')}");
            if ($majorGridlines->getShadowProperty('blur') !== null) {
                $objWriter->writeAttribute('blurRad', $majorGridlines->getShadowProperty('blur'));
            }
            if ($majorGridlines->getShadowProperty('distance') !== null) {
                $objWriter->writeAttribute('dist', $majorGridlines->getShadowProperty('distance'));
            }
            if ($majorGridlines->getShadowProperty('direction') !== null) {
                $objWriter->writeAttribute('dir', $majorGridlines->getShadowProperty('direction'));
            }
            if ($majorGridlines->getShadowProperty('algn') !== null) {
                $objWriter->writeAttribute('algn', $majorGridlines->getShadowProperty('algn'));
            }
            if ($majorGridlines->getShadowProperty(['size', 'sx']) !== null) {
                $objWriter->writeAttribute('sx', $majorGridlines->getShadowProperty(['size', 'sx']));
            }
            if ($majorGridlines->getShadowProperty(['size', 'sy']) !== null) {
                $objWriter->writeAttribute('sy', $majorGridlines->getShadowProperty(['size', 'sy']));
            }
            if ($majorGridlines->getShadowProperty(['size', 'kx']) !== null) {
                $objWriter->writeAttribute('kx', $majorGridlines->getShadowProperty(['size', 'kx']));
            }
            if ($majorGridlines->getShadowProperty('rotWithShape') !== null) {
                $objWriter->writeAttribute('rotWithShape', $majorGridlines->getShadowProperty('rotWithShape'));
            }
            $objWriter->startElement("a:{$majorGridlines->getShadowProperty(['color', 'type'])}");
            $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(['color', 'value']));

            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(['color', 'alpha']));
            $objWriter->endElement(); //end alpha

            $objWriter->endElement(); //end color:type
            $objWriter->endElement(); //end shadow
        }

        if ($majorGridlines->getSoftEdgesSize() !== null) {
            $objWriter->startElement('a:softEdge');
            $objWriter->writeAttribute('rad', $majorGridlines->getSoftEdgesSize());
            $objWriter->endElement(); //end softEdge
        }

        $objWriter->endElement(); //end effectLst
        $objWriter->endElement(); //end spPr
        $objWriter->endElement(); //end majorGridLines

        if ($minorGridlines->getObjectState()) {
            $objWriter->startElement('c:minorGridlines');
            $objWriter->startElement('c:spPr');

            if ($minorGridlines->getLineColorProperty('value') !== null) {
                $objWriter->startElement('a:ln');
                $objWriter->writeAttribute('w', $minorGridlines->getLineStyleProperty('width'));
                $objWriter->startElement('a:solidFill');
                $objWriter->startElement("a:{$minorGridlines->getLineColorProperty('type')}");
                $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('value'));
                $objWriter->startElement('a:alpha');
                $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('alpha'));
                $objWriter->endElement(); //end alpha
                $objWriter->endElement(); //end srgbClr
                $objWriter->endElement(); //end solidFill

                $objWriter->startElement('a:prstDash');
                $objWriter->writeAttribute('val', $minorGridlines->getLineStyleProperty('dash'));
                $objWriter->endElement();

                if ($minorGridlines->getLineStyleProperty('join') == 'miter') {
                    $objWriter->startElement('a:miter');
                    $objWriter->writeAttribute('lim', '800000');
                    $objWriter->endElement();
                } else {
                    $objWriter->startElement('a:bevel');
                    $objWriter->endElement();
                }

                if ($minorGridlines->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
                    $objWriter->startElement('a:headEnd');
                    $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(['arrow', 'head', 'type']));
                    $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('head', 'w'));
                    $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('head', 'len'));
                    $objWriter->endElement();
                }

                if ($minorGridlines->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
                    $objWriter->startElement('a:tailEnd');
                    $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(['arrow', 'end', 'type']));
                    $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('end', 'w'));
                    $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('end', 'len'));
                    $objWriter->endElement();
                }
                $objWriter->endElement(); //end ln
            }

            $objWriter->startElement('a:effectLst');

            if ($minorGridlines->getGlowSize() !== null) {
                $objWriter->startElement('a:glow');
                $objWriter->writeAttribute('rad', $minorGridlines->getGlowSize());
                $objWriter->startElement("a:{$minorGridlines->getGlowColor('type')}");
                $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('value'));
                $objWriter->startElement('a:alpha');
                $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('alpha'));
                $objWriter->endElement(); //end alpha
                $objWriter->endElement(); //end schemeClr
                $objWriter->endElement(); //end glow
            }

            if ($minorGridlines->getShadowProperty('presets') !== null) {
                $objWriter->startElement("a:{$minorGridlines->getShadowProperty('effect')}");
                if ($minorGridlines->getShadowProperty('blur') !== null) {
                    $objWriter->writeAttribute('blurRad', $minorGridlines->getShadowProperty('blur'));
                }
                if ($minorGridlines->getShadowProperty('distance') !== null) {
                    $objWriter->writeAttribute('dist', $minorGridlines->getShadowProperty('distance'));
                }
                if ($minorGridlines->getShadowProperty('direction') !== null) {
                    $objWriter->writeAttribute('dir', $minorGridlines->getShadowProperty('direction'));
                }
                if ($minorGridlines->getShadowProperty('algn') !== null) {
                    $objWriter->writeAttribute('algn', $minorGridlines->getShadowProperty('algn'));
                }
                if ($minorGridlines->getShadowProperty(['size', 'sx']) !== null) {
                    $objWriter->writeAttribute('sx', $minorGridlines->getShadowProperty(['size', 'sx']));
                }
                if ($minorGridlines->getShadowProperty(['size', 'sy']) !== null) {
                    $objWriter->writeAttribute('sy', $minorGridlines->getShadowProperty(['size', 'sy']));
                }
                if ($minorGridlines->getShadowProperty(['size', 'kx']) !== null) {
                    $objWriter->writeAttribute('kx', $minorGridlines->getShadowProperty(['size', 'kx']));
                }
                if ($minorGridlines->getShadowProperty('rotWithShape') !== null) {
                    $objWriter->writeAttribute('rotWithShape', $minorGridlines->getShadowProperty('rotWithShape'));
                }
                $objWriter->startElement("a:{$minorGridlines->getShadowProperty(['color', 'type'])}");
                $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(['color', 'value']));
                $objWriter->startElement('a:alpha');
                $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(['color', 'alpha']));
                $objWriter->endElement(); //end alpha
                $objWriter->endElement(); //end color:type
                $objWriter->endElement(); //end shadow
            }

            if ($minorGridlines->getSoftEdgesSize() !== null) {
                $objWriter->startElement('a:softEdge');
                $objWriter->writeAttribute('rad', $minorGridlines->getSoftEdgesSize());
                $objWriter->endElement(); //end softEdge
            }

            $objWriter->endElement(); //end effectLst
            $objWriter->endElement(); //end spPr
            $objWriter->endElement(); //end minorGridLines
        }

        if ($yAxisLabel !== null) {
            $objWriter->startElement('c:title');
            $objWriter->startElement('c:tx');
            $objWriter->startElement('c:rich');

            $objWriter->startElement('a:bodyPr');
            $objWriter->endElement();

            $objWriter->startElement('a:lstStyle');
            $objWriter->endElement();

            $objWriter->startElement('a:p');
            $objWriter->startElement('a:r');

            $caption = $yAxisLabel->getCaption();
            if (is_array($caption)) {
                $caption = $caption[0];
            }

            $objWriter->startElement('a:t');
            $objWriter->writeRawData(StringHelper::controlCharacterPHP2OOXML($caption));
            $objWriter->endElement();

            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();

            if ($groupType !== DataSeries::TYPE_BUBBLECHART) {
                $layout = $yAxisLabel->getLayout();
                $this->writeLayout($objWriter, $layout);
            }

            $objWriter->startElement('c:overlay');
            $objWriter->writeAttribute('val', 0);
            $objWriter->endElement();

            $objWriter->endElement();
        }

        $objWriter->startElement('c:numFmt');
        $objWriter->writeAttribute('formatCode', $xAxis->getAxisNumberFormat());
        $objWriter->writeAttribute('sourceLinked', $xAxis->getAxisNumberSourceLinked());
        $objWriter->endElement();

        $objWriter->startElement('c:majorTickMark');
        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_tick_mark'));
        $objWriter->endElement();

        $objWriter->startElement('c:minorTickMark');
        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_tick_mark'));
        $objWriter->endElement();

        $objWriter->startElement('c:tickLblPos');
        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('axis_labels'));
        $objWriter->endElement();

        $objWriter->startElement('c:spPr');

        if ($xAxis->getFillProperty('value') !== null) {
            $objWriter->startElement('a:solidFill');
            $objWriter->startElement('a:' . $xAxis->getFillProperty('type'));
            $objWriter->writeAttribute('val', $xAxis->getFillProperty('value'));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $xAxis->getFillProperty('alpha'));
            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();
        }

        $objWriter->startElement('a:ln');

        $objWriter->writeAttribute('w', $xAxis->getLineStyleProperty('width'));
        $objWriter->writeAttribute('cap', $xAxis->getLineStyleProperty('cap'));
        $objWriter->writeAttribute('cmpd', $xAxis->getLineStyleProperty('compound'));

        if ($xAxis->getLineProperty('value') !== null) {
            $objWriter->startElement('a:solidFill');
            $objWriter->startElement('a:' . $xAxis->getLineProperty('type'));
            $objWriter->writeAttribute('val', $xAxis->getLineProperty('value'));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $xAxis->getLineProperty('alpha'));
            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();
        }

        $objWriter->startElement('a:prstDash');
        $objWriter->writeAttribute('val', $xAxis->getLineStyleProperty('dash'));
        $objWriter->endElement();

        if ($xAxis->getLineStyleProperty('join') == 'miter') {
            $objWriter->startElement('a:miter');
            $objWriter->writeAttribute('lim', '800000');
            $objWriter->endElement();
        } else {
            $objWriter->startElement('a:bevel');
            $objWriter->endElement();
        }

        if ($xAxis->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
            $objWriter->startElement('a:headEnd');
            $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(['arrow', 'head', 'type']));
            $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('head'));
            $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('head'));
            $objWriter->endElement();
        }

        if ($xAxis->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
            $objWriter->startElement('a:tailEnd');
            $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(['arrow', 'end', 'type']));
            $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('end'));
            $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('end'));
            $objWriter->endElement();
        }

        $objWriter->endElement();

        $objWriter->startElement('a:effectLst');

        if ($xAxis->getGlowProperty('size') !== null) {
            $objWriter->startElement('a:glow');
            $objWriter->writeAttribute('rad', $xAxis->getGlowProperty('size'));
            $objWriter->startElement("a:{$xAxis->getGlowProperty(['color', 'type'])}");
            $objWriter->writeAttribute('val', $xAxis->getGlowProperty(['color', 'value']));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $xAxis->getGlowProperty(['color', 'alpha']));
            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();
        }

        if ($xAxis->getShadowProperty('presets') !== null) {
            $objWriter->startElement("a:{$xAxis->getShadowProperty('effect')}");

            if ($xAxis->getShadowProperty('blur') !== null) {
                $objWriter->writeAttribute('blurRad', $xAxis->getShadowProperty('blur'));
            }
            if ($xAxis->getShadowProperty('distance') !== null) {
                $objWriter->writeAttribute('dist', $xAxis->getShadowProperty('distance'));
            }
            if ($xAxis->getShadowProperty('direction') !== null) {
                $objWriter->writeAttribute('dir', $xAxis->getShadowProperty('direction'));
            }
            if ($xAxis->getShadowProperty('algn') !== null) {
                $objWriter->writeAttribute('algn', $xAxis->getShadowProperty('algn'));
            }
            if ($xAxis->getShadowProperty(['size', 'sx']) !== null) {
                $objWriter->writeAttribute('sx', $xAxis->getShadowProperty(['size', 'sx']));
            }
            if ($xAxis->getShadowProperty(['size', 'sy']) !== null) {
                $objWriter->writeAttribute('sy', $xAxis->getShadowProperty(['size', 'sy']));
            }
            if ($xAxis->getShadowProperty(['size', 'kx']) !== null) {
                $objWriter->writeAttribute('kx', $xAxis->getShadowProperty(['size', 'kx']));
            }
            if ($xAxis->getShadowProperty('rotWithShape') !== null) {
                $objWriter->writeAttribute('rotWithShape', $xAxis->getShadowProperty('rotWithShape'));
            }

            $objWriter->startElement("a:{$xAxis->getShadowProperty(['color', 'type'])}");
            $objWriter->writeAttribute('val', $xAxis->getShadowProperty(['color', 'value']));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $xAxis->getShadowProperty(['color', 'alpha']));
            $objWriter->endElement();
            $objWriter->endElement();

            $objWriter->endElement();
        }

        if ($xAxis->getSoftEdgesSize() !== null) {
            $objWriter->startElement('a:softEdge');
            $objWriter->writeAttribute('rad', $xAxis->getSoftEdgesSize());
            $objWriter->endElement();
        }

        $objWriter->endElement(); //effectList
        $objWriter->endElement(); //end spPr

        if ($id1 > 0) {
            $objWriter->startElement('c:crossAx');
            $objWriter->writeAttribute('val', $id2);
            $objWriter->endElement();

            if ($xAxis->getAxisOptionsProperty('horizontal_crosses_value') !== null) {
                $objWriter->startElement('c:crossesAt');
                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses_value'));
                $objWriter->endElement();
            } else {
                $objWriter->startElement('c:crosses');
                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses'));
                $objWriter->endElement();
            }

            $objWriter->startElement('c:crossBetween');
            $objWriter->writeAttribute('val', 'midCat');
            $objWriter->endElement();

            if ($xAxis->getAxisOptionsProperty('major_unit') !== null) {
                $objWriter->startElement('c:majorUnit');
                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_unit'));
                $objWriter->endElement();
            }

            if ($xAxis->getAxisOptionsProperty('minor_unit') !== null) {
                $objWriter->startElement('c:minorUnit');
                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_unit'));
                $objWriter->endElement();
            }
        }

        if ($isMultiLevelSeries) {
            if ($groupType !== DataSeries::TYPE_BUBBLECHART) {
                $objWriter->startElement('c:noMultiLvlLbl');
                $objWriter->writeAttribute('val', 0);
                $objWriter->endElement();
            }
        }

        $objWriter->endElement();
    }
private function writeValueAxis($objWriter, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, Axis $xAxis, GridLines $majorGridlines, GridLines $minorGridlines)
    {
        $objWriter->startElement('c:valAx');

        if ($id2 > 0) {
            $objWriter->startElement('c:axId');
            $objWriter->writeAttribute('val', $id2);
            $objWriter->endElement();
        }

        $objWriter->startElement('c:scaling');

        if ($xAxis->getAxisOptionsProperty('maximum') !== null) {
            $objWriter->startElement('c:max');
            $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('maximum'));
            $objWriter->endElement();
        }

        if ($xAxis->getAxisOptionsProperty('minimum') !== null) {
            $objWriter->startElement('c:min');
            $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minimum'));
            $objWriter->endElement();
        }

        $objWriter->startElement('c:orientation');
        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('orientation'));

        $objWriter->endElement();
        $objWriter->endElement();

        $objWriter->startElement('c:delete');
        $objWriter->writeAttribute('val', 0);
        $objWriter->endElement();

        $objWriter->startElement('c:axPos');
        $objWriter->writeAttribute('val', 'l');
        $objWriter->endElement();

        $objWriter->startElement('c:majorGridlines');
        $objWriter->startElement('c:spPr');

        if ($majorGridlines->getLineColorProperty('value') !== null) {
            $objWriter->startElement('a:ln');
            $objWriter->writeAttribute('w', $majorGridlines->getLineStyleProperty('width'));
            $objWriter->startElement('a:solidFill');
            $objWriter->startElement("a:{$majorGridlines->getLineColorProperty('type')}");
            $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('value'));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('alpha'));
            $objWriter->endElement(); //end alpha
            $objWriter->endElement(); //end srgbClr
            $objWriter->endElement(); //end solidFill

            $objWriter->startElement('a:prstDash');
            $objWriter->writeAttribute('val', $majorGridlines->getLineStyleProperty('dash'));
            $objWriter->endElement();

            if ($majorGridlines->getLineStyleProperty('join') == 'miter') {
                $objWriter->startElement('a:miter');
                $objWriter->writeAttribute('lim', '800000');
                $objWriter->endElement();
            } else {
                $objWriter->startElement('a:bevel');
                $objWriter->endElement();
            }

            if ($majorGridlines->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
                $objWriter->startElement('a:headEnd');
                $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(['arrow', 'head', 'type']));
                $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('head', 'w'));
                $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('head', 'len'));
                $objWriter->endElement();
            }

            if ($majorGridlines->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
                $objWriter->startElement('a:tailEnd');
                $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(['arrow', 'end', 'type']));
                $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('end', 'w'));
                $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('end', 'len'));
                $objWriter->endElement();
            }
            $objWriter->endElement(); //end ln
        }
        $objWriter->startElement('a:effectLst');

        if ($majorGridlines->getGlowSize() !== null) {
            $objWriter->startElement('a:glow');
            $objWriter->writeAttribute('rad', $majorGridlines->getGlowSize());
            $objWriter->startElement("a:{$majorGridlines->getGlowColor('type')}");
            $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('value'));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('alpha'));
            $objWriter->endElement(); //end alpha
            $objWriter->endElement(); //end schemeClr
            $objWriter->endElement(); //end glow
        }

        if ($majorGridlines->getShadowProperty('presets') !== null) {
            $objWriter->startElement("a:{$majorGridlines->getShadowProperty('effect')}");
            if ($majorGridlines->getShadowProperty('blur') !== null) {
                $objWriter->writeAttribute('blurRad', $majorGridlines->getShadowProperty('blur'));
            }
            if ($majorGridlines->getShadowProperty('distance') !== null) {
                $objWriter->writeAttribute('dist', $majorGridlines->getShadowProperty('distance'));
            }
            if ($majorGridlines->getShadowProperty('direction') !== null) {
                $objWriter->writeAttribute('dir', $majorGridlines->getShadowProperty('direction'));
            }
            if ($majorGridlines->getShadowProperty('algn') !== null) {
                $objWriter->writeAttribute('algn', $majorGridlines->getShadowProperty('algn'));
            }
            if ($majorGridlines->getShadowProperty(['size', 'sx']) !== null) {
                $objWriter->writeAttribute('sx', $majorGridlines->getShadowProperty(['size', 'sx']));
            }
            if ($majorGridlines->getShadowProperty(['size', 'sy']) !== null) {
                $objWriter->writeAttribute('sy', $majorGridlines->getShadowProperty(['size', 'sy']));
            }
            if ($majorGridlines->getShadowProperty(['size', 'kx']) !== null) {
                $objWriter->writeAttribute('kx', $majorGridlines->getShadowProperty(['size', 'kx']));
            }
            if ($majorGridlines->getShadowProperty('rotWithShape') !== null) {
                $objWriter->writeAttribute('rotWithShape', $majorGridlines->getShadowProperty('rotWithShape'));
            }
            $objWriter->startElement("a:{$majorGridlines->getShadowProperty(['color', 'type'])}");
            $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(['color', 'value']));

            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(['color', 'alpha']));
            $objWriter->endElement(); //end alpha

            $objWriter->endElement(); //end color:type
            $objWriter->endElement(); //end shadow
        }

        if ($majorGridlines->getSoftEdgesSize() !== null) {
            $objWriter->startElement('a:softEdge');
            $objWriter->writeAttribute('rad', $majorGridlines->getSoftEdgesSize());
            $objWriter->endElement(); //end softEdge
        }

        $objWriter->endElement(); //end effectLst
        $objWriter->endElement(); //end spPr
        $objWriter->endElement(); //end majorGridLines

        if ($minorGridlines->getObjectState()) {
            $objWriter->startElement('c:minorGridlines');
            $objWriter->startElement('c:spPr');

            if ($minorGridlines->getLineColorProperty('value') !== null) {
                $objWriter->startElement('a:ln');
                $objWriter->writeAttribute('w', $minorGridlines->getLineStyleProperty('width'));
                $objWriter->startElement('a:solidFill');
                $objWriter->startElement("a:{$minorGridlines->getLineColorProperty('type')}");
                $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('value'));
                $objWriter->startElement('a:alpha');
                $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('alpha'));
                $objWriter->endElement(); //end alpha
                $objWriter->endElement(); //end srgbClr
                $objWriter->endElement(); //end solidFill

                $objWriter->startElement('a:prstDash');
                $objWriter->writeAttribute('val', $minorGridlines->getLineStyleProperty('dash'));
                $objWriter->endElement();

                if ($minorGridlines->getLineStyleProperty('join') == 'miter') {
                    $objWriter->startElement('a:miter');
                    $objWriter->writeAttribute('lim', '800000');
                    $objWriter->endElement();
                } else {
                    $objWriter->startElement('a:bevel');
                    $objWriter->endElement();
                }

                if ($minorGridlines->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
                    $objWriter->startElement('a:headEnd');
                    $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(['arrow', 'head', 'type']));
                    $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('head', 'w'));
                    $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('head', 'len'));
                    $objWriter->endElement();
                }

                if ($minorGridlines->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
                    $objWriter->startElement('a:tailEnd');
                    $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(['arrow', 'end', 'type']));
                    $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('end', 'w'));
                    $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('end', 'len'));
                    $objWriter->endElement();
                }
                $objWriter->endElement(); //end ln
            }

            $objWriter->startElement('a:effectLst');

            if ($minorGridlines->getGlowSize() !== null) {
                $objWriter->startElement('a:glow');
                $objWriter->writeAttribute('rad', $minorGridlines->getGlowSize());
                $objWriter->startElement("a:{$minorGridlines->getGlowColor('type')}");
                $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('value'));
                $objWriter->startElement('a:alpha');
                $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('alpha'));
                $objWriter->endElement(); //end alpha
                $objWriter->endElement(); //end schemeClr
                $objWriter->endElement(); //end glow
            }

            if ($minorGridlines->getShadowProperty('presets') !== null) {
                $objWriter->startElement("a:{$minorGridlines->getShadowProperty('effect')}");
                if ($minorGridlines->getShadowProperty('blur') !== null) {
                    $objWriter->writeAttribute('blurRad', $minorGridlines->getShadowProperty('blur'));
                }
                if ($minorGridlines->getShadowProperty('distance') !== null) {
                    $objWriter->writeAttribute('dist', $minorGridlines->getShadowProperty('distance'));
                }
                if ($minorGridlines->getShadowProperty('direction') !== null) {
                    $objWriter->writeAttribute('dir', $minorGridlines->getShadowProperty('direction'));
                }
                if ($minorGridlines->getShadowProperty('algn') !== null) {
                    $objWriter->writeAttribute('algn', $minorGridlines->getShadowProperty('algn'));
                }
                if ($minorGridlines->getShadowProperty(['size', 'sx']) !== null) {
                    $objWriter->writeAttribute('sx', $minorGridlines->getShadowProperty(['size', 'sx']));
                }
                if ($minorGridlines->getShadowProperty(['size', 'sy']) !== null) {
                    $objWriter->writeAttribute('sy', $minorGridlines->getShadowProperty(['size', 'sy']));
                }
                if ($minorGridlines->getShadowProperty(['size', 'kx']) !== null) {
                    $objWriter->writeAttribute('kx', $minorGridlines->getShadowProperty(['size', 'kx']));
                }
                if ($minorGridlines->getShadowProperty('rotWithShape') !== null) {
                    $objWriter->writeAttribute('rotWithShape', $minorGridlines->getShadowProperty('rotWithShape'));
                }
                $objWriter->startElement("a:{$minorGridlines->getShadowProperty(['color', 'type'])}");
                $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(['color', 'value']));
                $objWriter->startElement('a:alpha');
                $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(['color', 'alpha']));
                $objWriter->endElement(); //end alpha
                $objWriter->endElement(); //end color:type
                $objWriter->endElement(); //end shadow
            }

            if ($minorGridlines->getSoftEdgesSize() !== null) {
                $objWriter->startElement('a:softEdge');
                $objWriter->writeAttribute('rad', $minorGridlines->getSoftEdgesSize());
                $objWriter->endElement(); //end softEdge
            }

            $objWriter->endElement(); //end effectLst
            $objWriter->endElement(); //end spPr
            $objWriter->endElement(); //end minorGridLines
        }

        if ($yAxisLabel !== null) {
            $objWriter->startElement('c:title');
            $objWriter->startElement('c:tx');
            $objWriter->startElement('c:rich');

            $objWriter->startElement('a:bodyPr');
            $objWriter->endElement();

            $objWriter->startElement('a:lstStyle');
            $objWriter->endElement();

            $objWriter->startElement('a:p');
            $objWriter->startElement('a:r');

            $caption = $yAxisLabel->getCaption();
            if (is_array($caption)) {
                $caption = $caption[0];
            }

            $objWriter->startElement('a:t');
            $objWriter->writeRawData(StringHelper::controlCharacterPHP2OOXML($caption));
            $objWriter->endElement();

            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();

            if ($groupType !== DataSeries::TYPE_BUBBLECHART) {
                $layout = $yAxisLabel->getLayout();
                $this->writeLayout($objWriter, $layout);
            }

            $objWriter->startElement('c:overlay');
            $objWriter->writeAttribute('val', 0);
            $objWriter->endElement();

            $objWriter->endElement();
        }

        $objWriter->startElement('c:numFmt');
        $objWriter->writeAttribute('formatCode', $xAxis->getAxisNumberFormat());
        $objWriter->writeAttribute('sourceLinked', $xAxis->getAxisNumberSourceLinked());
        $objWriter->endElement();

        $objWriter->startElement('c:majorTickMark');
        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_tick_mark'));
        $objWriter->endElement();

        $objWriter->startElement('c:minorTickMark');
        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_tick_mark'));
        $objWriter->endElement();

        $objWriter->startElement('c:tickLblPos');
        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('axis_labels'));
        $objWriter->endElement();

        $objWriter->startElement('c:spPr');

        if ($xAxis->getFillProperty('value') !== null) {
            $objWriter->startElement('a:solidFill');
            $objWriter->startElement('a:' . $xAxis->getFillProperty('type'));
            $objWriter->writeAttribute('val', $xAxis->getFillProperty('value'));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $xAxis->getFillProperty('alpha'));
            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();
        }

        $objWriter->startElement('a:ln');

        $objWriter->writeAttribute('w', $xAxis->getLineStyleProperty('width'));
        $objWriter->writeAttribute('cap', $xAxis->getLineStyleProperty('cap'));
        $objWriter->writeAttribute('cmpd', $xAxis->getLineStyleProperty('compound'));

        if ($xAxis->getLineProperty('value') !== null) {
            $objWriter->startElement('a:solidFill');
            $objWriter->startElement('a:' . $xAxis->getLineProperty('type'));
            $objWriter->writeAttribute('val', $xAxis->getLineProperty('value'));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $xAxis->getLineProperty('alpha'));
            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();
        }

        $objWriter->startElement('a:prstDash');
        $objWriter->writeAttribute('val', $xAxis->getLineStyleProperty('dash'));
        $objWriter->endElement();

        if ($xAxis->getLineStyleProperty('join') == 'miter') {
            $objWriter->startElement('a:miter');
            $objWriter->writeAttribute('lim', '800000');
            $objWriter->endElement();
        } else {
            $objWriter->startElement('a:bevel');
            $objWriter->endElement();
        }

        if ($xAxis->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
            $objWriter->startElement('a:headEnd');
            $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(['arrow', 'head', 'type']));
            $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('head'));
            $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('head'));
            $objWriter->endElement();
        }

        if ($xAxis->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
            $objWriter->startElement('a:tailEnd');
            $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(['arrow', 'end', 'type']));
            $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('end'));
            $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('end'));
            $objWriter->endElement();
        }

        $objWriter->endElement();

        $objWriter->startElement('a:effectLst');

        if ($xAxis->getGlowProperty('size') !== null) {
            $objWriter->startElement('a:glow');
            $objWriter->writeAttribute('rad', $xAxis->getGlowProperty('size'));
            $objWriter->startElement("a:{$xAxis->getGlowProperty(['color', 'type'])}");
            $objWriter->writeAttribute('val', $xAxis->getGlowProperty(['color', 'value']));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $xAxis->getGlowProperty(['color', 'alpha']));
            $objWriter->endElement();
            $objWriter->endElement();
            $objWriter->endElement();
        }

        if ($xAxis->getShadowProperty('presets') !== null) {
            $objWriter->startElement("a:{$xAxis->getShadowProperty('effect')}");

            if ($xAxis->getShadowProperty('blur') !== null) {
                $objWriter->writeAttribute('blurRad', $xAxis->getShadowProperty('blur'));
            }
            if ($xAxis->getShadowProperty('distance') !== null) {
                $objWriter->writeAttribute('dist', $xAxis->getShadowProperty('distance'));
            }
            if ($xAxis->getShadowProperty('direction') !== null) {
                $objWriter->writeAttribute('dir', $xAxis->getShadowProperty('direction'));
            }
            if ($xAxis->getShadowProperty('algn') !== null) {
                $objWriter->writeAttribute('algn', $xAxis->getShadowProperty('algn'));
            }
            if ($xAxis->getShadowProperty(['size', 'sx']) !== null) {
                $objWriter->writeAttribute('sx', $xAxis->getShadowProperty(['size', 'sx']));
            }
            if ($xAxis->getShadowProperty(['size', 'sy']) !== null) {
                $objWriter->writeAttribute('sy', $xAxis->getShadowProperty(['size', 'sy']));
            }
            if ($xAxis->getShadowProperty(['size', 'kx']) !== null) {
                $objWriter->writeAttribute('kx', $xAxis->getShadowProperty(['size', 'kx']));
            }
            if ($xAxis->getShadowProperty('rotWithShape') !== null) {
                $objWriter->writeAttribute('rotWithShape', $xAxis->getShadowProperty('rotWithShape'));
            }

            $objWriter->startElement("a:{$xAxis->getShadowProperty(['color', 'type'])}");
            $objWriter->writeAttribute('val', $xAxis->getShadowProperty(['color', 'value']));
            $objWriter->startElement('a:alpha');
            $objWriter->writeAttribute('val', $xAxis->getShadowProperty(['color', 'alpha']));
            $objWriter->endElement();
            $objWriter->endElement();

            $objWriter->endElement();
        }

        if ($xAxis->getSoftEdgesSize() !== null) {
            $objWriter->startElement('a:softEdge');
            $objWriter->writeAttribute('rad', $xAxis->getSoftEdgesSize());
            $objWriter->endElement();
        }

        $objWriter->endElement(); //effectList
        $objWriter->endElement(); //end spPr

        if ($id1 > 0) {
            $objWriter->startElement('c:crossAx');
            $objWriter->writeAttribute('val', $id2);
            $objWriter->endElement();

            if ($xAxis->getAxisOptionsProperty('horizontal_crosses_value') !== null) {
                $objWriter->startElement('c:crossesAt');
                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses_value'));
                $objWriter->endElement();
            } else {
                $objWriter->startElement('c:crosses');
                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses'));
                $objWriter->endElement();
            }

            $objWriter->startElement('c:crossBetween');
            $objWriter->writeAttribute('val', 'midCat');
            $objWriter->endElement();

            if ($xAxis->getAxisOptionsProperty('major_unit') !== null) {
                $objWriter->startElement('c:majorUnit');
                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_unit'));
                $objWriter->endElement();
            }

            if ($xAxis->getAxisOptionsProperty('minor_unit') !== null) {
                $objWriter->startElement('c:minorUnit');
                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_unit'));
                $objWriter->endElement();
            }
        }

        if ($isMultiLevelSeries) {
            if ($groupType !== DataSeries::TYPE_BUBBLECHART) {
                $objWriter->startElement('c:noMultiLvlLbl');
                $objWriter->writeAttribute('val', 0);
                $objWriter->endElement();
            }
        }

        $objWriter->endElement();
    }
private function writeValueAxis ( $ objWriter , $ yAxisLabel , $ groupType , $ id1 , $ id2 , $ isMultiLevelSeries , Axis $ xAxis , GridLines $ majorGridlines , GridLines $ minorGridlines ) { $ objWriter -> startElement ( 'c:valAx' ) ; if ( $ id2 > 0 ) { $ objWriter -> startElement ( 'c:axId' ) ; $ objWriter -> writeAttribute ( 'val' , $ id2 ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> startElement ( 'c:scaling' ) ; if ( $ xAxis -> getAxisOptionsProperty ( 'maximum' ) !== null ) { $ objWriter -> startElement ( 'c:max' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'maximum' ) ) ; $ objWriter -> endElement ( ) ; } if ( $ xAxis -> getAxisOptionsProperty ( 'minimum' ) !== null ) { $ objWriter -> startElement ( 'c:min' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'minimum' ) ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> startElement ( 'c:orientation' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'orientation' ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'c:delete' ) ; $ objWriter -> writeAttribute ( 'val' , 0 ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'c:axPos' ) ; $ objWriter -> writeAttribute ( 'val' , 'l' ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'c:majorGridlines' ) ; $ objWriter -> startElement ( 'c:spPr' ) ; if ( $ majorGridlines -> getLineColorProperty ( 'value' ) !== null ) { $ objWriter -> startElement ( 'a:ln' ) ; $ objWriter -> writeAttribute ( 'w' , $ majorGridlines -> getLineStyleProperty ( 'width' ) ) ; $ objWriter -> startElement ( 'a:solidFill' ) ; $ objWriter -> startElement ( "a:{$majorGridlines->getLineColorProperty('type')}" ) ; $ objWriter -> writeAttribute ( 'val' , $ majorGridlines -> getLineColorProperty ( 'value' ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ majorGridlines -> getLineColorProperty ( 'alpha' ) ) ; $ objWriter -> endElement ( ) ; //end alpha $ objWriter -> endElement ( ) ; //end srgbClr $ objWriter -> endElement ( ) ; //end solidFill $ objWriter -> startElement ( 'a:prstDash' ) ; $ objWriter -> writeAttribute ( 'val' , $ majorGridlines -> getLineStyleProperty ( 'dash' ) ) ; $ objWriter -> endElement ( ) ; if ( $ majorGridlines -> getLineStyleProperty ( 'join' ) == 'miter' ) { $ objWriter -> startElement ( 'a:miter' ) ; $ objWriter -> writeAttribute ( 'lim' , '800000' ) ; $ objWriter -> endElement ( ) ; } else { $ objWriter -> startElement ( 'a:bevel' ) ; $ objWriter -> endElement ( ) ; } if ( $ majorGridlines -> getLineStyleProperty ( [ 'arrow' , 'head' , 'type' ] ) !== null ) { $ objWriter -> startElement ( 'a:headEnd' ) ; $ objWriter -> writeAttribute ( 'type' , $ majorGridlines -> getLineStyleProperty ( [ 'arrow' , 'head' , 'type' ] ) ) ; $ objWriter -> writeAttribute ( 'w' , $ majorGridlines -> getLineStyleArrowParameters ( 'head' , 'w' ) ) ; $ objWriter -> writeAttribute ( 'len' , $ majorGridlines -> getLineStyleArrowParameters ( 'head' , 'len' ) ) ; $ objWriter -> endElement ( ) ; } if ( $ majorGridlines -> getLineStyleProperty ( [ 'arrow' , 'end' , 'type' ] ) !== null ) { $ objWriter -> startElement ( 'a:tailEnd' ) ; $ objWriter -> writeAttribute ( 'type' , $ majorGridlines -> getLineStyleProperty ( [ 'arrow' , 'end' , 'type' ] ) ) ; $ objWriter -> writeAttribute ( 'w' , $ majorGridlines -> getLineStyleArrowParameters ( 'end' , 'w' ) ) ; $ objWriter -> writeAttribute ( 'len' , $ majorGridlines -> getLineStyleArrowParameters ( 'end' , 'len' ) ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> endElement ( ) ; //end ln } $ objWriter -> startElement ( 'a:effectLst' ) ; if ( $ majorGridlines -> getGlowSize ( ) !== null ) { $ objWriter -> startElement ( 'a:glow' ) ; $ objWriter -> writeAttribute ( 'rad' , $ majorGridlines -> getGlowSize ( ) ) ; $ objWriter -> startElement ( "a:{$majorGridlines->getGlowColor('type')}" ) ; $ objWriter -> writeAttribute ( 'val' , $ majorGridlines -> getGlowColor ( 'value' ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ majorGridlines -> getGlowColor ( 'alpha' ) ) ; $ objWriter -> endElement ( ) ; //end alpha $ objWriter -> endElement ( ) ; //end schemeClr $ objWriter -> endElement ( ) ; //end glow } if ( $ majorGridlines -> getShadowProperty ( 'presets' ) !== null ) { $ objWriter -> startElement ( "a:{$majorGridlines->getShadowProperty('effect')}" ) ; if ( $ majorGridlines -> getShadowProperty ( 'blur' ) !== null ) { $ objWriter -> writeAttribute ( 'blurRad' , $ majorGridlines -> getShadowProperty ( 'blur' ) ) ; } if ( $ majorGridlines -> getShadowProperty ( 'distance' ) !== null ) { $ objWriter -> writeAttribute ( 'dist' , $ majorGridlines -> getShadowProperty ( 'distance' ) ) ; } if ( $ majorGridlines -> getShadowProperty ( 'direction' ) !== null ) { $ objWriter -> writeAttribute ( 'dir' , $ majorGridlines -> getShadowProperty ( 'direction' ) ) ; } if ( $ majorGridlines -> getShadowProperty ( 'algn' ) !== null ) { $ objWriter -> writeAttribute ( 'algn' , $ majorGridlines -> getShadowProperty ( 'algn' ) ) ; } if ( $ majorGridlines -> getShadowProperty ( [ 'size' , 'sx' ] ) !== null ) { $ objWriter -> writeAttribute ( 'sx' , $ majorGridlines -> getShadowProperty ( [ 'size' , 'sx' ] ) ) ; } if ( $ majorGridlines -> getShadowProperty ( [ 'size' , 'sy' ] ) !== null ) { $ objWriter -> writeAttribute ( 'sy' , $ majorGridlines -> getShadowProperty ( [ 'size' , 'sy' ] ) ) ; } if ( $ majorGridlines -> getShadowProperty ( [ 'size' , 'kx' ] ) !== null ) { $ objWriter -> writeAttribute ( 'kx' , $ majorGridlines -> getShadowProperty ( [ 'size' , 'kx' ] ) ) ; } if ( $ majorGridlines -> getShadowProperty ( 'rotWithShape' ) !== null ) { $ objWriter -> writeAttribute ( 'rotWithShape' , $ majorGridlines -> getShadowProperty ( 'rotWithShape' ) ) ; } $ objWriter -> startElement ( "a:{$majorGridlines->getShadowProperty(['color', 'type'])}" ) ; $ objWriter -> writeAttribute ( 'val' , $ majorGridlines -> getShadowProperty ( [ 'color' , 'value' ] ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ majorGridlines -> getShadowProperty ( [ 'color' , 'alpha' ] ) ) ; $ objWriter -> endElement ( ) ; //end alpha $ objWriter -> endElement ( ) ; //end color:type $ objWriter -> endElement ( ) ; //end shadow } if ( $ majorGridlines -> getSoftEdgesSize ( ) !== null ) { $ objWriter -> startElement ( 'a:softEdge' ) ; $ objWriter -> writeAttribute ( 'rad' , $ majorGridlines -> getSoftEdgesSize ( ) ) ; $ objWriter -> endElement ( ) ; //end softEdge } $ objWriter -> endElement ( ) ; //end effectLst $ objWriter -> endElement ( ) ; //end spPr $ objWriter -> endElement ( ) ; //end majorGridLines if ( $ minorGridlines -> getObjectState ( ) ) { $ objWriter -> startElement ( 'c:minorGridlines' ) ; $ objWriter -> startElement ( 'c:spPr' ) ; if ( $ minorGridlines -> getLineColorProperty ( 'value' ) !== null ) { $ objWriter -> startElement ( 'a:ln' ) ; $ objWriter -> writeAttribute ( 'w' , $ minorGridlines -> getLineStyleProperty ( 'width' ) ) ; $ objWriter -> startElement ( 'a:solidFill' ) ; $ objWriter -> startElement ( "a:{$minorGridlines->getLineColorProperty('type')}" ) ; $ objWriter -> writeAttribute ( 'val' , $ minorGridlines -> getLineColorProperty ( 'value' ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ minorGridlines -> getLineColorProperty ( 'alpha' ) ) ; $ objWriter -> endElement ( ) ; //end alpha $ objWriter -> endElement ( ) ; //end srgbClr $ objWriter -> endElement ( ) ; //end solidFill $ objWriter -> startElement ( 'a:prstDash' ) ; $ objWriter -> writeAttribute ( 'val' , $ minorGridlines -> getLineStyleProperty ( 'dash' ) ) ; $ objWriter -> endElement ( ) ; if ( $ minorGridlines -> getLineStyleProperty ( 'join' ) == 'miter' ) { $ objWriter -> startElement ( 'a:miter' ) ; $ objWriter -> writeAttribute ( 'lim' , '800000' ) ; $ objWriter -> endElement ( ) ; } else { $ objWriter -> startElement ( 'a:bevel' ) ; $ objWriter -> endElement ( ) ; } if ( $ minorGridlines -> getLineStyleProperty ( [ 'arrow' , 'head' , 'type' ] ) !== null ) { $ objWriter -> startElement ( 'a:headEnd' ) ; $ objWriter -> writeAttribute ( 'type' , $ minorGridlines -> getLineStyleProperty ( [ 'arrow' , 'head' , 'type' ] ) ) ; $ objWriter -> writeAttribute ( 'w' , $ minorGridlines -> getLineStyleArrowParameters ( 'head' , 'w' ) ) ; $ objWriter -> writeAttribute ( 'len' , $ minorGridlines -> getLineStyleArrowParameters ( 'head' , 'len' ) ) ; $ objWriter -> endElement ( ) ; } if ( $ minorGridlines -> getLineStyleProperty ( [ 'arrow' , 'end' , 'type' ] ) !== null ) { $ objWriter -> startElement ( 'a:tailEnd' ) ; $ objWriter -> writeAttribute ( 'type' , $ minorGridlines -> getLineStyleProperty ( [ 'arrow' , 'end' , 'type' ] ) ) ; $ objWriter -> writeAttribute ( 'w' , $ minorGridlines -> getLineStyleArrowParameters ( 'end' , 'w' ) ) ; $ objWriter -> writeAttribute ( 'len' , $ minorGridlines -> getLineStyleArrowParameters ( 'end' , 'len' ) ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> endElement ( ) ; //end ln } $ objWriter -> startElement ( 'a:effectLst' ) ; if ( $ minorGridlines -> getGlowSize ( ) !== null ) { $ objWriter -> startElement ( 'a:glow' ) ; $ objWriter -> writeAttribute ( 'rad' , $ minorGridlines -> getGlowSize ( ) ) ; $ objWriter -> startElement ( "a:{$minorGridlines->getGlowColor('type')}" ) ; $ objWriter -> writeAttribute ( 'val' , $ minorGridlines -> getGlowColor ( 'value' ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ minorGridlines -> getGlowColor ( 'alpha' ) ) ; $ objWriter -> endElement ( ) ; //end alpha $ objWriter -> endElement ( ) ; //end schemeClr $ objWriter -> endElement ( ) ; //end glow } if ( $ minorGridlines -> getShadowProperty ( 'presets' ) !== null ) { $ objWriter -> startElement ( "a:{$minorGridlines->getShadowProperty('effect')}" ) ; if ( $ minorGridlines -> getShadowProperty ( 'blur' ) !== null ) { $ objWriter -> writeAttribute ( 'blurRad' , $ minorGridlines -> getShadowProperty ( 'blur' ) ) ; } if ( $ minorGridlines -> getShadowProperty ( 'distance' ) !== null ) { $ objWriter -> writeAttribute ( 'dist' , $ minorGridlines -> getShadowProperty ( 'distance' ) ) ; } if ( $ minorGridlines -> getShadowProperty ( 'direction' ) !== null ) { $ objWriter -> writeAttribute ( 'dir' , $ minorGridlines -> getShadowProperty ( 'direction' ) ) ; } if ( $ minorGridlines -> getShadowProperty ( 'algn' ) !== null ) { $ objWriter -> writeAttribute ( 'algn' , $ minorGridlines -> getShadowProperty ( 'algn' ) ) ; } if ( $ minorGridlines -> getShadowProperty ( [ 'size' , 'sx' ] ) !== null ) { $ objWriter -> writeAttribute ( 'sx' , $ minorGridlines -> getShadowProperty ( [ 'size' , 'sx' ] ) ) ; } if ( $ minorGridlines -> getShadowProperty ( [ 'size' , 'sy' ] ) !== null ) { $ objWriter -> writeAttribute ( 'sy' , $ minorGridlines -> getShadowProperty ( [ 'size' , 'sy' ] ) ) ; } if ( $ minorGridlines -> getShadowProperty ( [ 'size' , 'kx' ] ) !== null ) { $ objWriter -> writeAttribute ( 'kx' , $ minorGridlines -> getShadowProperty ( [ 'size' , 'kx' ] ) ) ; } if ( $ minorGridlines -> getShadowProperty ( 'rotWithShape' ) !== null ) { $ objWriter -> writeAttribute ( 'rotWithShape' , $ minorGridlines -> getShadowProperty ( 'rotWithShape' ) ) ; } $ objWriter -> startElement ( "a:{$minorGridlines->getShadowProperty(['color', 'type'])}" ) ; $ objWriter -> writeAttribute ( 'val' , $ minorGridlines -> getShadowProperty ( [ 'color' , 'value' ] ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ minorGridlines -> getShadowProperty ( [ 'color' , 'alpha' ] ) ) ; $ objWriter -> endElement ( ) ; //end alpha $ objWriter -> endElement ( ) ; //end color:type $ objWriter -> endElement ( ) ; //end shadow } if ( $ minorGridlines -> getSoftEdgesSize ( ) !== null ) { $ objWriter -> startElement ( 'a:softEdge' ) ; $ objWriter -> writeAttribute ( 'rad' , $ minorGridlines -> getSoftEdgesSize ( ) ) ; $ objWriter -> endElement ( ) ; //end softEdge } $ objWriter -> endElement ( ) ; //end effectLst $ objWriter -> endElement ( ) ; //end spPr $ objWriter -> endElement ( ) ; //end minorGridLines } if ( $ yAxisLabel !== null ) { $ objWriter -> startElement ( 'c:title' ) ; $ objWriter -> startElement ( 'c:tx' ) ; $ objWriter -> startElement ( 'c:rich' ) ; $ objWriter -> startElement ( 'a:bodyPr' ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'a:lstStyle' ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'a:p' ) ; $ objWriter -> startElement ( 'a:r' ) ; $ caption = $ yAxisLabel -> getCaption ( ) ; if ( is_array ( $ caption ) ) { $ caption = $ caption [ 0 ] ; } $ objWriter -> startElement ( 'a:t' ) ; $ objWriter -> writeRawData ( StringHelper :: controlCharacterPHP2OOXML ( $ caption ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; if ( $ groupType !== DataSeries :: TYPE_BUBBLECHART ) { $ layout = $ yAxisLabel -> getLayout ( ) ; $ this -> writeLayout ( $ objWriter , $ layout ) ; } $ objWriter -> startElement ( 'c:overlay' ) ; $ objWriter -> writeAttribute ( 'val' , 0 ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> startElement ( 'c:numFmt' ) ; $ objWriter -> writeAttribute ( 'formatCode' , $ xAxis -> getAxisNumberFormat ( ) ) ; $ objWriter -> writeAttribute ( 'sourceLinked' , $ xAxis -> getAxisNumberSourceLinked ( ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'c:majorTickMark' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'major_tick_mark' ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'c:minorTickMark' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'minor_tick_mark' ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'c:tickLblPos' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'axis_labels' ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'c:spPr' ) ; if ( $ xAxis -> getFillProperty ( 'value' ) !== null ) { $ objWriter -> startElement ( 'a:solidFill' ) ; $ objWriter -> startElement ( 'a:' . $ xAxis -> getFillProperty ( 'type' ) ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getFillProperty ( 'value' ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getFillProperty ( 'alpha' ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> startElement ( 'a:ln' ) ; $ objWriter -> writeAttribute ( 'w' , $ xAxis -> getLineStyleProperty ( 'width' ) ) ; $ objWriter -> writeAttribute ( 'cap' , $ xAxis -> getLineStyleProperty ( 'cap' ) ) ; $ objWriter -> writeAttribute ( 'cmpd' , $ xAxis -> getLineStyleProperty ( 'compound' ) ) ; if ( $ xAxis -> getLineProperty ( 'value' ) !== null ) { $ objWriter -> startElement ( 'a:solidFill' ) ; $ objWriter -> startElement ( 'a:' . $ xAxis -> getLineProperty ( 'type' ) ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getLineProperty ( 'value' ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getLineProperty ( 'alpha' ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> startElement ( 'a:prstDash' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getLineStyleProperty ( 'dash' ) ) ; $ objWriter -> endElement ( ) ; if ( $ xAxis -> getLineStyleProperty ( 'join' ) == 'miter' ) { $ objWriter -> startElement ( 'a:miter' ) ; $ objWriter -> writeAttribute ( 'lim' , '800000' ) ; $ objWriter -> endElement ( ) ; } else { $ objWriter -> startElement ( 'a:bevel' ) ; $ objWriter -> endElement ( ) ; } if ( $ xAxis -> getLineStyleProperty ( [ 'arrow' , 'head' , 'type' ] ) !== null ) { $ objWriter -> startElement ( 'a:headEnd' ) ; $ objWriter -> writeAttribute ( 'type' , $ xAxis -> getLineStyleProperty ( [ 'arrow' , 'head' , 'type' ] ) ) ; $ objWriter -> writeAttribute ( 'w' , $ xAxis -> getLineStyleArrowWidth ( 'head' ) ) ; $ objWriter -> writeAttribute ( 'len' , $ xAxis -> getLineStyleArrowLength ( 'head' ) ) ; $ objWriter -> endElement ( ) ; } if ( $ xAxis -> getLineStyleProperty ( [ 'arrow' , 'end' , 'type' ] ) !== null ) { $ objWriter -> startElement ( 'a:tailEnd' ) ; $ objWriter -> writeAttribute ( 'type' , $ xAxis -> getLineStyleProperty ( [ 'arrow' , 'end' , 'type' ] ) ) ; $ objWriter -> writeAttribute ( 'w' , $ xAxis -> getLineStyleArrowWidth ( 'end' ) ) ; $ objWriter -> writeAttribute ( 'len' , $ xAxis -> getLineStyleArrowLength ( 'end' ) ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> endElement ( ) ; $ objWriter -> startElement ( 'a:effectLst' ) ; if ( $ xAxis -> getGlowProperty ( 'size' ) !== null ) { $ objWriter -> startElement ( 'a:glow' ) ; $ objWriter -> writeAttribute ( 'rad' , $ xAxis -> getGlowProperty ( 'size' ) ) ; $ objWriter -> startElement ( "a:{$xAxis->getGlowProperty(['color', 'type'])}" ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getGlowProperty ( [ 'color' , 'value' ] ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getGlowProperty ( [ 'color' , 'alpha' ] ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; } if ( $ xAxis -> getShadowProperty ( 'presets' ) !== null ) { $ objWriter -> startElement ( "a:{$xAxis->getShadowProperty('effect')}" ) ; if ( $ xAxis -> getShadowProperty ( 'blur' ) !== null ) { $ objWriter -> writeAttribute ( 'blurRad' , $ xAxis -> getShadowProperty ( 'blur' ) ) ; } if ( $ xAxis -> getShadowProperty ( 'distance' ) !== null ) { $ objWriter -> writeAttribute ( 'dist' , $ xAxis -> getShadowProperty ( 'distance' ) ) ; } if ( $ xAxis -> getShadowProperty ( 'direction' ) !== null ) { $ objWriter -> writeAttribute ( 'dir' , $ xAxis -> getShadowProperty ( 'direction' ) ) ; } if ( $ xAxis -> getShadowProperty ( 'algn' ) !== null ) { $ objWriter -> writeAttribute ( 'algn' , $ xAxis -> getShadowProperty ( 'algn' ) ) ; } if ( $ xAxis -> getShadowProperty ( [ 'size' , 'sx' ] ) !== null ) { $ objWriter -> writeAttribute ( 'sx' , $ xAxis -> getShadowProperty ( [ 'size' , 'sx' ] ) ) ; } if ( $ xAxis -> getShadowProperty ( [ 'size' , 'sy' ] ) !== null ) { $ objWriter -> writeAttribute ( 'sy' , $ xAxis -> getShadowProperty ( [ 'size' , 'sy' ] ) ) ; } if ( $ xAxis -> getShadowProperty ( [ 'size' , 'kx' ] ) !== null ) { $ objWriter -> writeAttribute ( 'kx' , $ xAxis -> getShadowProperty ( [ 'size' , 'kx' ] ) ) ; } if ( $ xAxis -> getShadowProperty ( 'rotWithShape' ) !== null ) { $ objWriter -> writeAttribute ( 'rotWithShape' , $ xAxis -> getShadowProperty ( 'rotWithShape' ) ) ; } $ objWriter -> startElement ( "a:{$xAxis->getShadowProperty(['color', 'type'])}" ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getShadowProperty ( [ 'color' , 'value' ] ) ) ; $ objWriter -> startElement ( 'a:alpha' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getShadowProperty ( [ 'color' , 'alpha' ] ) ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; $ objWriter -> endElement ( ) ; } if ( $ xAxis -> getSoftEdgesSize ( ) !== null ) { $ objWriter -> startElement ( 'a:softEdge' ) ; $ objWriter -> writeAttribute ( 'rad' , $ xAxis -> getSoftEdgesSize ( ) ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> endElement ( ) ; //effectList $ objWriter -> endElement ( ) ; //end spPr if ( $ id1 > 0 ) { $ objWriter -> startElement ( 'c:crossAx' ) ; $ objWriter -> writeAttribute ( 'val' , $ id2 ) ; $ objWriter -> endElement ( ) ; if ( $ xAxis -> getAxisOptionsProperty ( 'horizontal_crosses_value' ) !== null ) { $ objWriter -> startElement ( 'c:crossesAt' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'horizontal_crosses_value' ) ) ; $ objWriter -> endElement ( ) ; } else { $ objWriter -> startElement ( 'c:crosses' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'horizontal_crosses' ) ) ; $ objWriter -> endElement ( ) ; } $ objWriter -> startElement ( 'c:crossBetween' ) ; $ objWriter -> writeAttribute ( 'val' , 'midCat' ) ; $ objWriter -> endElement ( ) ; if ( $ xAxis -> getAxisOptionsProperty ( 'major_unit' ) !== null ) { $ objWriter -> startElement ( 'c:majorUnit' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'major_unit' ) ) ; $ objWriter -> endElement ( ) ; } if ( $ xAxis -> getAxisOptionsProperty ( 'minor_unit' ) !== null ) { $ objWriter -> startElement ( 'c:minorUnit' ) ; $ objWriter -> writeAttribute ( 'val' , $ xAxis -> getAxisOptionsProperty ( 'minor_unit' ) ) ; $ objWriter -> endElement ( ) ; } } if ( $ isMultiLevelSeries ) { if ( $ groupType !== DataSeries :: TYPE_BUBBLECHART ) { $ objWriter -> startElement ( 'c:noMultiLvlLbl' ) ; $ objWriter -> writeAttribute ( 'val' , 0 ) ; $ objWriter -> endElement ( ) ; } } $ objWriter -> endElement ( ) ; }
Write Value Axis.

@param XMLWriter $objWriter XML Writer
@param Title $yAxisLabel
@param string $groupType Chart type
@param string $id1
@param string $id2
@param bool $isMultiLevelSeries
@param Axis $xAxis
@param GridLines $majorGridlines
@param GridLines $minorGridlines

@throws WriterException
Write Value Axis .