public function testIncludeSpreadsheet() { $object = new Chart(); $this->assertFalse($object->hasIncludedSpreadsheet()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart', $object->setIncludeSpreadsheet()); $this->assertFalse($object->hasIncludedSpreadsheet()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart', $object->setIncludeSpreadsheet(false)); $this->assertFalse($object->hasIncludedSpreadsheet()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Shape\\Chart', $object->setIncludeSpreadsheet(true)); $this->assertTrue($object->hasIncludedSpreadsheet()); }
/** * Write chart relationships to XML format * * @param \PhpOffice\PhpPresentation\Shape\Chart $pChart * @return string XML Output * @throws \Exception */ public function writeChartRelationships(ShapeChart $pChart) { // Create XML writer $objWriter = $this->getXMLWriter(); // XML header $objWriter->startDocument('1.0', 'UTF-8', 'yes'); // Relationships $objWriter->startElement('Relationships'); $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); // Write spreadsheet relationship? if ($pChart->hasIncludedSpreadsheet()) { $this->writeRelationship($objWriter, 1, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/package', '../embeddings/' . $pChart->getIndexedFilename() . '.xlsx'); } $objWriter->endElement(); // Return return $objWriter->getData(); }
/** * Write Plot Area * * @param \PhpOffice\Common\XMLWriter $objWriter XML Writer * @param \PhpOffice\PhpPresentation\Shape\Chart\PlotArea $subject * @param \PhpOffice\PhpPresentation\Shape\Chart $chart * @throws \Exception */ protected function writePlotArea(XMLWriter $objWriter, PlotArea $subject, ShapeChart $chart) { // c:plotArea $objWriter->startElement('c:plotArea'); // Write layout $this->writeLayout($objWriter, $subject); // Write chart $chartType = $subject->getType(); if ($chartType instanceof Area) { $this->writeTypeArea($objWriter, $chartType, $chart->hasIncludedSpreadsheet()); } elseif ($chartType instanceof Bar) { $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) { $this->writeTypeLine($objWriter, $chartType, $chart->hasIncludedSpreadsheet()); } elseif ($chartType instanceof Scatter) { $this->writeTypeScatter($objWriter, $chartType, $chart->hasIncludedSpreadsheet()); } else { throw new \Exception('The chart type provided could not be rendered.'); } // Write X axis? if ($chartType->hasAxisX()) { // c:catAx (Axis X) $objWriter->startElement('c:catAx'); // c:axId $objWriter->startElement('c:axId'); $objWriter->writeAttribute('val', '52743552'); $objWriter->endElement(); // c:scaling $objWriter->startElement('c:scaling'); // c:orientation $objWriter->startElement('c:orientation'); $objWriter->writeAttribute('val', 'minMax'); $objWriter->endElement(); $objWriter->endElement(); // c:axPos $objWriter->startElement('c:axPos'); $objWriter->writeAttribute('val', 'b'); $objWriter->endElement(); // c:numFmt $objWriter->startElement('c:numFmt'); $objWriter->writeAttribute('formatCode', $subject->getAxisX()->getFormatCode()); $objWriter->writeAttribute('sourceLinked', '0'); $objWriter->endElement(); // c:majorTickMark $objWriter->startElement('c:majorTickMark'); $objWriter->writeAttribute('val', 'none'); $objWriter->endElement(); // c:tickLblPos $objWriter->startElement('c:tickLblPos'); $objWriter->writeAttribute('val', 'nextTo'); $objWriter->endElement(); // 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->writeElement('a:defRPr', null); $objWriter->endElement(); // a:r $objWriter->startElement('a:r'); // a:rPr $objWriter->startElement('a:rPr'); $objWriter->writeAttribute('lang', 'en-US'); $objWriter->writeAttribute('dirty', '0'); $objWriter->endElement(); // a:t $objWriter->writeElement('a:t', $subject->getAxisX()->getTitle()); $objWriter->endElement(); // a:endParaRPr $objWriter->startElement('a:endParaRPr'); $objWriter->writeAttribute('lang', 'en-US'); $objWriter->writeAttribute('dirty', '0'); $objWriter->endElement(); $objWriter->endElement(); $objWriter->endElement(); // c:crossAx $objWriter->startElement('c:crossAx'); $objWriter->writeAttribute('val', '52749440'); $objWriter->endElement(); // c:crosses $objWriter->startElement('c:crosses'); $objWriter->writeAttribute('val', 'autoZero'); $objWriter->endElement(); // c:lblAlgn $objWriter->startElement('c:lblAlgn'); $objWriter->writeAttribute('val', 'ctr'); $objWriter->endElement(); // c:lblOffset $objWriter->startElement('c:lblOffset'); $objWriter->writeAttribute('val', '100'); $objWriter->endElement(); $objWriter->endElement(); } // Write Y axis? if ($chartType->hasAxisY()) { // c:valAx (Axis Y) $objWriter->startElement('c:valAx'); // c:axId $objWriter->startElement('c:axId'); $objWriter->writeAttribute('val', '52749440'); $objWriter->endElement(); // c:scaling $objWriter->startElement('c:scaling'); // c:orientation $objWriter->startElement('c:orientation'); $objWriter->writeAttribute('val', 'minMax'); $objWriter->endElement(); // ## c:scaling $objWriter->endElement(); // c:axPos $objWriter->startElement('c:axPos'); $objWriter->writeAttribute('val', 'l'); $objWriter->endElement(); // c:numFmt $objWriter->startElement('c:numFmt'); $objWriter->writeAttribute('formatCode', $subject->getAxisY()->getFormatCode()); $objWriter->writeAttribute('sourceLinked', '0'); $objWriter->endElement(); // c:majorTickMark $objWriter->startElement('c:majorTickMark'); $objWriter->writeAttribute('val', 'none'); $objWriter->endElement(); // c:tickLblPos $objWriter->startElement('c:tickLblPos'); $objWriter->writeAttribute('val', 'nextTo'); $objWriter->endElement(); // 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->writeElement('a:defRPr', null); // ## a:pPr $objWriter->endElement(); // a:r $objWriter->startElement('a:r'); // a:rPr $objWriter->startElement('a:rPr'); $objWriter->writeAttribute('lang', 'en-US'); $objWriter->writeAttribute('dirty', '0'); $objWriter->endElement(); // a:t $objWriter->writeElement('a:t', $subject->getAxisY()->getTitle()); // ## a:r $objWriter->endElement(); // a:endParaRPr $objWriter->startElement('a:endParaRPr'); $objWriter->writeAttribute('lang', 'en-US'); $objWriter->writeAttribute('dirty', '0'); $objWriter->endElement(); // ## a:p $objWriter->endElement(); // ## c:txPr $objWriter->endElement(); // c:crossAx $objWriter->startElement('c:crossAx'); $objWriter->writeAttribute('val', '52743552'); $objWriter->endElement(); // c:crosses $objWriter->startElement('c:crosses'); $objWriter->writeAttribute('val', 'autoZero'); $objWriter->endElement(); // c:crossBetween $objWriter->startElement('c:crossBetween'); $objWriter->writeAttribute('val', 'between'); $objWriter->endElement(); $objWriter->endElement(); } $objWriter->endElement(); }