From a1414678f765587a647abb7b5b3c5eb47fb513dc Mon Sep 17 00:00:00 2001 From: jking Date: Tue, 23 Jun 2015 10:54:47 -0400 Subject: [PATCH 1/8] Add Pie Chart Type --- src/PhpPowerpoint/Shape/Chart/Type/Pie.php | 51 ++++++ .../Writer/ODPresentation/ObjectsChart.php | 9 +- .../Writer/PowerPoint2007/Chart.php | 172 ++++++++++++++++++ .../Tests/Shape/Chart/Type/PieTest.php | 66 +++++++ .../Writer/ODPresentation/ChartsTest.php | 43 ++++- .../Tests/Writer/PowerPoint2007/ChartTest.php | 44 ++++- 6 files changed, 374 insertions(+), 11 deletions(-) create mode 100644 src/PhpPowerpoint/Shape/Chart/Type/Pie.php create mode 100644 tests/PhpPowerpoint/Tests/Shape/Chart/Type/PieTest.php diff --git a/src/PhpPowerpoint/Shape/Chart/Type/Pie.php b/src/PhpPowerpoint/Shape/Chart/Type/Pie.php new file mode 100644 index 000000000..5e4b68714 --- /dev/null +++ b/src/PhpPowerpoint/Shape/Chart/Type/Pie.php @@ -0,0 +1,51 @@ +hasAxisX = false; + $this->hasAxisY = false; + } + + + /** + * Get hash code + * + * @return string Hash code + */ + public function getHashCode() + { + $hash = ''; + foreach ($this->getData() as $series) { + $hash .= $series->getHashCode(); + } + return md5($hash . __CLASS__); + } +} diff --git a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php index aefc6fbdc..6dff24422 100644 --- a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php +++ b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php @@ -23,6 +23,7 @@ use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Line; +use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Scatter; use PhpOffice\PhpPowerpoint\Shared\Drawing as SharedDrawing; @@ -89,7 +90,7 @@ public function writePart(Chart $chart) private function writeContentPart(Chart $chart) { $chartType = $chart->getPlotArea()->getType(); - if (!($chartType instanceof Area || $chartType instanceof Bar || $chartType instanceof Bar3D || $chartType instanceof Line || $chartType instanceof Pie3D || $chartType instanceof Scatter)) { + if (!($chartType instanceof Area || $chartType instanceof Bar || $chartType instanceof Bar3D || $chartType instanceof Line || $chartType instanceof Pie || $chartType instanceof Pie3D || $chartType instanceof Scatter)) { throw new \Exception('The chart type provided could not be rendered.'); } @@ -206,7 +207,7 @@ private function writeContentPart(Chart $chart) $this->xmlContent->writeAttribute('chart:class', 'chart:bar'); } elseif ($chartType instanceof Line) { $this->xmlContent->writeAttribute('chart:class', 'chart:line'); - } elseif ($chartType instanceof Pie3D) { + } elseif ($chartType instanceof Pie || $chartType instanceof Pie3D) { $this->xmlContent->writeAttribute('chart:class', 'chart:circle'); } elseif ($chartType instanceof Scatter) { $this->xmlContent->writeAttribute('chart:class', 'chart:scatter'); @@ -522,7 +523,7 @@ private function writeSeries(Chart $chart, Chart\Series $series) $this->xmlContent->writeAttribute('chart:class', 'chart:bar'); } elseif ($chartType instanceof Line) { $this->xmlContent->writeAttribute('chart:class', 'chart:line'); - } elseif ($chartType instanceof Pie3D) { + } elseif ($chartType instanceof Pie || $chartType instanceof Pie3D) { $this->xmlContent->writeAttribute('chart:class', 'chart:circle'); } elseif ($chartType instanceof Scatter) { $this->xmlContent->writeAttribute('chart:class', 'chart:scatter'); @@ -561,7 +562,7 @@ private function writeSeries(Chart $chart, Chart\Series $series) $this->xmlContent->writeAttribute('chart:repeated', $incRepeat); // > chart:data-point $this->xmlContent->endElement(); - } elseif ($chartType instanceof Pie3D) { + } elseif ($chartType instanceof Pie || $chartType instanceof Pie3D) { $count = count($series->getDataPointFills()); for ($inc = 0; $inc < $count; $inc++) { // chart:data-point diff --git a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php index 2955fa05e..cdcd8f3b0 100644 --- a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php +++ b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php @@ -25,6 +25,7 @@ use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Line; +use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Scatter; use PhpOffice\PhpPowerpoint\Shape\Chart as ShapeChart; @@ -511,6 +512,8 @@ protected function writePlotArea(XMLWriter $objWriter, PlotArea $subject, ShapeC $this->writeTypeBar($objWriter, $chartType, $chart->hasIncludedSpreadsheet()); } elseif ($chartType instanceof Bar3D) { $this->writeTypeBar3D($objWriter, $chartType, $chart->hasIncludedSpreadsheet()); + } elseif ($chartType instanceof Pie) { + $this->writeTypePie($objWriter, $chartType, $chart->hasIncludedSpreadsheet()); } elseif ($chartType instanceof Pie3D) { $this->writeTypePie3D($objWriter, $chartType, $chart->hasIncludedSpreadsheet()); } elseif ($chartType instanceof Line) { @@ -1492,6 +1495,175 @@ protected function writeTypeBar3D(XMLWriter $objWriter, Bar3D $subject, $include $objWriter->endElement(); } + /** + * Write Type Pie + * + * @param \PhpOffice\PhpPowerpoint\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie $subject + * @param boolean $includeSheet + * @throws \Exception + */ + protected function writeTypePie(XMLWriter $objWriter, Pie $subject, $includeSheet = false) + { + // c:pieChart + $objWriter->startElement('c:pieChart'); + + // c:varyColors + $objWriter->startElement('c:varyColors'); + $objWriter->writeAttribute('val', '1'); + $objWriter->endElement(); + + // Write series + $seriesIndex = 0; + foreach ($subject->getData() as $series) { + // c:ser + $objWriter->startElement('c:ser'); + + // c:idx + $objWriter->startElement('c:idx'); + $objWriter->writeAttribute('val', $seriesIndex); + $objWriter->endElement(); + + // c:order + $objWriter->startElement('c:order'); + $objWriter->writeAttribute('val', $seriesIndex); + $objWriter->endElement(); + + // c:tx + $objWriter->startElement('c:tx'); + $coords = ($includeSheet ? 'Sheet1!$' . \PHPExcel_Cell::stringFromColumnIndex(1 + $seriesIndex) . '$1' : ''); + $this->writeSingleValueOrReference($objWriter, $includeSheet, $series->getTitle(), $coords); + $objWriter->endElement(); + + // Fills for points? + $dataPointFills = $series->getDataPointFills(); + foreach ($dataPointFills as $key => $value) { + // c:dPt + $objWriter->startElement('c:dPt'); + + // c:idx + $this->writeElementWithValAttribute($objWriter, 'c:idx', $key); + + // c:spPr + $objWriter->startElement('c:spPr'); + + // Write fill + $this->writeFill($objWriter, $value); + + $objWriter->endElement(); + + $objWriter->endElement(); + } + + // c:dLbls + $objWriter->startElement('c:dLbls'); + + // c:txPr + $objWriter->startElement('c:txPr'); + + // a:bodyPr + $objWriter->writeElement('a:bodyPr', null); + + // a:lstStyle + $objWriter->writeElement('a:lstStyle', null); + + // a:p + $objWriter->startElement('a:p'); + + // a:pPr + $objWriter->startElement('a:pPr'); + + // a:defRPr + $objWriter->startElement('a:defRPr'); + + $objWriter->writeAttribute('b', ($series->getFont()->isBold() ? 'true' : 'false')); + $objWriter->writeAttribute('i', ($series->getFont()->isItalic() ? 'true' : 'false')); + $objWriter->writeAttribute('strike', ($series->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike')); + $objWriter->writeAttribute('sz', ($series->getFont()->getSize() * 100)); + $objWriter->writeAttribute('u', $series->getFont()->getUnderline()); + + if ($series->getFont()->isSuperScript() || $series->getFont()->isSubScript()) { + if ($series->getFont()->isSuperScript()) { + $objWriter->writeAttribute('baseline', '30000'); + } elseif ($series->getFont()->isSubScript()) { + $objWriter->writeAttribute('baseline', '-25000'); + } + } + + // Font - a:solidFill + $objWriter->startElement('a:solidFill'); + + // a:srgbClr + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', $series->getFont()->getColor()->getRGB()); + $objWriter->endElement(); + + $objWriter->endElement(); + + // Font - a:latin + $objWriter->startElement('a:latin'); + $objWriter->writeAttribute('typeface', $series->getFont()->getName()); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // a:endParaRPr + $objWriter->startElement('a:endParaRPr'); + $objWriter->writeAttribute('lang', 'en-US'); + $objWriter->writeAttribute('dirty', '0'); + $objWriter->endElement(); + + $objWriter->endElement(); + + $objWriter->endElement(); + + // c:dLblPos + $this->writeElementWithValAttribute($objWriter, 'c:dLblPos', $series->getLabelPosition()); + + // c:showVal + $this->writeElementWithValAttribute($objWriter, 'c:showVal', $series->hasShowValue() ? '1' : '0'); + + // c:showCatName + $this->writeElementWithValAttribute($objWriter, 'c:showCatName', $series->hasShowCategoryName() ? '1' : '0'); + + // c:showSerName + $this->writeElementWithValAttribute($objWriter, 'c:showSerName', $series->hasShowSeriesName() ? '1' : '0'); + + // c:showPercent + $this->writeElementWithValAttribute($objWriter, 'c:showPercent', $series->hasShowPercentage() ? '1' : '0'); + + // c:showLeaderLines + $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); + + $objWriter->endElement(); + + // Write X axis data + $axisXData = array_keys($series->getValues()); + + // c:cat + $objWriter->startElement('c:cat'); + $this->writeMultipleValuesOrReference($objWriter, $includeSheet, $axisXData, 'Sheet1!$A$2:$A$' . (1 + count($axisXData))); + $objWriter->endElement(); + + // Write Y axis data + $axisYData = array_values($series->getValues()); + + // c:val + $objWriter->startElement('c:val'); + $coords = ($includeSheet ? 'Sheet1!$' . \PHPExcel_Cell::stringFromColumnIndex($seriesIndex + 1) . '$2:$' . \PHPExcel_Cell::stringFromColumnIndex($seriesIndex + 1) . '$' . (1 + count($axisYData)) : ''); + $this->writeMultipleValuesOrReference($objWriter, $includeSheet, $axisYData, $coords); + $objWriter->endElement(); + + $objWriter->endElement(); + + ++$seriesIndex; + } + + $objWriter->endElement(); + } + /** * Write Type Pie3D * diff --git a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/PieTest.php b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/PieTest.php new file mode 100644 index 000000000..57625978b --- /dev/null +++ b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/PieTest.php @@ -0,0 +1,66 @@ +assertInternalType('array', $object->getData()); + $this->assertEmpty($object->getData()); + + $array = array( + new Series(), + new Series(), + ); + + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Pie', $object->setData()); + $this->assertEmpty($object->getData()); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Pie', $object->setData($array)); + $this->assertCount(count($array), $object->getData()); + } + + public function testSeries() + { + $object = new Pie(); + + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Pie', $object->addSeries(new Series())); + $this->assertCount(1, $object->getData()); + } + + + public function testHashCode() + { + $oSeries = new Series(); + + $object = new Pie(); + $object->addSeries($oSeries); + + $this->assertEquals(md5($oSeries->getHashCode().get_class($object)), $object->getHashCode()); + } +} diff --git a/tests/PhpPowerpoint/Tests/Writer/ODPresentation/ChartsTest.php b/tests/PhpPowerpoint/Tests/Writer/ODPresentation/ChartsTest.php index 5d10ebca3..8e464627a 100644 --- a/tests/PhpPowerpoint/Tests/Writer/ODPresentation/ChartsTest.php +++ b/tests/PhpPowerpoint/Tests/Writer/ODPresentation/ChartsTest.php @@ -21,6 +21,7 @@ use PhpOffice\PhpPowerpoint\Shape\Chart\Series; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Line; +use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Scatter; use PhpOffice\PhpPowerpoint\Style\Color; @@ -161,7 +162,7 @@ public function testChartLine() $this->assertEquals('#878787', $pres->getElementAttribute($element, 'svg:stroke-color', 'Object 1/content.xml')); } - public function testChartPie3D() + public function testChartPie() { $oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2)); $oSeries->setShowSeriesName(true); @@ -169,13 +170,13 @@ public function testChartPie3D() $oSeries->getDataPointFill(1)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFAB4744')); $oSeries->getDataPointFill(2)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF8AA64F')); - $oPie3D = new Pie3D(); - $oPie3D->addSeries($oSeries); + $oPie = new Pie(); + $oPie->addSeries($oSeries); $phpPowerPoint = new PhpPowerpoint(); $oSlide = $phpPowerPoint->getActiveSlide(); $oChart = $oSlide->createChartShape(); - $oChart->getPlotArea()->setType($oPie3D); + $oChart->getPlotArea()->setType($oPie); $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); @@ -194,6 +195,40 @@ public function testChartPie3D() $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); $this->assertEquals('true', $pres->getElementAttribute($element, 'chart:reverse-direction', 'Object 1/content.xml')); } + + public function testChartPie3D() + { + $oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2)); + $oSeries->setShowSeriesName(true); + $oSeries->getDataPointFill(0)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF4672A8')); + $oSeries->getDataPointFill(1)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFAB4744')); + $oSeries->getDataPointFill(2)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF8AA64F')); + + $oPie3D = new Pie3D(); + $oPie3D->addSeries($oSeries); + + $phpPowerPoint = new PhpPowerpoint(); + $oSlide = $phpPowerPoint->getActiveSlide(); + $oChart = $oSlide->createChartShape(); + $oChart->getPlotArea()->setType($oPie3D); + + $pres = TestHelperDOCX::getDocument($phpPowerPoint, 'ODPresentation'); + + $element = '/office:document-content/office:body/office:chart/chart:chart'; + $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); + $this->assertEquals('chart:circle', $pres->getElementAttribute($element, 'chart:class', 'Object 1/content.xml')); + + $element = '/office:document-content/office:body/office:chart/chart:chart/chart:plot-area/chart:series/chart:data-point'; + $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); + + $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleAxisX\']/style:chart-properties'; + $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); + $this->assertEquals('true', $pres->getElementAttribute($element, 'chart:reverse-direction', 'Object 1/content.xml')); + + $element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleAxisY\']/style:chart-properties'; + $this->assertTrue($pres->elementExists($element, 'Object 1/content.xml')); + $this->assertEquals('true', $pres->getElementAttribute($element, 'chart:reverse-direction', 'Object 1/content.xml')); + } public function testChartPie3DExplosion() { diff --git a/tests/PhpPowerpoint/Tests/Writer/PowerPoint2007/ChartTest.php b/tests/PhpPowerpoint/Tests/Writer/PowerPoint2007/ChartTest.php index e699b76ab..2bd5b713c 100644 --- a/tests/PhpPowerpoint/Tests/Writer/PowerPoint2007/ChartTest.php +++ b/tests/PhpPowerpoint/Tests/Writer/PowerPoint2007/ChartTest.php @@ -21,6 +21,7 @@ use PhpOffice\PhpPowerpoint\Shape\Chart\Series; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Line; +use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Scatter; use PhpOffice\PhpPowerpoint\Style\Color; @@ -274,7 +275,7 @@ public function testTypeLineSuperScript() $this->assertEquals('30000', $oXMLDoc->getElementAttribute($element, 'baseline', 'ppt/charts/'.$oShape->getIndexedFilename())); } - public function testTypePie3D() + public function testTypePie() { $seriesData = array( 'A' => 1, @@ -284,6 +285,43 @@ public function testTypePie3D() 'E' => 2, ); + $oPHPPowerPoint = new PhpPowerpoint(); + $oSlide = $oPHPPowerPoint->getActiveSlide(); + $oShape = $oSlide->createChartShape(); + $oShape->setResizeProportional(false)->setHeight(550)->setWidth(700)->setOffsetX(120)->setOffsetY(80); + $oPie = new Pie(); + $oSeries = new Series('Downloads', $seriesData); + $oSeries->getDataPointFill(0)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_BLUE)); + $oSeries->getDataPointFill(1)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKBLUE)); + $oSeries->getDataPointFill(2)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKGREEN)); + $oSeries->getDataPointFill(3)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKRED)); + $oSeries->getDataPointFill(4)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKYELLOW)); + $oPie->addSeries($oSeries); + $oShape->getPlotArea()->setType($oPie); + + $oXMLDoc = TestHelperDOCX::getDocument($oPHPPowerPoint, 'PowerPoint2007'); + + $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData'; + $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/slides/slide1.xml')); + $element = '/c:chartSpace/c:chart/c:plotArea/c:pieChart'; + $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/'.$oShape->getIndexedFilename())); + $element = '/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser'; + $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/'.$oShape->getIndexedFilename())); + $element = '/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dPt/c:spPr'; + $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/charts/'.$oShape->getIndexedFilename())); + $element = '/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:tx/c:v'; + $this->assertEquals($oSeries->getTitle(), $oXMLDoc->getElement($element, 'ppt/charts/'.$oShape->getIndexedFilename())->nodeValue); + } + public function testTypePie3D() + { + $seriesData = array( + 'A' => 1, + 'B' => 2, + 'C' => 4, + 'D' => 3, + 'E' => 2, + ); + $oPHPPowerPoint = new PhpPowerpoint(); $oSlide = $oPHPPowerPoint->getActiveSlide(); $oShape = $oSlide->createChartShape(); @@ -297,9 +335,9 @@ public function testTypePie3D() $oSeries->getDataPointFill(4)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color(Color::COLOR_DARKYELLOW)); $oPie3D->addSeries($oSeries); $oShape->getPlotArea()->setType($oPie3D); - + $oXMLDoc = TestHelperDOCX::getDocument($oPHPPowerPoint, 'PowerPoint2007'); - + $element = '/p:sld/p:cSld/p:spTree/p:graphicFrame/a:graphic/a:graphicData'; $this->assertTrue($oXMLDoc->elementExists($element, 'ppt/slides/slide1.xml')); $element = '/c:chartSpace/c:chart/c:plotArea/c:pie3DChart'; From cb533d86a4ddb5f840043768ecba93fc6f781f5e Mon Sep 17 00:00:00 2001 From: jking Date: Tue, 23 Jun 2015 12:15:13 -0400 Subject: [PATCH 2/8] Add Pie Chart Type (chart-reverse-direction attribute) --- src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php index 6dff24422..f947285e5 100644 --- a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php +++ b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php @@ -290,7 +290,7 @@ private function writeAxisStyle(Chart $chart) $this->xmlContent->writeAttribute('chart:display-label', 'true'); $this->xmlContent->writeAttribute('chart:tick-marks-major-inner', 'false'); $this->xmlContent->writeAttribute('chart:tick-marks-major-outer', 'false'); - if ($chartType instanceof Pie3D) { + if ($chartType instanceof Pie || $chartType instanceof Pie3D) { $this->xmlContent->writeAttribute('chart:reverse-direction', 'true'); } // > style:chart-properties @@ -314,7 +314,7 @@ private function writeAxisStyle(Chart $chart) $this->xmlContent->writeAttribute('chart:display-label', 'true'); $this->xmlContent->writeAttribute('chart:tick-marks-major-inner', 'false'); $this->xmlContent->writeAttribute('chart:tick-marks-major-outer', 'false'); - if ($chartType instanceof Pie3D) { + if ($chartType instanceof Pie || $chartType instanceof Pie3D) { $this->xmlContent->writeAttribute('chart:reverse-direction', 'true'); } // > style:chart-properties From eeacfb6ea8e21fba69b3240f99e1cef4ae5f7782 Mon Sep 17 00:00:00 2001 From: jking Date: Tue, 23 Jun 2015 13:04:26 -0400 Subject: [PATCH 3/8] Add Grouping Option To Bar Charts - Allows For Stacked & Stack Percentage Bar Charts --- src/PhpPowerpoint/Shape/Chart/Type/Bar.php | 37 ++++++++++++++++++ src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php | 38 ++++++++++++++++++- .../Writer/ODPresentation/ObjectsChart.php | 12 ++++++ .../Writer/PowerPoint2007/Chart.php | 13 ++++++- .../Tests/Shape/Chart/Type/Bar3DTest.php | 12 ++++++ .../Tests/Shape/Chart/Type/BarTest.php | 11 ++++++ 6 files changed, 120 insertions(+), 3 deletions(-) diff --git a/src/PhpPowerpoint/Shape/Chart/Type/Bar.php b/src/PhpPowerpoint/Shape/Chart/Type/Bar.php index e3aa47367..a2af8f1b2 100644 --- a/src/PhpPowerpoint/Shape/Chart/Type/Bar.php +++ b/src/PhpPowerpoint/Shape/Chart/Type/Bar.php @@ -28,6 +28,12 @@ class Bar extends AbstractType implements ComparableInterface const DIRECTION_VERTICAL = 'col'; const DIRECTION_HORIZONTAL = 'bar'; + /** Grouping of bars */ + const GROUPING_CLUSTERED = 'clustered'; //Chart series are drawn next to each other along the category axis. + const GROUPING_STACKED = 'stacked'; //Chart series are drawn next to each other on the value axis. + const GROUPING_PERCENTSTACKED = 'percentStacked'; //Chart series are drawn next to each other along the value axis and scaled to total 100% + + /** * Orientation of bars * @@ -35,6 +41,15 @@ class Bar extends AbstractType implements ComparableInterface */ protected $barDirection = self::DIRECTION_VERTICAL; + + /** + * Grouping of bars + * + * @var string + */ + protected $barGrouping = self::GROUPING_CLUSTERED; + + /** * Set bar orientation * @@ -56,6 +71,28 @@ public function getBarDirection() { return $this->barDirection; } + + /** + * Set bar grouping (stack or expanded style bar) + * + * @param string $value + * @return \PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar + */ + public function setBarGrouping($value = self::GROUPING_CLUSTERED) + { + $this->barGrouping = $value; + return $this; + } + + /** + * Get grouping (stack or expanded style bar) + * + * @return string + */ + public function getBarGrouping() + { + return $this->barGrouping; + } /** * Get hash code diff --git a/src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php b/src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php index 004c4c80e..b34dc9bb2 100644 --- a/src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php +++ b/src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php @@ -28,6 +28,12 @@ class Bar3D extends AbstractType implements ComparableInterface const DIRECTION_VERTICAL = 'col'; const DIRECTION_HORIZONTAL = 'bar'; + /** Grouping of bars */ + const GROUPING_CLUSTERED = 'clustered'; //Chart series are drawn next to each other along the category axis. + const GROUPING_STACKED = 'stacked'; //Chart series are drawn next to each other on the value axis. + const GROUPING_PERCENTSTACKED = 'percentStacked'; //Chart series are drawn next to each other along the value axis and scaled to total 100% + + /** * Orientation of bars * @@ -35,6 +41,16 @@ class Bar3D extends AbstractType implements ComparableInterface */ protected $barDirection = self::DIRECTION_VERTICAL; + + /** + * Grouping of bars + * + * @var string + */ + protected $barGrouping = self::GROUPING_CLUSTERED; + + + /** * Set bar orientation * @@ -56,7 +72,27 @@ public function getBarDirection() { return $this->barDirection; } - + + /** + * Set bar grouping (stack or expanded style bar) + * + * @param string $value + * @return \PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar + */ + public function setBarGrouping($value = self::GROUPING_CLUSTERED) { + $this->barGrouping = $value; + return $this; + } + + /** + * Get grouping (stack or expanded style bar) + * + * @return string + */ + public function getBarGrouping() { + return $this->barGrouping; + } + /** * Get hash code * diff --git a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php index f947285e5..b1b6434c1 100644 --- a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php +++ b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php @@ -495,6 +495,18 @@ private function writePlotAreaStyle(Chart $chart) } else { $this->xmlContent->writeAttribute('chart:vertical', 'false'); } + if ( $chartType->getBarGrouping() == Bar::GROUPING_CLUSTERED ) { + $this->xmlContent->writeAttribute( 'chart:stacked', 'false' ); + $this->xmlContent->writeAttribute( 'chart:overlap', '0' ); + } elseif ( $chartType->getBarGrouping() == Bar::GROUPING_STACKED ) { + $this->xmlContent->writeAttribute( 'chart:stacked', 'true' ); + $this->xmlContent->writeAttribute( 'chart:overlap', '100' ); + } elseif ( $chartType->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED ) { + $this->xmlContent->writeAttribute( 'chart:stacked', 'true' ); + $this->xmlContent->writeAttribute( 'chart:overlap', '100' ); + $this->xmlContent->writeAttribute( 'chart:percentage', 'true' ); + } + } $this->xmlContent->writeAttribute('chart:data-label-number', 'value'); // > style:text-properties diff --git a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php index cdcd8f3b0..eeb3022d7 100644 --- a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php +++ b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php @@ -1103,7 +1103,7 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee // c:grouping $objWriter->startElement('c:grouping'); - $objWriter->writeAttribute('val', 'clustered'); + $objWriter->writeAttribute('val', $subject->getBarGrouping()); $objWriter->endElement(); // Write series @@ -1261,6 +1261,15 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee ++$seriesIndex; } + // c:overlap + $objWriter->startElement('c:overlap'); + if ( $subject->getBarGrouping() == Bar::GROUPING_CLUSTERED ) { + $objWriter->writeAttribute( 'val', '0' ); + } elseif ( $subject->getBarGrouping() == Bar::GROUPING_STACKED || $subject->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED ) { + $objWriter->writeAttribute( 'val', '100' ); + } + $objWriter->endElement(); + // c:gapWidth $objWriter->startElement('c:gapWidth'); $objWriter->writeAttribute('val', '75'); @@ -1309,7 +1318,7 @@ protected function writeTypeBar3D(XMLWriter $objWriter, Bar3D $subject, $include // c:grouping $objWriter->startElement('c:grouping'); - $objWriter->writeAttribute('val', 'clustered'); + $objWriter->writeAttribute('val', $subject->getBarGrouping()); $objWriter->endElement(); // Write series diff --git a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/Bar3DTest.php b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/Bar3DTest.php index 79dfbc12c..6b51f5f74 100644 --- a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/Bar3DTest.php +++ b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/Bar3DTest.php @@ -63,6 +63,18 @@ public function testBarDirection() $this->assertEquals(Bar3D::DIRECTION_VERTICAL, $object->getBarDirection()); } + public function testBarGrouping() + { + $object = new Bar3D(); + $this->assertEquals(Bar3D::GROUPING_CLUSTERED, $object->getBarGrouping()); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar3D', $object->setBarGrouping(Bar3D::GROUPING_CLUSTERED)); + $this->assertEquals(Bar3D::GROUPING_CLUSTERED, $object->getBarGrouping()); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar3D', $object->setBarGrouping(Bar3D::GROUPING_STACKED)); + $this->assertEquals(Bar3D::GROUPING_STACKED, $object->getBarGrouping()); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar3D', $object->setBarGrouping(Bar3D::GROUPING_PERCENTSTACKED)); + $this->assertEquals(Bar3D::GROUPING_PERCENTSTACKED, $object->getBarGrouping()); + } + public function testHashCode() { $oSeries = new Series(); diff --git a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php index 852dd2560..fdf3bbf2d 100644 --- a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php +++ b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php @@ -63,6 +63,17 @@ public function testBarDirection() $this->assertEquals(Bar::DIRECTION_VERTICAL, $object->getBarDirection()); } + public function testBarGrouping() { + $object = new Bar(); + $this->assertEquals( Bar::GROUPING_CLUSTERED, $object->getBarGrouping() ); + $this->assertInstanceOf( 'PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_CLUSTERED ) ); + $this->assertEquals( Bar::GROUPING_CLUSTERED, $object->getBarGrouping() ); + $this->assertInstanceOf( 'PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_STACKED ) ); + $this->assertEquals( Bar::GROUPING_STACKED, $object->getBarGrouping() ); + $this->assertInstanceOf( 'PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_PERCENTSTACKED ) ); + $this->assertEquals( Bar::GROUPING_PERCENTSTACKED, $object->getBarGrouping() ); + } + public function testHashCode() { $oSeries = new Series(); From af4535f95cfa40960aba47c346c206107d6ca4a9 Mon Sep 17 00:00:00 2001 From: jking Date: Tue, 23 Jun 2015 13:39:11 -0400 Subject: [PATCH 4/8] Add in Series Color for Charts Fix Code Style (Formatting Spacing) for TravisCL --- src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php | 6 ++- .../Writer/ODPresentation/ObjectsChart.php | 20 ++++---- .../Writer/PowerPoint2007/Chart.php | 48 ++++++++++--------- .../Tests/Shape/Chart/Type/BarTest.php | 17 +++---- 4 files changed, 49 insertions(+), 42 deletions(-) diff --git a/src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php b/src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php index b34dc9bb2..6d7bae34b 100644 --- a/src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php +++ b/src/PhpPowerpoint/Shape/Chart/Type/Bar3D.php @@ -79,7 +79,8 @@ public function getBarDirection() * @param string $value * @return \PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar */ - public function setBarGrouping($value = self::GROUPING_CLUSTERED) { + public function setBarGrouping($value = self::GROUPING_CLUSTERED) + { $this->barGrouping = $value; return $this; } @@ -89,7 +90,8 @@ public function setBarGrouping($value = self::GROUPING_CLUSTERED) { * * @return string */ - public function getBarGrouping() { + public function getBarGrouping() + { return $this->barGrouping; } diff --git a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php index b1b6434c1..ef2012ad8 100644 --- a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php +++ b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php @@ -495,16 +495,16 @@ private function writePlotAreaStyle(Chart $chart) } else { $this->xmlContent->writeAttribute('chart:vertical', 'false'); } - if ( $chartType->getBarGrouping() == Bar::GROUPING_CLUSTERED ) { - $this->xmlContent->writeAttribute( 'chart:stacked', 'false' ); - $this->xmlContent->writeAttribute( 'chart:overlap', '0' ); - } elseif ( $chartType->getBarGrouping() == Bar::GROUPING_STACKED ) { - $this->xmlContent->writeAttribute( 'chart:stacked', 'true' ); - $this->xmlContent->writeAttribute( 'chart:overlap', '100' ); - } elseif ( $chartType->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED ) { - $this->xmlContent->writeAttribute( 'chart:stacked', 'true' ); - $this->xmlContent->writeAttribute( 'chart:overlap', '100' ); - $this->xmlContent->writeAttribute( 'chart:percentage', 'true' ); + if ($chartType->getBarGrouping() == Bar::GROUPING_CLUSTERED) { + $this->xmlContent->writeAttribute('chart:stacked', 'false'); + $this->xmlContent->writeAttribute('chart:overlap', '0'); + } elseif ($chartType->getBarGrouping() == Bar::GROUPING_STACKED) { + $this->xmlContent->writeAttribute('chart:stacked', 'true'); + $this->xmlContent->writeAttribute('chart:overlap', '100'); + } elseif ($chartType->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED) { + $this->xmlContent->writeAttribute('chart:stacked', 'true'); + $this->xmlContent->writeAttribute('chart:overlap', '100'); + $this->xmlContent->writeAttribute('chart:percentage', 'true'); } } diff --git a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php index eeb3022d7..81072fb20 100644 --- a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php +++ b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php @@ -1231,13 +1231,15 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee $objWriter->endElement(); -// // c:spPr -// $objWriter->startElement('c:spPr'); - -// // Write fill -// $this->writeFill($objWriter, $series->getFill()); - -// $objWriter->endElement(); + // c:spPr + if ($series->getFill()->getFillType() != Fill::FILL_NONE) { + // c:spPr + $objWriter->startElement('c:spPr'); + // Write fill + $this->writeFill($objWriter, $series->getFill()); + // ## c:spPr + $objWriter->endElement(); + } // Write X axis data $axisXData = array_keys($series->getValues()); @@ -1263,10 +1265,10 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee // c:overlap $objWriter->startElement('c:overlap'); - if ( $subject->getBarGrouping() == Bar::GROUPING_CLUSTERED ) { - $objWriter->writeAttribute( 'val', '0' ); - } elseif ( $subject->getBarGrouping() == Bar::GROUPING_STACKED || $subject->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED ) { - $objWriter->writeAttribute( 'val', '100' ); + if ($subject->getBarGrouping() == Bar::GROUPING_CLUSTERED) { + $objWriter->writeAttribute('val', '0'); + } elseif ($subject->getBarGrouping() == Bar::GROUPING_STACKED || $subject->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED) { + $objWriter->writeAttribute('val', '100'); } $objWriter->endElement(); @@ -1446,13 +1448,15 @@ protected function writeTypeBar3D(XMLWriter $objWriter, Bar3D $subject, $include $objWriter->endElement(); -// // c:spPr -// $objWriter->startElement('c:spPr'); - -// // Write fill -// $this->writeFill($objWriter, $series->getFill()); - -// $objWriter->endElement(); + // c:spPr + if ($series->getFill()->getFillType() != Fill::FILL_NONE) { + // c:spPr + $objWriter->startElement('c:spPr'); + // Write fill + $this->writeFill($objWriter, $series->getFill()); + // ## c:spPr + $objWriter->endElement(); + } // Write X axis data $axisXData = array_keys($series->getValues()); @@ -2161,14 +2165,14 @@ protected function writeTypeScatter(XMLWriter $objWriter, Scatter $subject, $inc $this->writeElementWithValAttribute($objWriter, 'c:showLeaderLines', $series->hasShowLeaderLines() ? '1' : '0'); $objWriter->endElement(); - + if ($series->getFill()->getFillType() != Fill::FILL_NONE) { // c:spPr - // $objWriter->startElement('c:spPr'); + $objWriter->startElement('c:spPr'); // Write fill - // $this->writeFill($objWriter, $series->getFill()); + $this->writeFill($objWriter, $series->getFill()); // ## c:spPr - // $objWriter->endElement(); + $objWriter->endElement(); } // Write X axis data diff --git a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php index fdf3bbf2d..5bd1d435d 100644 --- a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php +++ b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php @@ -63,15 +63,16 @@ public function testBarDirection() $this->assertEquals(Bar::DIRECTION_VERTICAL, $object->getBarDirection()); } - public function testBarGrouping() { + public function testBarGrouping() + { $object = new Bar(); - $this->assertEquals( Bar::GROUPING_CLUSTERED, $object->getBarGrouping() ); - $this->assertInstanceOf( 'PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_CLUSTERED ) ); - $this->assertEquals( Bar::GROUPING_CLUSTERED, $object->getBarGrouping() ); - $this->assertInstanceOf( 'PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_STACKED ) ); - $this->assertEquals( Bar::GROUPING_STACKED, $object->getBarGrouping() ); - $this->assertInstanceOf( 'PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_PERCENTSTACKED ) ); - $this->assertEquals( Bar::GROUPING_PERCENTSTACKED, $object->getBarGrouping() ); + $this->assertEquals(Bar::GROUPING_CLUSTERED, $object->getBarGrouping()); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_CLUSTERED) ); + $this->assertEquals(Bar::GROUPING_CLUSTERED, $object->getBarGrouping() ); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_STACKED) ); + $this->assertEquals(Bar::GROUPING_STACKED, $object->getBarGrouping() ); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_PERCENTSTACKED) ); + $this->assertEquals(Bar::GROUPING_PERCENTSTACKED, $object->getBarGrouping()); } public function testHashCode() From d878b832f8669e398b47b542ef9ff441e6e46dac Mon Sep 17 00:00:00 2001 From: jking Date: Tue, 23 Jun 2015 14:08:56 -0400 Subject: [PATCH 5/8] TravisCL Formatting Fixes --- src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php | 12 ++++++------ .../PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php index 81072fb20..7f53f9ecf 100644 --- a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php +++ b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php @@ -1450,12 +1450,12 @@ protected function writeTypeBar3D(XMLWriter $objWriter, Bar3D $subject, $include // c:spPr if ($series->getFill()->getFillType() != Fill::FILL_NONE) { - // c:spPr - $objWriter->startElement('c:spPr'); - // Write fill - $this->writeFill($objWriter, $series->getFill()); - // ## c:spPr - $objWriter->endElement(); + // c:spPr + $objWriter->startElement('c:spPr'); + // Write fill + $this->writeFill($objWriter, $series->getFill()); + // ## c:spPr + $objWriter->endElement(); } // Write X axis data diff --git a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php index 5bd1d435d..5dc2f82fa 100644 --- a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php +++ b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php @@ -67,11 +67,11 @@ public function testBarGrouping() { $object = new Bar(); $this->assertEquals(Bar::GROUPING_CLUSTERED, $object->getBarGrouping()); - $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_CLUSTERED) ); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_CLUSTERED)); $this->assertEquals(Bar::GROUPING_CLUSTERED, $object->getBarGrouping() ); - $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_STACKED) ); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_STACKED)); $this->assertEquals(Bar::GROUPING_STACKED, $object->getBarGrouping() ); - $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_PERCENTSTACKED) ); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_PERCENTSTACKED)); $this->assertEquals(Bar::GROUPING_PERCENTSTACKED, $object->getBarGrouping()); } From 45ba901194154e664e2f8734de3f0cc1af7118ed Mon Sep 17 00:00:00 2001 From: jking Date: Tue, 23 Jun 2015 14:27:24 -0400 Subject: [PATCH 6/8] TravisCL Formatting Fixes --- tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php index 5dc2f82fa..6126942e1 100644 --- a/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php +++ b/tests/PhpPowerpoint/Tests/Shape/Chart/Type/BarTest.php @@ -67,11 +67,11 @@ public function testBarGrouping() { $object = new Bar(); $this->assertEquals(Bar::GROUPING_CLUSTERED, $object->getBarGrouping()); - $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_CLUSTERED)); - $this->assertEquals(Bar::GROUPING_CLUSTERED, $object->getBarGrouping() ); - $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_STACKED)); - $this->assertEquals(Bar::GROUPING_STACKED, $object->getBarGrouping() ); - $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping( Bar::GROUPING_PERCENTSTACKED)); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping(Bar::GROUPING_CLUSTERED)); + $this->assertEquals(Bar::GROUPING_CLUSTERED, $object->getBarGrouping()); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping(Bar::GROUPING_STACKED)); + $this->assertEquals(Bar::GROUPING_STACKED, $object->getBarGrouping()); + $this->assertInstanceOf('PhpOffice\\PhpPowerpoint\\Shape\\Chart\\Type\\Bar', $object->setBarGrouping(Bar::GROUPING_PERCENTSTACKED)); $this->assertEquals(Bar::GROUPING_PERCENTSTACKED, $object->getBarGrouping()); } From 2975f1f964fdab3190f25d37ec1e6f128deeaad4 Mon Sep 17 00:00:00 2001 From: jking Date: Thu, 25 Jun 2015 11:24:47 -0400 Subject: [PATCH 7/8] Update Samples for New Chart Types Add Option to Specify Data Label Number Format (so stacked % displays percent) --- samples/Sample_05_Chart.php | 203 +++++++++++++++++- src/PhpPowerpoint/Shape/Chart/Series.php | 36 ++++ .../Writer/ODPresentation/ObjectsChart.php | 9 +- .../Writer/PowerPoint2007/Chart.php | 8 + 4 files changed, 250 insertions(+), 6 deletions(-) diff --git a/samples/Sample_05_Chart.php b/samples/Sample_05_Chart.php index 5f2c5bd17..8dbceb934 100644 --- a/samples/Sample_05_Chart.php +++ b/samples/Sample_05_Chart.php @@ -7,6 +7,7 @@ use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Bar3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Line; +use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Pie3D; use PhpOffice\PhpPowerpoint\Shape\Chart\Type\Scatter; use PhpOffice\PhpPowerpoint\Shape\Chart\Series; @@ -71,7 +72,7 @@ function fnSlide_Bar(PhpPowerpoint $objPHPPowerPoint) { $currentSlide = createTemplatedSlide($objPHPPowerPoint); // Generate sample data for first chart - echo date('H:i:s') . ' Generate sample data for first chart'.EOL; + echo date('H:i:s') . ' Generate sample data for chart'.EOL; $series1Data = array('Jan' => 133, 'Feb' => 99, 'Mar' => 191, 'Apr' => 205, 'May' => 167, 'Jun' => 201, 'Jul' => 240, 'Aug' => 226, 'Sep' => 255, 'Oct' => 264, 'Nov' => 283, 'Dec' => 293); $series2Data = array('Jan' => 266, 'Feb' => 198, 'Mar' => 271, 'Apr' => 305, 'May' => 267, 'Jun' => 301, 'Jul' => 340, 'Aug' => 326, 'Sep' => 344, 'Oct' => 364, 'Nov' => 383, 'Dec' => 379); @@ -147,6 +148,144 @@ function fnSlide_BarHorizontal(PhpPowerpoint $objPHPPowerPoint) { $shape->getLegend()->getFont()->setItalic(true); } +function fnSlide_BarStacked(PhpPowerpoint $objPHPPowerPoint) { + global $oFill; + global $oShadow; + + // Create templated slide + echo EOL . date( 'H:i:s' ) . ' Create templated slide' . EOL; + $currentSlide = createTemplatedSlide( $objPHPPowerPoint ); + + // Generate sample data for first chart + echo date( 'H:i:s' ) . ' Generate sample data for chart' . EOL; + $series1Data = array('Jan' => 133, 'Feb' => 99, 'Mar' => 191, 'Apr' => 205, 'May' => 167, 'Jun' => 201, 'Jul' => 240, 'Aug' => 226, 'Sep' => 255, 'Oct' => 264, 'Nov' => 283, 'Dec' => 293); + $series2Data = array('Jan' => 266, 'Feb' => 198, 'Mar' => 271, 'Apr' => 305, 'May' => 267, 'Jun' => 301, 'Jul' => 340, 'Aug' => 326, 'Sep' => 344, 'Oct' => 364, 'Nov' => 383, 'Dec' => 379); + $series3Data = array('Jan' => 233, 'Feb' => 146, 'Mar' => 238, 'Apr' => 175, 'May' => 108, 'Jun' => 257, 'Jul' => 199, 'Aug' => 201, 'Sep' => 88, 'Oct' => 147, 'Nov' => 287, 'Dec' => 105); + + // Create a bar chart (that should be inserted in a shape) + echo date( 'H:i:s' ) . ' Create a stacked bar chart (that should be inserted in a chart shape)' . EOL; + $StackedBarChart = new Bar(); + $series1 = new Series( '2009', $series1Data ); + $series1->setShowSeriesName( false ); + $series1->getFill()->setFillType( Fill::FILL_SOLID )->setStartColor( new Color( 'FF4F81BD' ) ); + $series1->getFont()->getColor()->setRGB( '00FF00' ); + $series1->setShowValue( true ); + $series1->setShowPercentage( false ); + $series2 = new Series( '2010', $series2Data ); + $series2->setShowSeriesName( false ); + $series2->getFont()->getColor()->setRGB( 'FF0000' ); + $series2->getFill()->setFillType( Fill::FILL_SOLID )->setStartColor( new Color( 'FFC0504D' ) ); + $series2->setShowValue( true ); + $series2->setShowPercentage( false ); + $series3 = new Series( '2011', $series3Data ); + $series3->setShowSeriesName( false ); + $series3->getFont()->getColor()->setRGB( 'FF0000' ); + $series3->getFill()->setFillType( Fill::FILL_SOLID )->setStartColor( new Color( 'FF804DC0' ) ); + $series3->setShowValue( true ); + $series3->setShowPercentage( false ); + $StackedBarChart->addSeries( $series1 ); + $StackedBarChart->addSeries( $series2 ); + $StackedBarChart->addSeries( $series3 ); + $StackedBarChart->setBarGrouping( Bar::GROUPING_STACKED ); + // Create a shape (chart) + echo date( 'H:i:s' ) . ' Create a shape (chart)' . EOL; + $shape = $currentSlide->createChartShape(); + $shape->setName( 'PHPPowerPoint Monthly Downloads' ) + ->setResizeProportional( false ) + ->setHeight( 550 ) + ->setWidth( 700 ) + ->setOffsetX( 120 ) + ->setOffsetY( 80 ); + $shape->setShadow( $oShadow ); + $shape->setFill( $oFill ); + $shape->getBorder()->setLineStyle( Border::LINE_SINGLE ); + $shape->getTitle()->setText( 'PHPPowerPoint Monthly Downloads' ); + $shape->getTitle()->getFont()->setItalic( true ); + $shape->getTitle()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_RIGHT ); + $shape->getPlotArea()->getAxisX()->setTitle( 'Month' ); + $shape->getPlotArea()->getAxisY()->setTitle( 'Downloads' ); + $shape->getPlotArea()->setType( $StackedBarChart ); + $shape->getLegend()->getBorder()->setLineStyle( Border::LINE_SINGLE ); + $shape->getLegend()->getFont()->setItalic( true ); +} +function fnSlide_BarPercentStacked(PhpPowerpoint $objPHPPowerPoint) { + global $oFill; + global $oShadow; + + // Create templated slide + echo EOL . date( 'H:i:s' ) . ' Create templated slide' . EOL; + $currentSlide = createTemplatedSlide( $objPHPPowerPoint ); + + // Generate sample data for first chart + echo date( 'H:i:s' ) . ' Generate sample data for chart' . EOL; + $series1Data = array('Jan' => 133, 'Feb' => 99, 'Mar' => 191, 'Apr' => 205, 'May' => 167, 'Jun' => 201, 'Jul' => 240, 'Aug' => 226, 'Sep' => 255, 'Oct' => 264, 'Nov' => 283, 'Dec' => 293); + $Series1Sum = array_sum($series1Data); + foreach ($series1Data as $CatName => $Value) { + $series1Data[$CatName]= round($Value / $Series1Sum, 2); + } + $series2Data = array('Jan' => 266, 'Feb' => 198, 'Mar' => 271, 'Apr' => 305, 'May' => 267, 'Jun' => 301, 'Jul' => 340, 'Aug' => 326, 'Sep' => 344, 'Oct' => 364, 'Nov' => 383, 'Dec' => 379); + $Series2Sum = array_sum($series2Data); + foreach ($series2Data as $CatName => $Value) { + $series2Data[$CatName] = round($Value / $Series2Sum, 2); + } + $series3Data = array('Jan' => 233, 'Feb' => 146, 'Mar' => 238, 'Apr' => 175, 'May' => 108, 'Jun' => 257, 'Jul' => 199, 'Aug' => 201, 'Sep' => 88, 'Oct' => 147, 'Nov' => 287, 'Dec' => 105); + $Series3Sum = array_sum( $series3Data ); + foreach ($series3Data as $CatName => $Value) { + $series3Data[$CatName] = round($Value / $Series3Sum,2); + } + + // Create a bar chart (that should be inserted in a shape) + echo date( 'H:i:s' ) . ' Create a percent stacked horizontal bar chart (that should be inserted in a chart shape)' . EOL; + $PercentStackedBarChartHoriz = new Bar(); + $series1 = new Series( '2009', $series1Data ); + $series1->setShowSeriesName( false ); + $series1->getFill()->setFillType( Fill::FILL_SOLID )->setStartColor( new Color( 'FF4F81BD' ) ); + $series1->getFont()->getColor()->setRGB( '00FF00' ); + $series1->setShowValue( true ); + $series1->setShowPercentage( false ); + // Set Data Label Format For Chart To Display Percent + $series1->setDlblNumFormat( '#%' ); + $series2 = new Series( '2010', $series2Data ); + $series2->setShowSeriesName( false ); + $series2->getFont()->getColor()->setRGB( 'FF0000' ); + $series2->getFill()->setFillType( Fill::FILL_SOLID )->setStartColor( new Color( 'FFC0504D' ) ); + $series2->setShowValue( true ); + $series2->setShowPercentage( false ); + $series2->setDlblNumFormat( '#%' ); + $series3 = new Series( '2011', $series3Data ); + $series3->setShowSeriesName( false ); + $series3->getFont()->getColor()->setRGB( 'FF0000' ); + $series3->getFill()->setFillType( Fill::FILL_SOLID )->setStartColor( new Color( 'FF804DC0' ) ); + $series3->setShowValue( true ); + $series3->setShowPercentage( false ); + $series3->setDlblNumFormat( '#%' ); + $PercentStackedBarChartHoriz->addSeries( $series1 ); + $PercentStackedBarChartHoriz->addSeries( $series2 ); + $PercentStackedBarChartHoriz->addSeries( $series3 ); + $PercentStackedBarChartHoriz->setBarGrouping( Bar::GROUPING_PERCENTSTACKED ); + $PercentStackedBarChartHoriz->setBarDirection( Bar3D::DIRECTION_HORIZONTAL ); + // Create a shape (chart) + echo date( 'H:i:s' ) . ' Create a shape (chart)' . EOL; + $shape = $currentSlide->createChartShape(); + $shape->setName( 'PHPPowerPoint Monthly Downloads' ) + ->setResizeProportional( false ) + ->setHeight( 550 ) + ->setWidth( 700 ) + ->setOffsetX( 120 ) + ->setOffsetY( 80 ); + $shape->setShadow( $oShadow ); + $shape->setFill( $oFill ); + $shape->getBorder()->setLineStyle( Border::LINE_SINGLE ); + $shape->getTitle()->setText( 'PHPPowerPoint Monthly Downloads' ); + $shape->getTitle()->getFont()->setItalic( true ); + $shape->getTitle()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_RIGHT ); + $shape->getPlotArea()->getAxisX()->setTitle( 'Month' ); + $shape->getPlotArea()->getAxisY()->setTitle( 'Downloads' ); + $shape->getPlotArea()->setType( $PercentStackedBarChartHoriz ); + $shape->getLegend()->getBorder()->setLineStyle( Border::LINE_SINGLE ); + $shape->getLegend()->getFont()->setItalic( true ); +} + function fnSlide_Bar3D(PhpPowerpoint $objPHPPowerPoint) { global $oFill; global $oShadow; @@ -156,7 +295,7 @@ function fnSlide_Bar3D(PhpPowerpoint $objPHPPowerPoint) { $currentSlide = createTemplatedSlide($objPHPPowerPoint); // Generate sample data for first chart - echo date('H:i:s') . ' Generate sample data for first chart'.EOL; + echo date('H:i:s') . ' Generate sample data for chart'.EOL; $series1Data = array('Jan' => 133, 'Feb' => 99, 'Mar' => 191, 'Apr' => 205, 'May' => 167, 'Jun' => 201, 'Jul' => 240, 'Aug' => 226, 'Sep' => 255, 'Oct' => 264, 'Nov' => 283, 'Dec' => 293); $series2Data = array('Jan' => 266, 'Feb' => 198, 'Mar' => 271, 'Apr' => 305, 'May' => 267, 'Jun' => 301, 'Jul' => 340, 'Aug' => 326, 'Sep' => 344, 'Oct' => 364, 'Nov' => 383, 'Dec' => 379); @@ -206,7 +345,7 @@ function fnSlide_Bar3DHorizontal(PhpPowerpoint $objPHPPowerPoint) { // Create a bar chart (that should be inserted in a shape) echo date('H:i:s') . ' Create a horizontal bar chart (that should be inserted in a chart shape) '.EOL; - $bar3DChartHorz = clone $objPHPPowerPoint->getSlide(3)->getShapeCollection()->offsetGet(1)->getPlotArea()->getType(); + $bar3DChartHorz = clone $objPHPPowerPoint->getSlide(5)->getShapeCollection()->offsetGet(1)->getPlotArea()->getType(); $bar3DChartHorz->setBarDirection(Bar3D::DIRECTION_HORIZONTAL); // Create templated slide @@ -247,7 +386,7 @@ function fnSlide_Pie3D(PhpPowerpoint $objPHPPowerPoint) { $currentSlide = createTemplatedSlide($objPHPPowerPoint); // Generate sample data for second chart - echo date('H:i:s') . ' Generate sample data for second chart'.EOL; + echo date('H:i:s') . ' Generate sample data for chart'.EOL; $seriesData = array('Monday' => 12, 'Tuesday' => 15, 'Wednesday' => 13, 'Thursday' => 17, 'Friday' => 14, 'Saturday' => 9, 'Sunday' => 7); // Create a pie chart (that should be inserted in a shape) @@ -286,6 +425,54 @@ function fnSlide_Pie3D(PhpPowerpoint $objPHPPowerPoint) { $shape->getLegend()->getFont()->setItalic(true); } +function fnSlide_Pie(PhpPowerpoint $objPHPPowerPoint) { + global $oFill; + global $oShadow; + + // Create templated slide + echo EOL.date('H:i:s') . ' Create templated slide'.EOL; + $currentSlide = createTemplatedSlide($objPHPPowerPoint); + + // Generate sample data for second chart + echo date('H:i:s') . ' Generate sample data for chart'.EOL; + $seriesData = array('Monday' => 18, 'Tuesday' => 23, 'Wednesday' => 14, 'Thursday' => 12, 'Friday' => 20, 'Saturday' => 8, 'Sunday' => 10); + + // Create a pie chart (that should be inserted in a shape) + echo date('H:i:s') . ' Create a non-3D pie chart (that should be inserted in a chart shape)'.EOL; + $pieChart = new Pie(); + $series = new Series('Downloads', $seriesData); + $series->getDataPointFill(0)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF7CB5EC')); + $series->getDataPointFill(1)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF434348')); + $series->getDataPointFill(2)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF90ED7D')); + $series->getDataPointFill(3)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFF7A35C')); + $series->getDataPointFill(4)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FF8085E9')); + $series->getDataPointFill(5)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFF15C80')); + $series->getDataPointFill(6)->setFillType(Fill::FILL_SOLID)->setStartColor(new Color('FFE4D354')); + $series->setShowPercentage( true ); + $series->setShowValue( false ); + $series->setShowSeriesName( false ); + $series->setShowCategoryName( true ); + $pieChart->addSeries($series); + + // Create a shape (chart) + echo date('H:i:s') . ' Create a shape (chart)'.EOL; + $shape = $currentSlide->createChartShape(); + $shape->setName('PHPPowerPoint Daily Downloads') + ->setResizeProportional(false) + ->setHeight(550) + ->setWidth(700) + ->setOffsetX(120) + ->setOffsetY(80); + $shape->setShadow($oShadow); + $shape->setFill($oFill); + $shape->getBorder()->setLineStyle(Border::LINE_SINGLE); + $shape->getTitle()->setText('PHPPowerPoint Daily Downloads'); + $shape->getTitle()->getFont()->setItalic(true); + $shape->getPlotArea()->setType($pieChart); + $shape->getLegend()->getBorder()->setLineStyle(Border::LINE_SINGLE); + $shape->getLegend()->getFont()->setItalic(true); +} + function fnSlide_Scatter(PhpPowerpoint $objPHPPowerPoint) { global $oFill; global $oShadow; @@ -295,7 +482,7 @@ function fnSlide_Scatter(PhpPowerpoint $objPHPPowerPoint) { $currentSlide = createTemplatedSlide($objPHPPowerPoint); // local function // Generate sample data for fourth chart - echo date('H:i:s') . ' Generate sample data for fourth chart'.EOL; + echo date('H:i:s') . ' Generate sample data for chart'.EOL; $seriesData = array('Monday' => 0.1, 'Tuesday' => 0.33333, 'Wednesday' => 0.4444, 'Thursday' => 0.5, 'Friday' => 0.4666, 'Saturday' => 0.3666, 'Sunday' => 0.1666); // Create a scatter chart (that should be inserted in a shape) @@ -355,6 +542,10 @@ function fnSlide_Scatter(PhpPowerpoint $objPHPPowerPoint) { fnSlide_Bar($objPHPPowerPoint); +fnSlide_BarStacked($objPHPPowerPoint); + +fnSlide_BarPercentStacked($objPHPPowerPoint); + fnSlide_BarHorizontal($objPHPPowerPoint); fnSlide_Bar3D($objPHPPowerPoint); @@ -363,6 +554,8 @@ function fnSlide_Scatter(PhpPowerpoint $objPHPPowerPoint) { fnSlide_Pie3D($objPHPPowerPoint); +fnSlide_Pie($objPHPPowerPoint); + fnSlide_Scatter($objPHPPowerPoint); // Save file diff --git a/src/PhpPowerpoint/Shape/Chart/Series.php b/src/PhpPowerpoint/Shape/Chart/Series.php index 26503b4e0..48f377585 100644 --- a/src/PhpPowerpoint/Shape/Chart/Series.php +++ b/src/PhpPowerpoint/Shape/Chart/Series.php @@ -44,6 +44,13 @@ class Series implements ComparableInterface */ private $title = 'Series Title'; + /** + * Data Label Number Format + * + * @var string + */ + private $DlblNumFormat = ''; + /** * Fill * @@ -160,6 +167,35 @@ public function setTitle($value = 'Series Title') return $this; } + /** + * Get Data Label NumFormat + * + * @return string + */ + public function getDlblNumFormat() { + return $this->DlblNumFormat; + } + + /** + * Has Data Label NumFormat + * + * @return string + */ + public function hasDlblNumFormat() { + return !empty($this->DlblNumFormat); + } + + /** + * Set Data Label NumFormat + * + * @param string $value + * @return \PhpOffice\PhpPowerpoint\Shape\Chart\Series + */ + public function setDlblNumFormat($value = '') { + $this->DlblNumFormat = $value; + return $this; + } + /** * Get Fill * diff --git a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php index ef2012ad8..3f6d261e4 100644 --- a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php +++ b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php @@ -508,7 +508,14 @@ private function writePlotAreaStyle(Chart $chart) } } - $this->xmlContent->writeAttribute('chart:data-label-number', 'value'); + $LabelFormat = 'value'; + if ($chartType instanceof Bar || $chartType instanceof Bar3D) { + if ($chartType->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED) { + $LabelFormat = 'percentage'; + } + } + $this->xmlContent->writeAttribute('chart:data-label-number', $LabelFormat); + // > style:text-properties $this->xmlContent->endElement(); // > style:style diff --git a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php index 7f53f9ecf..214011154 100644 --- a/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php +++ b/src/PhpPowerpoint/Writer/PowerPoint2007/Chart.php @@ -1153,6 +1153,14 @@ protected function writeTypeBar(XMLWriter $objWriter, Bar $subject, $includeShee // c:dLbls $objWriter->startElement('c:dLbls'); + if ($series->hasDlblNumFormat()) { + //c:numFmt + $objWriter->startElement('c:numFmt'); + $objWriter->writeAttribute('formatCode', $series->getDlblNumFormat()); + $objWriter->writeAttribute('sourceLinked', '0'); + $objWriter->endElement(); + } + // c:txPr $objWriter->startElement('c:txPr'); From bc6a6487154d36a948198dce0656bac9f5e12898 Mon Sep 17 00:00:00 2001 From: jking Date: Thu, 25 Jun 2015 14:17:42 -0400 Subject: [PATCH 8/8] TravisCL Formatting Fixes --- src/PhpPowerpoint/Shape/Chart/Series.php | 9 ++++++--- src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/PhpPowerpoint/Shape/Chart/Series.php b/src/PhpPowerpoint/Shape/Chart/Series.php index 48f377585..f4ce1b58f 100644 --- a/src/PhpPowerpoint/Shape/Chart/Series.php +++ b/src/PhpPowerpoint/Shape/Chart/Series.php @@ -172,7 +172,8 @@ public function setTitle($value = 'Series Title') * * @return string */ - public function getDlblNumFormat() { + public function getDlblNumFormat() + { return $this->DlblNumFormat; } @@ -181,7 +182,8 @@ public function getDlblNumFormat() { * * @return string */ - public function hasDlblNumFormat() { + public function hasDlblNumFormat() + { return !empty($this->DlblNumFormat); } @@ -191,7 +193,8 @@ public function hasDlblNumFormat() { * @param string $value * @return \PhpOffice\PhpPowerpoint\Shape\Chart\Series */ - public function setDlblNumFormat($value = '') { + public function setDlblNumFormat($value = '') + { $this->DlblNumFormat = $value; return $this; } diff --git a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php index 3f6d261e4..0c9974c5c 100644 --- a/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php +++ b/src/PhpPowerpoint/Writer/ODPresentation/ObjectsChart.php @@ -508,13 +508,13 @@ private function writePlotAreaStyle(Chart $chart) } } - $LabelFormat = 'value'; + $labelFormat = 'value'; if ($chartType instanceof Bar || $chartType instanceof Bar3D) { if ($chartType->getBarGrouping() == Bar::GROUPING_PERCENTSTACKED) { - $LabelFormat = 'percentage'; + $labelFormat = 'percentage'; } } - $this->xmlContent->writeAttribute('chart:data-label-number', $LabelFormat); + $this->xmlContent->writeAttribute('chart:data-label-number', $labelFormat); // > style:text-properties $this->xmlContent->endElement();