Esempio n. 1
0
 /**
  * Write charts to XML format
  *
  * @param  \PHPExcel\Chart $pChart
  *
  * @return  string            XML Output
  * @throws  \PHPExcel\Writer\Exception
  */
 public function writeChart(\PHPExcel\Chart $pChart = null, $calculateCellValues = true)
 {
     $this->calculateCellValues = $calculateCellValues;
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new \PHPExcel\Shared\XMLWriter(\PHPExcel\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new \PHPExcel\Shared\XMLWriter(\PHPExcel\Shared\XMLWriter::STORAGE_MEMORY);
     }
     //    Ensure that data series values are up-to-date before we save
     if ($this->calculateCellValues) {
         $pChart->refresh();
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // c:chartSpace
     $objWriter->startElement('c:chartSpace');
     $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart');
     $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
     $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
     $objWriter->startElement('c:date1904');
     $objWriter->writeAttribute('val', 0);
     $objWriter->endElement();
     $objWriter->startElement('c:lang');
     $objWriter->writeAttribute('val', "en-GB");
     $objWriter->endElement();
     $objWriter->startElement('c:roundedCorners');
     $objWriter->writeAttribute('val', 0);
     $objWriter->endElement();
     $this->writeAlternateContent($objWriter);
     $objWriter->startElement('c:chart');
     $this->writeTitle($pChart->getTitle(), $objWriter);
     $objWriter->startElement('c:autoTitleDeleted');
     $objWriter->writeAttribute('val', 0);
     $objWriter->endElement();
     $this->writePlotArea($pChart->getPlotArea(), $pChart->getXAxisLabel(), $pChart->getYAxisLabel(), $objWriter, $pChart->getWorksheet(), $pChart->getChartAxisX(), $pChart->getChartAxisY(), $pChart->getMajorGridlines(), $pChart->getMinorGridlines());
     $this->writeLegend($pChart->getLegend(), $objWriter);
     $objWriter->startElement('c:plotVisOnly');
     $objWriter->writeAttribute('val', 1);
     $objWriter->endElement();
     $objWriter->startElement('c:dispBlanksAs');
     $objWriter->writeAttribute('val', "gap");
     $objWriter->endElement();
     $objWriter->startElement('c:showDLblsOverMax');
     $objWriter->writeAttribute('val', 0);
     $objWriter->endElement();
     $objWriter->endElement();
     $this->writePrintSettings($objWriter);
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }