45        if ($this->calculateCellValues) {
 
   50        $objWriter->startDocument(
'1.0', 
'UTF-8', 
'yes');
 
   53        $objWriter->startElement(
'c:chartSpace');
 
   54        $objWriter->writeAttribute(
'xmlns:c', 
'http://schemas.openxmlformats.org/drawingml/2006/chart');
 
   55        $objWriter->writeAttribute(
'xmlns:a', 
'http://schemas.openxmlformats.org/drawingml/2006/main');
 
   56        $objWriter->writeAttribute(
'xmlns:r', 
'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
 
   58        $objWriter->startElement(
'c:date1904');
 
   59        $objWriter->writeAttribute(
'val', 0);
 
   60        $objWriter->endElement();
 
   61        $objWriter->startElement(
'c:lang');
 
   62        $objWriter->writeAttribute(
'val', 
'en-GB');
 
   63        $objWriter->endElement();
 
   64        $objWriter->startElement(
'c:roundedCorners');
 
   65        $objWriter->writeAttribute(
'val', 0);
 
   66        $objWriter->endElement();
 
   70        $objWriter->startElement(
'c:chart');
 
   72        $this->
writeTitle($objWriter, $pChart->getTitle());
 
   74        $objWriter->startElement(
'c:autoTitleDeleted');
 
   75        $objWriter->writeAttribute(
'val', 0);
 
   76        $objWriter->endElement();
 
   78        $this->
writePlotArea($objWriter, $pChart->getWorksheet(), $pChart->getPlotArea(), $pChart->getXAxisLabel(), $pChart->getYAxisLabel(), $pChart->getChartAxisX(), $pChart->getChartAxisY(), $pChart->getMajorGridlines(), $pChart->getMinorGridlines());
 
   80        $this->
writeLegend($objWriter, $pChart->getLegend());
 
   82        $objWriter->startElement(
'c:plotVisOnly');
 
   83        $objWriter->writeAttribute(
'val', (
int) $pChart->getPlotVisibleOnly());
 
   84        $objWriter->endElement();
 
   86        $objWriter->startElement(
'c:dispBlanksAs');
 
   87        $objWriter->writeAttribute(
'val', $pChart->getDisplayBlanksAs());
 
   88        $objWriter->endElement();
 
   90        $objWriter->startElement(
'c:showDLblsOverMax');
 
   91        $objWriter->writeAttribute(
'val', 0);
 
   92        $objWriter->endElement();
 
   94        $objWriter->endElement();
 
   98        $objWriter->endElement();
 
  101        return $objWriter->getData();
 
  116        $objWriter->startElement(
'c:title');
 
  117        $objWriter->startElement(
'c:tx');
 
  118        $objWriter->startElement(
'c:rich');
 
  120        $objWriter->startElement(
'a:bodyPr');
 
  121        $objWriter->endElement();
 
  123        $objWriter->startElement(
'a:lstStyle');
 
  124        $objWriter->endElement();
 
  126        $objWriter->startElement(
'a:p');
 
  128        $caption = 
$title->getCaption();
 
  129        if ((is_array($caption)) && (count($caption) > 0)) {
 
  130            $caption = $caption[0];
 
  132        $this->
getParentWriter()->getWriterPartstringtable()->writeRichTextForCharts($objWriter, $caption, 
'a');
 
  134        $objWriter->endElement();
 
  135        $objWriter->endElement();
 
  136        $objWriter->endElement();
 
  140        $objWriter->startElement(
'c:overlay');
 
  141        $objWriter->writeAttribute(
'val', 0);
 
  142        $objWriter->endElement();
 
  144        $objWriter->endElement();
 
  159        $objWriter->startElement(
'c:legend');
 
  161        $objWriter->startElement(
'c:legendPos');
 
  162        $objWriter->writeAttribute(
'val', 
$legend->getPosition());
 
  163        $objWriter->endElement();
 
  167        $objWriter->startElement(
'c:overlay');
 
  168        $objWriter->writeAttribute(
'val', (
$legend->getOverlay()) ? 
'1' : 
'0');
 
  169        $objWriter->endElement();
 
  171        $objWriter->startElement(
'c:txPr');
 
  172        $objWriter->startElement(
'a:bodyPr');
 
  173        $objWriter->endElement();
 
  175        $objWriter->startElement(
'a:lstStyle');
 
  176        $objWriter->endElement();
 
  178        $objWriter->startElement(
'a:p');
 
  179        $objWriter->startElement(
'a:pPr');
 
  180        $objWriter->writeAttribute(
'rtl', 0);
 
  182        $objWriter->startElement(
'a:defRPr');
 
  183        $objWriter->endElement();
 
  184        $objWriter->endElement();
 
  186        $objWriter->startElement(
'a:endParaRPr');
 
  187        $objWriter->writeAttribute(
'lang', 
'en-US');
 
  188        $objWriter->endElement();
 
  190        $objWriter->endElement();
 
  191        $objWriter->endElement();
 
  193        $objWriter->endElement();
 
  207        if ($plotArea === 
null) {
 
  212        $this->seriesIndex = 0;
 
  213        $objWriter->startElement(
'c:plotArea');
 
  220        $catIsMultiLevelSeries = $valIsMultiLevelSeries = 
false;
 
  221        $plotGroupingType = 
'';
 
  223        foreach ($chartTypes as $chartType) {
 
  224            $objWriter->startElement(
'c:' . $chartType);
 
  228            for (
$i = 0; 
$i < $groupCount; ++
$i) {
 
  230                $groupType = $plotGroup->getPlotType();
 
  231                if ($groupType == $chartType) {
 
  232                    $plotStyle = $plotGroup->getPlotStyle();
 
  234                        $objWriter->startElement(
'c:radarStyle');
 
  235                        $objWriter->writeAttribute(
'val', $plotStyle);
 
  236                        $objWriter->endElement();
 
  238                        $objWriter->startElement(
'c:scatterStyle');
 
  239                        $objWriter->writeAttribute(
'val', $plotStyle);
 
  240                        $objWriter->endElement();
 
  243                    $this->
writePlotGroup($plotGroup, $chartType, $objWriter, $catIsMultiLevelSeries, $valIsMultiLevelSeries, $plotGroupingType);
 
  251                $objWriter->startElement(
'c:smooth');
 
  252                $objWriter->writeAttribute(
'val', (
int) $plotGroup->getSmoothLine());
 
  253                $objWriter->endElement();
 
  255                $objWriter->startElement(
'c:gapWidth');
 
  256                $objWriter->writeAttribute(
'val', 150);
 
  257                $objWriter->endElement();
 
  259                if ($plotGroupingType == 
'percentStacked' || $plotGroupingType == 
'stacked') {
 
  260                    $objWriter->startElement(
'c:overlap');
 
  261                    $objWriter->writeAttribute(
'val', 100);
 
  262                    $objWriter->endElement();
 
  265                $objWriter->startElement(
'c:bubbleScale');
 
  266                $objWriter->writeAttribute(
'val', 25);
 
  267                $objWriter->endElement();
 
  269                $objWriter->startElement(
'c:showNegBubbles');
 
  270                $objWriter->writeAttribute(
'val', 0);
 
  271                $objWriter->endElement();
 
  273                $objWriter->startElement(
'c:hiLowLines');
 
  274                $objWriter->endElement();
 
  276                $objWriter->startElement(
'c:upDownBars');
 
  278                $objWriter->startElement(
'c:gapWidth');
 
  279                $objWriter->writeAttribute(
'val', 300);
 
  280                $objWriter->endElement();
 
  282                $objWriter->startElement(
'c:upBars');
 
  283                $objWriter->endElement();
 
  285                $objWriter->startElement(
'c:downBars');
 
  286                $objWriter->endElement();
 
  288                $objWriter->endElement();
 
  296                $objWriter->startElement(
'c:axId');
 
  297                $objWriter->writeAttribute(
'val', $id1);
 
  298                $objWriter->endElement();
 
  299                $objWriter->startElement(
'c:axId');
 
  300                $objWriter->writeAttribute(
'val', $id2);
 
  301                $objWriter->endElement();
 
  303                $objWriter->startElement(
'c:firstSliceAng');
 
  304                $objWriter->writeAttribute(
'val', 0);
 
  305                $objWriter->endElement();
 
  308                    $objWriter->startElement(
'c:holeSize');
 
  309                    $objWriter->writeAttribute(
'val', 50);
 
  310                    $objWriter->endElement();
 
  314            $objWriter->endElement();
 
  319                $this->
writeValueAxis($objWriter, $xAxisLabel, $chartType, $id1, $id2, $catIsMultiLevelSeries, $xAxis, $majorGridlines, $minorGridlines);
 
  321                $this->
writeCategoryAxis($objWriter, $xAxisLabel, $id1, $id2, $catIsMultiLevelSeries, $xAxis);
 
  324            $this->
writeValueAxis($objWriter, $yAxisLabel, $chartType, $id1, $id2, $valIsMultiLevelSeries, $yAxis, $majorGridlines, $minorGridlines);
 
  327        $objWriter->endElement();
 
  338        $objWriter->startElement(
'c:dLbls');
 
  340        $objWriter->startElement(
'c:showLegendKey');
 
  341        $showLegendKey = (empty($chartLayout)) ? 0 : $chartLayout->getShowLegendKey();
 
  342        $objWriter->writeAttribute(
'val', ((empty($showLegendKey)) ? 0 : 1));
 
  343        $objWriter->endElement();
 
  345        $objWriter->startElement(
'c:showVal');
 
  346        $showVal = (empty($chartLayout)) ? 0 : $chartLayout->getShowVal();
 
  347        $objWriter->writeAttribute(
'val', ((empty($showVal)) ? 0 : 1));
 
  348        $objWriter->endElement();
 
  350        $objWriter->startElement(
'c:showCatName');
 
  351        $showCatName = (empty($chartLayout)) ? 0 : $chartLayout->getShowCatName();
 
  352        $objWriter->writeAttribute(
'val', ((empty($showCatName)) ? 0 : 1));
 
  353        $objWriter->endElement();
 
  355        $objWriter->startElement(
'c:showSerName');
 
  356        $showSerName = (empty($chartLayout)) ? 0 : $chartLayout->getShowSerName();
 
  357        $objWriter->writeAttribute(
'val', ((empty($showSerName)) ? 0 : 1));
 
  358        $objWriter->endElement();
 
  360        $objWriter->startElement(
'c:showPercent');
 
  361        $showPercent = (empty($chartLayout)) ? 0 : $chartLayout->getShowPercent();
 
  362        $objWriter->writeAttribute(
'val', ((empty($showPercent)) ? 0 : 1));
 
  363        $objWriter->endElement();
 
  365        $objWriter->startElement(
'c:showBubbleSize');
 
  366        $showBubbleSize = (empty($chartLayout)) ? 0 : $chartLayout->getShowBubbleSize();
 
  367        $objWriter->writeAttribute(
'val', ((empty($showBubbleSize)) ? 0 : 1));
 
  368        $objWriter->endElement();
 
  370        $objWriter->startElement(
'c:showLeaderLines');
 
  371        $showLeaderLines = (empty($chartLayout)) ? 1 : $chartLayout->getShowLeaderLines();
 
  372        $objWriter->writeAttribute(
'val', ((empty($showLeaderLines)) ? 0 : 1));
 
  373        $objWriter->endElement();
 
  375        $objWriter->endElement();
 
  389        $objWriter->startElement(
'c:catAx');
 
  392            $objWriter->startElement(
'c:axId');
 
  393            $objWriter->writeAttribute(
'val', $id1);
 
  394            $objWriter->endElement();
 
  397        $objWriter->startElement(
'c:scaling');
 
  398        $objWriter->startElement(
'c:orientation');
 
  400        $objWriter->endElement();
 
  401        $objWriter->endElement();
 
  403        $objWriter->startElement(
'c:delete');
 
  404        $objWriter->writeAttribute(
'val', 0);
 
  405        $objWriter->endElement();
 
  407        $objWriter->startElement(
'c:axPos');
 
  408        $objWriter->writeAttribute(
'val', 
'b');
 
  409        $objWriter->endElement();
 
  411        if ($xAxisLabel !== 
null) {
 
  412            $objWriter->startElement(
'c:title');
 
  413            $objWriter->startElement(
'c:tx');
 
  414            $objWriter->startElement(
'c:rich');
 
  416            $objWriter->startElement(
'a:bodyPr');
 
  417            $objWriter->endElement();
 
  419            $objWriter->startElement(
'a:lstStyle');
 
  420            $objWriter->endElement();
 
  422            $objWriter->startElement(
'a:p');
 
  423            $objWriter->startElement(
'a:r');
 
  425            $caption = $xAxisLabel->getCaption();
 
  426            if (is_array($caption)) {
 
  427                $caption = $caption[0];
 
  429            $objWriter->startElement(
'a:t');
 
  431            $objWriter->endElement();
 
  433            $objWriter->endElement();
 
  434            $objWriter->endElement();
 
  435            $objWriter->endElement();
 
  436            $objWriter->endElement();
 
  438            $layout = $xAxisLabel->getLayout();
 
  441            $objWriter->startElement(
'c:overlay');
 
  442            $objWriter->writeAttribute(
'val', 0);
 
  443            $objWriter->endElement();
 
  445            $objWriter->endElement();
 
  448        $objWriter->startElement(
'c:numFmt');
 
  451        $objWriter->endElement();
 
  453        $objWriter->startElement(
'c:majorTickMark');
 
  455        $objWriter->endElement();
 
  457        $objWriter->startElement(
'c:minorTickMark');
 
  459        $objWriter->endElement();
 
  461        $objWriter->startElement(
'c:tickLblPos');
 
  463        $objWriter->endElement();
 
  466            $objWriter->startElement(
'c:crossAx');
 
  467            $objWriter->writeAttribute(
'val', $id2);
 
  468            $objWriter->endElement();
 
  470            $objWriter->startElement(
'c:crosses');
 
  472            $objWriter->endElement();
 
  475        $objWriter->startElement(
'c:auto');
 
  476        $objWriter->writeAttribute(
'val', 1);
 
  477        $objWriter->endElement();
 
  479        $objWriter->startElement(
'c:lblAlgn');
 
  480        $objWriter->writeAttribute(
'val', 
'ctr');
 
  481        $objWriter->endElement();
 
  483        $objWriter->startElement(
'c:lblOffset');
 
  484        $objWriter->writeAttribute(
'val', 100);
 
  485        $objWriter->endElement();
 
  487        if ($isMultiLevelSeries) {
 
  488            $objWriter->startElement(
'c:noMultiLvlLbl');
 
  489            $objWriter->writeAttribute(
'val', 0);
 
  490            $objWriter->endElement();
 
  492        $objWriter->endElement();
 
  507        $objWriter->startElement(
'c:valAx');
 
  510            $objWriter->startElement(
'c:axId');
 
  511            $objWriter->writeAttribute(
'val', $id2);
 
  512            $objWriter->endElement();
 
  515        $objWriter->startElement(
'c:scaling');
 
  518            $objWriter->startElement(
'c:max');
 
  520            $objWriter->endElement();
 
  524            $objWriter->startElement(
'c:min');
 
  526            $objWriter->endElement();
 
  529        $objWriter->startElement(
'c:orientation');
 
  532        $objWriter->endElement();
 
  533        $objWriter->endElement();
 
  535        $objWriter->startElement(
'c:delete');
 
  536        $objWriter->writeAttribute(
'val', 0);
 
  537        $objWriter->endElement();
 
  539        $objWriter->startElement(
'c:axPos');
 
  540        $objWriter->writeAttribute(
'val', 
'l');
 
  541        $objWriter->endElement();
 
  543        $objWriter->startElement(
'c:majorGridlines');
 
  544        $objWriter->startElement(
'c:spPr');
 
  547            $objWriter->startElement(
'a:ln');
 
  549            $objWriter->startElement(
'a:solidFill');
 
  550            $objWriter->startElement(
"a:{$majorGridlines->getLineColorProperty('type')}");
 
  552            $objWriter->startElement(
'a:alpha');
 
  554            $objWriter->endElement(); 
 
  555            $objWriter->endElement(); 
 
  556            $objWriter->endElement(); 
 
  558            $objWriter->startElement(
'a:prstDash');
 
  560            $objWriter->endElement();
 
  563                $objWriter->startElement(
'a:miter');
 
  564                $objWriter->writeAttribute(
'lim', 
'800000');
 
  565                $objWriter->endElement();
 
  567                $objWriter->startElement(
'a:bevel');
 
  568                $objWriter->endElement();
 
  572                $objWriter->startElement(
'a:headEnd');
 
  573                $objWriter->writeAttribute(
'type', $majorGridlines->
getLineStyleProperty([
'arrow', 
'head', 
'type']));
 
  576                $objWriter->endElement();
 
  580                $objWriter->startElement(
'a:tailEnd');
 
  581                $objWriter->writeAttribute(
'type', $majorGridlines->
getLineStyleProperty([
'arrow', 
'end', 
'type']));
 
  584                $objWriter->endElement();
 
  586            $objWriter->endElement(); 
 
  588        $objWriter->startElement(
'a:effectLst');
 
  591            $objWriter->startElement(
'a:glow');
 
  592            $objWriter->writeAttribute(
'rad', $majorGridlines->
getGlowSize());
 
  593            $objWriter->startElement(
"a:{$majorGridlines->getGlowColor('type')}");
 
  594            $objWriter->writeAttribute(
'val', $majorGridlines->
getGlowColor(
'value'));
 
  595            $objWriter->startElement(
'a:alpha');
 
  596            $objWriter->writeAttribute(
'val', $majorGridlines->
getGlowColor(
'alpha'));
 
  597            $objWriter->endElement(); 
 
  598            $objWriter->endElement(); 
 
  599            $objWriter->endElement(); 
 
  603            $objWriter->startElement(
"a:{$majorGridlines->getShadowProperty('effect')}");
 
  605                $objWriter->writeAttribute(
'blurRad', $majorGridlines->
getShadowProperty(
'blur'));
 
  608                $objWriter->writeAttribute(
'dist', $majorGridlines->
getShadowProperty(
'distance'));
 
  611                $objWriter->writeAttribute(
'dir', $majorGridlines->
getShadowProperty(
'direction'));
 
  617                $objWriter->writeAttribute(
'sx', $majorGridlines->
getShadowProperty([
'size', 
'sx']));
 
  620                $objWriter->writeAttribute(
'sy', $majorGridlines->
getShadowProperty([
'size', 
'sy']));
 
  623                $objWriter->writeAttribute(
'kx', $majorGridlines->
getShadowProperty([
'size', 
'kx']));
 
  626                $objWriter->writeAttribute(
'rotWithShape', $majorGridlines->
getShadowProperty(
'rotWithShape'));
 
  628            $objWriter->startElement(
"a:{$majorGridlines->getShadowProperty(['color', 'type'])}");
 
  629            $objWriter->writeAttribute(
'val', $majorGridlines->
getShadowProperty([
'color', 
'value']));
 
  631            $objWriter->startElement(
'a:alpha');
 
  632            $objWriter->writeAttribute(
'val', $majorGridlines->
getShadowProperty([
'color', 
'alpha']));
 
  633            $objWriter->endElement(); 
 
  635            $objWriter->endElement(); 
 
  636            $objWriter->endElement(); 
 
  640            $objWriter->startElement(
'a:softEdge');
 
  642            $objWriter->endElement(); 
 
  645        $objWriter->endElement(); 
 
  646        $objWriter->endElement(); 
 
  647        $objWriter->endElement(); 
 
  650            $objWriter->startElement(
'c:minorGridlines');
 
  651            $objWriter->startElement(
'c:spPr');
 
  654                $objWriter->startElement(
'a:ln');
 
  656                $objWriter->startElement(
'a:solidFill');
 
  657                $objWriter->startElement(
"a:{$minorGridlines->getLineColorProperty('type')}");
 
  659                $objWriter->startElement(
'a:alpha');
 
  661                $objWriter->endElement(); 
 
  662                $objWriter->endElement(); 
 
  663                $objWriter->endElement(); 
 
  665                $objWriter->startElement(
'a:prstDash');
 
  667                $objWriter->endElement();
 
  670                    $objWriter->startElement(
'a:miter');
 
  671                    $objWriter->writeAttribute(
'lim', 
'800000');
 
  672                    $objWriter->endElement();
 
  674                    $objWriter->startElement(
'a:bevel');
 
  675                    $objWriter->endElement();
 
  679                    $objWriter->startElement(
'a:headEnd');
 
  680                    $objWriter->writeAttribute(
'type', $minorGridlines->
getLineStyleProperty([
'arrow', 
'head', 
'type']));
 
  683                    $objWriter->endElement();
 
  687                    $objWriter->startElement(
'a:tailEnd');
 
  688                    $objWriter->writeAttribute(
'type', $minorGridlines->
getLineStyleProperty([
'arrow', 
'end', 
'type']));
 
  691                    $objWriter->endElement();
 
  693                $objWriter->endElement(); 
 
  696            $objWriter->startElement(
'a:effectLst');
 
  699                $objWriter->startElement(
'a:glow');
 
  700                $objWriter->writeAttribute(
'rad', $minorGridlines->
getGlowSize());
 
  701                $objWriter->startElement(
"a:{$minorGridlines->getGlowColor('type')}");
 
  702                $objWriter->writeAttribute(
'val', $minorGridlines->
getGlowColor(
'value'));
 
  703                $objWriter->startElement(
'a:alpha');
 
  704                $objWriter->writeAttribute(
'val', $minorGridlines->
getGlowColor(
'alpha'));
 
  705                $objWriter->endElement(); 
 
  706                $objWriter->endElement(); 
 
  707                $objWriter->endElement(); 
 
  711                $objWriter->startElement(
"a:{$minorGridlines->getShadowProperty('effect')}");
 
  713                    $objWriter->writeAttribute(
'blurRad', $minorGridlines->
getShadowProperty(
'blur'));
 
  716                    $objWriter->writeAttribute(
'dist', $minorGridlines->
getShadowProperty(
'distance'));
 
  719                    $objWriter->writeAttribute(
'dir', $minorGridlines->
getShadowProperty(
'direction'));
 
  725                    $objWriter->writeAttribute(
'sx', $minorGridlines->
getShadowProperty([
'size', 
'sx']));
 
  728                    $objWriter->writeAttribute(
'sy', $minorGridlines->
getShadowProperty([
'size', 
'sy']));
 
  731                    $objWriter->writeAttribute(
'kx', $minorGridlines->
getShadowProperty([
'size', 
'kx']));
 
  734                    $objWriter->writeAttribute(
'rotWithShape', $minorGridlines->
getShadowProperty(
'rotWithShape'));
 
  736                $objWriter->startElement(
"a:{$minorGridlines->getShadowProperty(['color', 'type'])}");
 
  737                $objWriter->writeAttribute(
'val', $minorGridlines->
getShadowProperty([
'color', 
'value']));
 
  738                $objWriter->startElement(
'a:alpha');
 
  739                $objWriter->writeAttribute(
'val', $minorGridlines->
getShadowProperty([
'color', 
'alpha']));
 
  740                $objWriter->endElement(); 
 
  741                $objWriter->endElement(); 
 
  742                $objWriter->endElement(); 
 
  746                $objWriter->startElement(
'a:softEdge');
 
  748                $objWriter->endElement(); 
 
  751            $objWriter->endElement(); 
 
  752            $objWriter->endElement(); 
 
  753            $objWriter->endElement(); 
 
  756        if ($yAxisLabel !== 
null) {
 
  757            $objWriter->startElement(
'c:title');
 
  758            $objWriter->startElement(
'c:tx');
 
  759            $objWriter->startElement(
'c:rich');
 
  761            $objWriter->startElement(
'a:bodyPr');
 
  762            $objWriter->endElement();
 
  764            $objWriter->startElement(
'a:lstStyle');
 
  765            $objWriter->endElement();
 
  767            $objWriter->startElement(
'a:p');
 
  768            $objWriter->startElement(
'a:r');
 
  770            $caption = $yAxisLabel->getCaption();
 
  771            if (is_array($caption)) {
 
  772                $caption = $caption[0];
 
  775            $objWriter->startElement(
'a:t');
 
  777            $objWriter->endElement();
 
  779            $objWriter->endElement();
 
  780            $objWriter->endElement();
 
  781            $objWriter->endElement();
 
  782            $objWriter->endElement();
 
  785                $layout = $yAxisLabel->getLayout();
 
  789            $objWriter->startElement(
'c:overlay');
 
  790            $objWriter->writeAttribute(
'val', 0);
 
  791            $objWriter->endElement();
 
  793            $objWriter->endElement();
 
  796        $objWriter->startElement(
'c:numFmt');
 
  799        $objWriter->endElement();
 
  801        $objWriter->startElement(
'c:majorTickMark');
 
  803        $objWriter->endElement();
 
  805        $objWriter->startElement(
'c:minorTickMark');
 
  807        $objWriter->endElement();
 
  809        $objWriter->startElement(
'c:tickLblPos');
 
  811        $objWriter->endElement();
 
  813        $objWriter->startElement(
'c:spPr');
 
  816            $objWriter->startElement(
'a:solidFill');
 
  819            $objWriter->startElement(
'a:alpha');
 
  821            $objWriter->endElement();
 
  822            $objWriter->endElement();
 
  823            $objWriter->endElement();
 
  826        $objWriter->startElement(
'a:ln');
 
  833            $objWriter->startElement(
'a:solidFill');
 
  836            $objWriter->startElement(
'a:alpha');
 
  838            $objWriter->endElement();
 
  839            $objWriter->endElement();
 
  840            $objWriter->endElement();
 
  843        $objWriter->startElement(
'a:prstDash');
 
  845        $objWriter->endElement();
 
  848            $objWriter->startElement(
'a:miter');
 
  849            $objWriter->writeAttribute(
'lim', 
'800000');
 
  850            $objWriter->endElement();
 
  852            $objWriter->startElement(
'a:bevel');
 
  853            $objWriter->endElement();
 
  857            $objWriter->startElement(
'a:headEnd');
 
  861            $objWriter->endElement();
 
  865            $objWriter->startElement(
'a:tailEnd');
 
  869            $objWriter->endElement();
 
  872        $objWriter->endElement();
 
  874        $objWriter->startElement(
'a:effectLst');
 
  877            $objWriter->startElement(
'a:glow');
 
  879            $objWriter->startElement(
"a:{$xAxis->getGlowProperty(['color', 'type'])}");
 
  880            $objWriter->writeAttribute(
'val', $xAxis->
getGlowProperty([
'color', 
'value']));
 
  881            $objWriter->startElement(
'a:alpha');
 
  882            $objWriter->writeAttribute(
'val', $xAxis->
getGlowProperty([
'color', 
'alpha']));
 
  883            $objWriter->endElement();
 
  884            $objWriter->endElement();
 
  885            $objWriter->endElement();
 
  889            $objWriter->startElement(
"a:{$xAxis->getShadowProperty('effect')}");
 
  913                $objWriter->writeAttribute(
'rotWithShape', $xAxis->
getShadowProperty(
'rotWithShape'));
 
  916            $objWriter->startElement(
"a:{$xAxis->getShadowProperty(['color', 'type'])}");
 
  917            $objWriter->writeAttribute(
'val', $xAxis->
getShadowProperty([
'color', 
'value']));
 
  918            $objWriter->startElement(
'a:alpha');
 
  919            $objWriter->writeAttribute(
'val', $xAxis->
getShadowProperty([
'color', 
'alpha']));
 
  920            $objWriter->endElement();
 
  921            $objWriter->endElement();
 
  923            $objWriter->endElement();
 
  927            $objWriter->startElement(
'a:softEdge');
 
  929            $objWriter->endElement();
 
  932        $objWriter->endElement(); 
 
  933        $objWriter->endElement(); 
 
  936            $objWriter->startElement(
'c:crossAx');
 
  937            $objWriter->writeAttribute(
'val', $id2);
 
  938            $objWriter->endElement();
 
  941                $objWriter->startElement(
'c:crossesAt');
 
  943                $objWriter->endElement();
 
  945                $objWriter->startElement(
'c:crosses');
 
  947                $objWriter->endElement();
 
  950            $objWriter->startElement(
'c:crossBetween');
 
  951            $objWriter->writeAttribute(
'val', 
'midCat');
 
  952            $objWriter->endElement();
 
  955                $objWriter->startElement(
'c:majorUnit');
 
  957                $objWriter->endElement();
 
  961                $objWriter->startElement(
'c:minorUnit');
 
  963                $objWriter->endElement();
 
  967        if ($isMultiLevelSeries) {
 
  969                $objWriter->startElement(
'c:noMultiLvlLbl');
 
  970                $objWriter->writeAttribute(
'val', 0);
 
  971                $objWriter->endElement();
 
  975        $objWriter->endElement();
 
  987        $groupCount = $plotArea->getPlotGroupCount();
 
  989        if ($groupCount == 1) {
 
  990            $chartType = [$plotArea->getPlotGroupByIndex(0)->getPlotType()];
 
  993            for (
$i = 0; 
$i < $groupCount; ++
$i) {
 
  994                $chartTypes[] = $plotArea->getPlotGroupByIndex(
$i)->getPlotType();
 
  996            $chartType = array_unique($chartTypes);
 
  997            if (count($chartTypes) == 0) {
 
  998                throw new WriterException(
'Chart is not yet implemented');
 
 1016        $objWriter->startElement(
'c:dPt');
 
 1017        $objWriter->startElement(
'c:idx');
 
 1018        $objWriter->writeAttribute(
'val', $val);
 
 1019        $objWriter->endElement();
 
 1021        $objWriter->startElement(
'c:bubble3D');
 
 1022        $objWriter->writeAttribute(
'val', 0);
 
 1023        $objWriter->endElement();
 
 1025        $objWriter->startElement(
'c:spPr');
 
 1026        $objWriter->startElement(
'a:solidFill');
 
 1027        $objWriter->startElement(
'a:srgbClr');
 
 1028        $objWriter->writeAttribute(
'val', $fillColor);
 
 1029        $objWriter->endElement();
 
 1030        $objWriter->endElement();
 
 1031        $objWriter->endElement();
 
 1032        $objWriter->endElement();
 
 1047    private function writePlotGroup($plotGroup, $groupType, $objWriter, &$catIsMultiLevelSeries, &$valIsMultiLevelSeries, &$plotGroupingType): void
 
 1049        if ($plotGroup === 
null) {
 
 1054            $objWriter->startElement(
'c:barDir');
 
 1055            $objWriter->writeAttribute(
'val', $plotGroup->getPlotDirection());
 
 1056            $objWriter->endElement();
 
 1059        if ($plotGroup->getPlotGrouping() !== 
null) {
 
 1060            $plotGroupingType = $plotGroup->getPlotGrouping();
 
 1061            $objWriter->startElement(
'c:grouping');
 
 1062            $objWriter->writeAttribute(
'val', $plotGroupingType);
 
 1063            $objWriter->endElement();
 
 1067        $plotSeriesOrder = $plotGroup->getPlotOrder();
 
 1068        $plotSeriesCount = count($plotSeriesOrder);
 
 1073                    $objWriter->startElement(
'c:varyColors');
 
 1074                    $objWriter->writeAttribute(
'val', 1);
 
 1075                    $objWriter->endElement();
 
 1077                    $objWriter->startElement(
'c:varyColors');
 
 1078                    $objWriter->writeAttribute(
'val', 0);
 
 1079                    $objWriter->endElement();
 
 1085        foreach ($plotSeriesOrder as $plotSeriesIdx => $plotSeriesRef) {
 
 1086            $objWriter->startElement(
'c:ser');
 
 1088            $plotLabel = $plotGroup->getPlotLabelByIndex($plotSeriesIdx);
 
 1090                $fillColor = $plotLabel->getFillColor();
 
 1091                if ($fillColor !== 
null && !is_array($fillColor)) {
 
 1092                    $objWriter->startElement(
'c:spPr');
 
 1093                    $objWriter->startElement(
'a:solidFill');
 
 1094                    $objWriter->startElement(
'a:srgbClr');
 
 1095                    $objWriter->writeAttribute(
'val', $fillColor);
 
 1096                    $objWriter->endElement();
 
 1097                    $objWriter->endElement();
 
 1098                    $objWriter->endElement();
 
 1102            $objWriter->startElement(
'c:idx');
 
 1103            $objWriter->writeAttribute(
'val', $this->seriesIndex + $plotSeriesIdx);
 
 1104            $objWriter->endElement();
 
 1106            $objWriter->startElement(
'c:order');
 
 1107            $objWriter->writeAttribute(
'val', $this->seriesIndex + $plotSeriesRef);
 
 1108            $objWriter->endElement();
 
 1111            $plotSeriesValues = $plotGroup->getPlotValuesByIndex($plotSeriesRef);
 
 1114                $fillColorValues = $plotSeriesValues->getFillColor();
 
 1115                if ($fillColorValues !== 
null && is_array($fillColorValues)) {
 
 1116                    foreach ($plotSeriesValues->getDataValues() as $dataKey => $dataValue) {
 
 1125            $plotSeriesLabel = $plotGroup->getPlotLabelByIndex($plotSeriesRef);
 
 1126            if ($plotSeriesLabel && ($plotSeriesLabel->getPointCount() > 0)) {
 
 1127                $objWriter->startElement(
'c:tx');
 
 1128                $objWriter->startElement(
'c:strRef');
 
 1130                $objWriter->endElement();
 
 1131                $objWriter->endElement();
 
 1136                $plotLineWidth = 12700;
 
 1137                if ($plotSeriesValues) {
 
 1138                    $plotLineWidth = $plotSeriesValues->getLineWidth();
 
 1141                $objWriter->startElement(
'c:spPr');
 
 1142                $objWriter->startElement(
'a:ln');
 
 1143                $objWriter->writeAttribute(
'w', $plotLineWidth);
 
 1145                    $objWriter->startElement(
'a:noFill');
 
 1146                    $objWriter->endElement();
 
 1148                $objWriter->endElement();
 
 1149                $objWriter->endElement();
 
 1152            if ($plotSeriesValues) {
 
 1153                $plotSeriesMarker = $plotSeriesValues->getPointMarker();
 
 1154                if ($plotSeriesMarker) {
 
 1155                    $objWriter->startElement(
'c:marker');
 
 1156                    $objWriter->startElement(
'c:symbol');
 
 1157                    $objWriter->writeAttribute(
'val', $plotSeriesMarker);
 
 1158                    $objWriter->endElement();
 
 1160                    if ($plotSeriesMarker !== 
'none') {
 
 1161                        $objWriter->startElement(
'c:size');
 
 1162                        $objWriter->writeAttribute(
'val', 3);
 
 1163                        $objWriter->endElement();
 
 1166                    $objWriter->endElement();
 
 1171                $objWriter->startElement(
'c:invertIfNegative');
 
 1172                $objWriter->writeAttribute(
'val', 0);
 
 1173                $objWriter->endElement();
 
 1177            $plotSeriesCategory = $plotGroup->getPlotCategoryByIndex($plotSeriesRef);
 
 1178            if ($plotSeriesCategory && ($plotSeriesCategory->getPointCount() > 0)) {
 
 1179                $catIsMultiLevelSeries = $catIsMultiLevelSeries || $plotSeriesCategory->isMultiLevelSeries();
 
 1182                    if ($plotGroup->getPlotStyle() !== 
null) {
 
 1183                        $plotStyle = $plotGroup->getPlotStyle();
 
 1185                            $objWriter->startElement(
'c:explosion');
 
 1186                            $objWriter->writeAttribute(
'val', 25);
 
 1187                            $objWriter->endElement();
 
 1193                    $objWriter->startElement(
'c:xVal');
 
 1195                    $objWriter->startElement(
'c:cat');
 
 1199                $objWriter->endElement();
 
 1203            if ($plotSeriesValues) {
 
 1204                $valIsMultiLevelSeries = $valIsMultiLevelSeries || $plotSeriesValues->isMultiLevelSeries();
 
 1207                    $objWriter->startElement(
'c:yVal');
 
 1209                    $objWriter->startElement(
'c:val');
 
 1213                $objWriter->endElement();
 
 1220            $objWriter->endElement();
 
 1223        $this->seriesIndex += $plotSeriesIdx + 1;
 
 1234        if ($plotSeriesLabel === 
null) {
 
 1238        $objWriter->startElement(
'c:f');
 
 1239        $objWriter->writeRawData($plotSeriesLabel->getDataSource());
 
 1240        $objWriter->endElement();
 
 1242        $objWriter->startElement(
'c:strCache');
 
 1243        $objWriter->startElement(
'c:ptCount');
 
 1244        $objWriter->writeAttribute(
'val', $plotSeriesLabel->getPointCount());
 
 1245        $objWriter->endElement();
 
 1247        foreach ($plotSeriesLabel->getDataValues() as $plotLabelKey => $plotLabelValue) {
 
 1248            $objWriter->startElement(
'c:pt');
 
 1249            $objWriter->writeAttribute(
'idx', $plotLabelKey);
 
 1251            $objWriter->startElement(
'c:v');
 
 1252            $objWriter->writeRawData($plotLabelValue);
 
 1253            $objWriter->endElement();
 
 1254            $objWriter->endElement();
 
 1256        $objWriter->endElement();
 
 1269        if ($plotSeriesValues === 
null) {
 
 1273        if ($plotSeriesValues->isMultiLevelSeries()) {
 
 1274            $levelCount = $plotSeriesValues->multiLevelCount();
 
 1276            $objWriter->startElement(
'c:multiLvlStrRef');
 
 1278            $objWriter->startElement(
'c:f');
 
 1279            $objWriter->
writeRawData($plotSeriesValues->getDataSource());
 
 1280            $objWriter->endElement();
 
 1282            $objWriter->startElement(
'c:multiLvlStrCache');
 
 1284            $objWriter->startElement(
'c:ptCount');
 
 1285            $objWriter->writeAttribute(
'val', $plotSeriesValues->getPointCount());
 
 1286            $objWriter->endElement();
 
 1288            for ($level = 0; $level < $levelCount; ++$level) {
 
 1289                $objWriter->startElement(
'c:lvl');
 
 1291                foreach ($plotSeriesValues->getDataValues() as $plotSeriesKey => $plotSeriesValue) {
 
 1292                    if (isset($plotSeriesValue[$level])) {
 
 1293                        $objWriter->startElement(
'c:pt');
 
 1294                        $objWriter->writeAttribute(
'idx', $plotSeriesKey);
 
 1296                        $objWriter->startElement(
'c:v');
 
 1298                        $objWriter->endElement();
 
 1299                        $objWriter->endElement();
 
 1303                $objWriter->endElement();
 
 1306            $objWriter->endElement();
 
 1308            $objWriter->endElement();
 
 1310            $objWriter->startElement(
'c:' . $dataType . 
'Ref');
 
 1312            $objWriter->startElement(
'c:f');
 
 1313            $objWriter->
writeRawData($plotSeriesValues->getDataSource());
 
 1314            $objWriter->endElement();
 
 1316            $objWriter->startElement(
'c:' . $dataType . 
'Cache');
 
 1319                if (($plotSeriesValues->getFormatCode() !== 
null) && ($plotSeriesValues->getFormatCode() !== 
'')) {
 
 1320                    $objWriter->startElement(
'c:formatCode');
 
 1321                    $objWriter->
writeRawData($plotSeriesValues->getFormatCode());
 
 1322                    $objWriter->endElement();
 
 1326            $objWriter->startElement(
'c:ptCount');
 
 1327            $objWriter->writeAttribute(
'val', $plotSeriesValues->getPointCount());
 
 1328            $objWriter->endElement();
 
 1330            $dataValues = $plotSeriesValues->getDataValues();
 
 1331            if (!empty($dataValues)) {
 
 1332                if (is_array($dataValues)) {
 
 1333                    foreach ($dataValues as $plotSeriesKey => $plotSeriesValue) {
 
 1334                        $objWriter->startElement(
'c:pt');
 
 1335                        $objWriter->writeAttribute(
'idx', $plotSeriesKey);
 
 1337                        $objWriter->startElement(
'c:v');
 
 1339                        $objWriter->endElement();
 
 1340                        $objWriter->endElement();
 
 1345            $objWriter->endElement();
 
 1347            $objWriter->endElement();
 
 1359        if ($plotSeriesValues === 
null) {
 
 1363        $objWriter->startElement(
'c:bubbleSize');
 
 1364        $objWriter->startElement(
'c:numLit');
 
 1366        $objWriter->startElement(
'c:formatCode');
 
 1367        $objWriter->writeRawData(
'General');
 
 1368        $objWriter->endElement();
 
 1370        $objWriter->startElement(
'c:ptCount');
 
 1371        $objWriter->writeAttribute(
'val', $plotSeriesValues->getPointCount());
 
 1372        $objWriter->endElement();
 
 1374        $dataValues = $plotSeriesValues->getDataValues();
 
 1375        if (!empty($dataValues)) {
 
 1376            if (is_array($dataValues)) {
 
 1377                foreach ($dataValues as $plotSeriesKey => $plotSeriesValue) {
 
 1378                    $objWriter->startElement(
'c:pt');
 
 1379                    $objWriter->writeAttribute(
'idx', $plotSeriesKey);
 
 1380                    $objWriter->startElement(
'c:v');
 
 1381                    $objWriter->writeRawData(1);
 
 1382                    $objWriter->endElement();
 
 1383                    $objWriter->endElement();
 
 1388        $objWriter->endElement();
 
 1389        $objWriter->endElement();
 
 1391        $objWriter->startElement(
'c:bubble3D');
 
 1392        $objWriter->writeAttribute(
'val', 0);
 
 1393        $objWriter->endElement();
 
 1404        $objWriter->startElement(
'c:layout');
 
 1406        if ($layout !== 
null) {
 
 1407            $objWriter->startElement(
'c:manualLayout');
 
 1409            $layoutTarget = $layout->getLayoutTarget();
 
 1410            if ($layoutTarget !== 
null) {
 
 1411                $objWriter->startElement(
'c:layoutTarget');
 
 1412                $objWriter->writeAttribute(
'val', $layoutTarget);
 
 1413                $objWriter->endElement();
 
 1416            $xMode = $layout->getXMode();
 
 1417            if ($xMode !== 
null) {
 
 1418                $objWriter->startElement(
'c:xMode');
 
 1419                $objWriter->writeAttribute(
'val', $xMode);
 
 1420                $objWriter->endElement();
 
 1423            $yMode = $layout->getYMode();
 
 1424            if ($yMode !== 
null) {
 
 1425                $objWriter->startElement(
'c:yMode');
 
 1426                $objWriter->writeAttribute(
'val', $yMode);
 
 1427                $objWriter->endElement();
 
 1430            $x = $layout->getXPosition();
 
 1432                $objWriter->startElement(
'c:x');
 
 1433                $objWriter->writeAttribute(
'val', 
$x);
 
 1434                $objWriter->endElement();
 
 1437            $y = $layout->getYPosition();
 
 1439                $objWriter->startElement(
'c:y');
 
 1440                $objWriter->writeAttribute(
'val', 
$y);
 
 1441                $objWriter->endElement();
 
 1444            $w = $layout->getWidth();
 
 1446                $objWriter->startElement(
'c:w');
 
 1447                $objWriter->writeAttribute(
'val', 
$w);
 
 1448                $objWriter->endElement();
 
 1451            $h = $layout->getHeight();
 
 1453                $objWriter->startElement(
'c:h');
 
 1454                $objWriter->writeAttribute(
'val', 
$h);
 
 1455                $objWriter->endElement();
 
 1458            $objWriter->endElement();
 
 1461        $objWriter->endElement();
 
 1471        $objWriter->startElement(
'mc:AlternateContent');
 
 1472        $objWriter->writeAttribute(
'xmlns:mc', 
'http://schemas.openxmlformats.org/markup-compatibility/2006');
 
 1474        $objWriter->startElement(
'mc:Choice');
 
 1475        $objWriter->writeAttribute(
'xmlns:c14', 
'http://schemas.microsoft.com/office/drawing/2007/8/2/chart');
 
 1476        $objWriter->writeAttribute(
'Requires', 
'c14');
 
 1478        $objWriter->startElement(
'c14:style');
 
 1479        $objWriter->writeAttribute(
'val', 
'102');
 
 1480        $objWriter->endElement();
 
 1481        $objWriter->endElement();
 
 1483        $objWriter->startElement(
'mc:Fallback');
 
 1484        $objWriter->startElement(
'c:style');
 
 1485        $objWriter->writeAttribute(
'val', 
'2');
 
 1486        $objWriter->endElement();
 
 1487        $objWriter->endElement();
 
 1489        $objWriter->endElement();
 
 1499        $objWriter->startElement(
'c:printSettings');
 
 1501        $objWriter->startElement(
'c:headerFooter');
 
 1502        $objWriter->endElement();
 
 1504        $objWriter->startElement(
'c:pageMargins');
 
 1505        $objWriter->writeAttribute(
'footer', 0.3);
 
 1506        $objWriter->writeAttribute(
'header', 0.3);
 
 1507        $objWriter->writeAttribute(
'r', 0.7);
 
 1508        $objWriter->writeAttribute(
'l', 0.7);
 
 1509        $objWriter->writeAttribute(
't', 0.75);
 
 1510        $objWriter->writeAttribute(
'b', 0.75);
 
 1511        $objWriter->endElement();
 
 1513        $objWriter->startElement(
'c:pageSetup');
 
 1514        $objWriter->writeAttribute(
'orientation', 
'portrait');
 
 1515        $objWriter->endElement();
 
 1517        $objWriter->endElement();
 
An exception for terminatinating execution or to throw for unit testing.
getAxisOptionsProperty($property)
Get Axis Options Property.
getGlowProperty($property)
Get Glow Property.
getAxisNumberFormat()
Get Axis Number Format Data Type.
getSoftEdgesSize()
Get Soft Edges Size.
getLineStyleArrowWidth($arrow)
Get Line Style Arrow Excel Width.
getLineProperty($property)
Get Line Property.
getAxisNumberSourceLinked()
Get Axis Number Source Linked.
getLineStyleArrowLength($arrow)
Get Line Style Arrow Excel Length.
getShadowProperty($elements)
Get Shadow Property.
getLineStyleProperty($elements)
Get Line Style Property.
getFillProperty($property)
Get Fill Property.
getLineColorProperty($parameter)
Get Line Color Property.
getLineStyleArrowParameters($arrow_selector, $property_selector)
Get Line Style Arrow Parameters.
getShadowProperty($elements)
Get Shadow Property.
getSoftEdgesSize()
Get Soft Edges Size.
getGlowSize()
Get Glow Size.
getLineStyleProperty($elements)
Get Line Style Property.
getObjectState()
Get Object State.
getGlowColor($property)
Get Glow Color Property.
getPlotGroupCount()
Get Number of Plot Groups.
getPlotGroupByIndex($index)
Get Plot Series by Index.
static controlCharacterPHP2OOXML($value)
Convert from PHP control character to OpenXML escaped control character.
const STORAGE_MEMORY
Temporary storage method.
writeRawData($text)
Wrapper method for writeRaw.
getDiskCachingDirectory()
Get disk caching directory.
getUseDiskCaching()
Get use disk caching where possible?
writeValueAxis($objWriter, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, Axis $xAxis, GridLines $majorGridlines, GridLines $minorGridlines)
Write Value Axis.
writeBubbles($plotSeriesValues, $objWriter)
Write Bubble Chart Details.
writeCategoryAxis($objWriter, $xAxisLabel, $id1, $id2, $isMultiLevelSeries, Axis $yAxis)
Write Category Axis.
writeLegend(XMLWriter $objWriter, ?Legend $legend=null)
Write Chart Legend.
static getChartType($plotArea)
Get the data series type(s) for a chart plot series.
writePlotGroup($plotGroup, $groupType, $objWriter, &$catIsMultiLevelSeries, &$valIsMultiLevelSeries, &$plotGroupingType)
Write Plot Group (series of related plots).
writeAlternateContent($objWriter)
Write Alternate Content block.
writePlotSeriesValuesElement($objWriter, $val=3, $fillColor='FF9900')
Method writing plot series values.
writeChart(\PhpOffice\PhpSpreadsheet\Chart\Chart $pChart, $calculateCellValues=true)
Write charts to XML format.
writeTitle(XMLWriter $objWriter, ?Title $title=null)
Write Chart Title.
writePrintSettings($objWriter)
Write Printer Settings.
writePlotSeriesValues($plotSeriesValues, XMLWriter $objWriter, $groupType, $dataType='str')
Write Plot Series Values.
writePlotArea(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pSheet, PlotArea $plotArea, ?Title $xAxisLabel=null, ?Title $yAxisLabel=null, ?Axis $xAxis=null, ?Axis $yAxis=null, ?GridLines $majorGridlines=null, ?GridLines $minorGridlines=null)
Write Chart Plot Area.
writeDataLabels(XMLWriter $objWriter, ?Layout $chartLayout=null)
Write Data Labels.
writeLayout(XMLWriter $objWriter, ?Layout $layout=null)
Write Layout.
writePlotSeriesLabel($plotSeriesLabel, $objWriter)
Write Plot Series Label.
getParentWriter()
Get parent Xlsx object.