예제 #1
0
 /**
  * Write relationships for additional objects of custom UI (ribbon)
  *
  * @param \PHPExcel\SpreadSheet $pPHPExcel
  * @return string XML Output
  * @throws     \PHPExcel\Writer\Exception
  */
 public function writeRibbonRelationships(\PHPExcel\SpreadSheet $pPHPExcel = null)
 {
     // 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);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Relationships
     $objWriter->startElement('Relationships');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
     $localRels = $pPHPExcel->getRibbonBinObjects('names');
     if (is_array($localRels)) {
         foreach ($localRels as $aId => $aTarget) {
             $objWriter->startElement('Relationship');
             $objWriter->writeAttribute('Id', $aId);
             $objWriter->writeAttribute('Type', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image');
             $objWriter->writeAttribute('Target', $aTarget);
             $objWriter->endElement();
         }
     }
     $objWriter->endElement();
     return $objWriter->getData();
 }
예제 #2
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();
 }
예제 #3
0
 /**
  * Write relationships for a signed VBA Project
  *
  * @param \PHPExcel\SpreadSheet $pPHPExcel
  * @return string  XML Output
  * @throws     \PHPExcel\Writer\Exception
  */
 public function writeVBARelationships(\PHPExcel\SpreadSheet $pPHPExcel = null)
 {
     // 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);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Relationships
     $objWriter->startElement('Relationships');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
     $objWriter->startElement('Relationship');
     $objWriter->writeAttribute('Id', 'rId1');
     $objWriter->writeAttribute('Type', 'http://schemas.microsoft.com/office/2006/relationships/vbaProjectSignature');
     $objWriter->writeAttribute('Target', 'vbaProjectSignature.bin');
     $objWriter->endElement();
     $objWriter->endElement();
     return $objWriter->getData();
 }
예제 #4
0
 /**
  * Write VML comments to XML format
  *
  * @param \PHPExcel\Worksheet $pWorksheet
  * @return string XML Output
  * @throws \PHPExcel\Writer\Exception
  */
 public function writeVMLComments(\PHPExcel\Worksheet $pWorksheet = null)
 {
     // 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);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Comments cache
     $comments = $pWorksheet->getComments();
     // xml
     $objWriter->startElement('xml');
     $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
     $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
     $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel');
     // o:shapelayout
     $objWriter->startElement('o:shapelayout');
     $objWriter->writeAttribute('v:ext', 'edit');
     // o:idmap
     $objWriter->startElement('o:idmap');
     $objWriter->writeAttribute('v:ext', 'edit');
     $objWriter->writeAttribute('data', '1');
     $objWriter->endElement();
     $objWriter->endElement();
     // v:shapetype
     $objWriter->startElement('v:shapetype');
     $objWriter->writeAttribute('id', '_x0000_t202');
     $objWriter->writeAttribute('coordsize', '21600,21600');
     $objWriter->writeAttribute('o:spt', '202');
     $objWriter->writeAttribute('path', 'm,l,21600r21600,l21600,xe');
     // v:stroke
     $objWriter->startElement('v:stroke');
     $objWriter->writeAttribute('joinstyle', 'miter');
     $objWriter->endElement();
     // v:path
     $objWriter->startElement('v:path');
     $objWriter->writeAttribute('gradientshapeok', 't');
     $objWriter->writeAttribute('o:connecttype', 'rect');
     $objWriter->endElement();
     $objWriter->endElement();
     // Loop through comments
     foreach ($comments as $key => $value) {
         $this->writeVMLComment($objWriter, $key, $value);
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
예제 #5
0
 /**
  * Write VML header/footer images to XML format
  *
  * @param     \PHPExcel\Worksheet                $pWorksheet
  * @return string                          XML Output
  * @throws     \PHPExcel\Writer\Exception
  */
 public function writeVMLHeaderFooterImages(\PHPExcel\Worksheet $pWorksheet = null)
 {
     // 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);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Header/footer images
     $images = $pWorksheet->getHeaderFooter()->getImages();
     // xml
     $objWriter->startElement('xml');
     $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
     $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
     $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel');
     // o:shapelayout
     $objWriter->startElement('o:shapelayout');
     $objWriter->writeAttribute('v:ext', 'edit');
     // o:idmap
     $objWriter->startElement('o:idmap');
     $objWriter->writeAttribute('v:ext', 'edit');
     $objWriter->writeAttribute('data', '1');
     $objWriter->endElement();
     $objWriter->endElement();
     // v:shapetype
     $objWriter->startElement('v:shapetype');
     $objWriter->writeAttribute('id', '_x0000_t75');
     $objWriter->writeAttribute('coordsize', '21600,21600');
     $objWriter->writeAttribute('o:spt', '75');
     $objWriter->writeAttribute('o:preferrelative', 't');
     $objWriter->writeAttribute('path', 'm@4@5l@4@11@9@11@9@5xe');
     $objWriter->writeAttribute('filled', 'f');
     $objWriter->writeAttribute('stroked', 'f');
     // v:stroke
     $objWriter->startElement('v:stroke');
     $objWriter->writeAttribute('joinstyle', 'miter');
     $objWriter->endElement();
     // v:formulas
     $objWriter->startElement('v:formulas');
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'if lineDrawn pixelLineWidth 0');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'sum @0 1 0');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'sum 0 0 @1');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'prod @2 1 2');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelWidth');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelHeight');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'sum @0 0 1');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'prod @6 1 2');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelWidth');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'sum @8 21600 0');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelHeight');
     $objWriter->endElement();
     // v:f
     $objWriter->startElement('v:f');
     $objWriter->writeAttribute('eqn', 'sum @10 21600 0');
     $objWriter->endElement();
     $objWriter->endElement();
     // v:path
     $objWriter->startElement('v:path');
     $objWriter->writeAttribute('o:extrusionok', 'f');
     $objWriter->writeAttribute('gradientshapeok', 't');
     $objWriter->writeAttribute('o:connecttype', 'rect');
     $objWriter->endElement();
     // o:lock
     $objWriter->startElement('o:lock');
     $objWriter->writeAttribute('v:ext', 'edit');
     $objWriter->writeAttribute('aspectratio', 't');
     $objWriter->endElement();
     $objWriter->endElement();
     // Loop through images
     foreach ($images as $key => $value) {
         $this->writeVMLHeaderFooterImage($objWriter, $key, $value);
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
예제 #6
0
 /**
  * Write docProps/custom.xml to XML format
  *
  * @param \PHPExcel\SpreadSheet $pPHPExcel
  * @return string  XML Output
  * @throws     \PHPExcel\Writer\Exception
  */
 public function writeDocPropsCustom(\PHPExcel\SpreadSheet $pPHPExcel = null)
 {
     $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties();
     if (empty($customPropertyList)) {
         return;
     }
     // 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);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // cp:coreProperties
     $objWriter->startElement('Properties');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties');
     $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
     foreach ($customPropertyList as $key => $customProperty) {
         $propertyValue = $pPHPExcel->getProperties()->getCustomPropertyValue($customProperty);
         $propertyType = $pPHPExcel->getProperties()->getCustomPropertyType($customProperty);
         $objWriter->startElement('property');
         $objWriter->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}');
         $objWriter->writeAttribute('pid', $key + 2);
         $objWriter->writeAttribute('name', $customProperty);
         switch ($propertyType) {
             case 'i':
                 $objWriter->writeElement('vt:i4', $propertyValue);
                 break;
             case 'f':
                 $objWriter->writeElement('vt:r8', $propertyValue);
                 break;
             case 'b':
                 $objWriter->writeElement('vt:bool', $propertyValue ? 'true' : 'false');
                 break;
             case 'd':
                 $objWriter->startElement('vt:filetime');
                 $objWriter->writeRawData(date(DATE_W3C, $propertyValue));
                 $objWriter->endElement();
                 break;
             default:
                 $objWriter->writeElement('vt:lpwstr', $propertyValue);
                 break;
         }
         $objWriter->endElement();
     }
     $objWriter->endElement();
     return $objWriter->getData();
 }
예제 #7
0
 /**
  * Write theme to XML format
  *
  * @param \PHPExcel\SpreadSheet $pPHPExcel
  * @return string  XML Output
  * @throws     \PHPExcel\Writer\Exception
  */
 public function writeTheme(\PHPExcel\SpreadSheet $pPHPExcel = null)
 {
     // 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);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // a:theme
     $objWriter->startElement('a:theme');
     $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
     $objWriter->writeAttribute('name', 'Office Theme');
     // a:themeElements
     $objWriter->startElement('a:themeElements');
     // a:clrScheme
     $objWriter->startElement('a:clrScheme');
     $objWriter->writeAttribute('name', 'Office');
     // a:dk1
     $objWriter->startElement('a:dk1');
     // a:sysClr
     $objWriter->startElement('a:sysClr');
     $objWriter->writeAttribute('val', 'windowText');
     $objWriter->writeAttribute('lastClr', '000000');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lt1
     $objWriter->startElement('a:lt1');
     // a:sysClr
     $objWriter->startElement('a:sysClr');
     $objWriter->writeAttribute('val', 'window');
     $objWriter->writeAttribute('lastClr', 'FFFFFF');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:dk2
     $this->writeColourScheme($objWriter);
     $objWriter->endElement();
     // a:fontScheme
     $objWriter->startElement('a:fontScheme');
     $objWriter->writeAttribute('name', 'Office');
     // a:majorFont
     $objWriter->startElement('a:majorFont');
     $this->writeFonts($objWriter, 'Cambria', self::$majorFonts);
     $objWriter->endElement();
     // a:minorFont
     $objWriter->startElement('a:minorFont');
     $this->writeFonts($objWriter, 'Calibri', self::$minorFonts);
     $objWriter->endElement();
     $objWriter->endElement();
     // a:fmtScheme
     $objWriter->startElement('a:fmtScheme');
     $objWriter->writeAttribute('name', 'Office');
     // a:fillStyleLst
     $objWriter->startElement('a:fillStyleLst');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gradFill
     $objWriter->startElement('a:gradFill');
     $objWriter->writeAttribute('rotWithShape', '1');
     // a:gsLst
     $objWriter->startElement('a:gsLst');
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '0');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '50000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '300000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '35000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '37000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '300000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '100000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '15000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '350000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lin
     $objWriter->startElement('a:lin');
     $objWriter->writeAttribute('ang', '16200000');
     $objWriter->writeAttribute('scaled', '1');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gradFill
     $objWriter->startElement('a:gradFill');
     $objWriter->writeAttribute('rotWithShape', '1');
     // a:gsLst
     $objWriter->startElement('a:gsLst');
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '0');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '51000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '130000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '80000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '93000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '130000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '100000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '94000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '135000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lin
     $objWriter->startElement('a:lin');
     $objWriter->writeAttribute('ang', '16200000');
     $objWriter->writeAttribute('scaled', '0');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lnStyleLst
     $objWriter->startElement('a:lnStyleLst');
     // a:ln
     $objWriter->startElement('a:ln');
     $objWriter->writeAttribute('w', '9525');
     $objWriter->writeAttribute('cap', 'flat');
     $objWriter->writeAttribute('cmpd', 'sng');
     $objWriter->writeAttribute('algn', 'ctr');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '95000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '105000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:prstDash
     $objWriter->startElement('a:prstDash');
     $objWriter->writeAttribute('val', 'solid');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:ln
     $objWriter->startElement('a:ln');
     $objWriter->writeAttribute('w', '25400');
     $objWriter->writeAttribute('cap', 'flat');
     $objWriter->writeAttribute('cmpd', 'sng');
     $objWriter->writeAttribute('algn', 'ctr');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:prstDash
     $objWriter->startElement('a:prstDash');
     $objWriter->writeAttribute('val', 'solid');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:ln
     $objWriter->startElement('a:ln');
     $objWriter->writeAttribute('w', '38100');
     $objWriter->writeAttribute('cap', 'flat');
     $objWriter->writeAttribute('cmpd', 'sng');
     $objWriter->writeAttribute('algn', 'ctr');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:prstDash
     $objWriter->startElement('a:prstDash');
     $objWriter->writeAttribute('val', 'solid');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:effectStyleLst
     $objWriter->startElement('a:effectStyleLst');
     // a:effectStyle
     $objWriter->startElement('a:effectStyle');
     // a:effectLst
     $objWriter->startElement('a:effectLst');
     // a:outerShdw
     $objWriter->startElement('a:outerShdw');
     $objWriter->writeAttribute('blurRad', '40000');
     $objWriter->writeAttribute('dist', '20000');
     $objWriter->writeAttribute('dir', '5400000');
     $objWriter->writeAttribute('rotWithShape', '0');
     // a:srgbClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '000000');
     // a:alpha
     $objWriter->startElement('a:alpha');
     $objWriter->writeAttribute('val', '38000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:effectStyle
     $objWriter->startElement('a:effectStyle');
     // a:effectLst
     $objWriter->startElement('a:effectLst');
     // a:outerShdw
     $objWriter->startElement('a:outerShdw');
     $objWriter->writeAttribute('blurRad', '40000');
     $objWriter->writeAttribute('dist', '23000');
     $objWriter->writeAttribute('dir', '5400000');
     $objWriter->writeAttribute('rotWithShape', '0');
     // a:srgbClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '000000');
     // a:alpha
     $objWriter->startElement('a:alpha');
     $objWriter->writeAttribute('val', '35000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:effectStyle
     $objWriter->startElement('a:effectStyle');
     // a:effectLst
     $objWriter->startElement('a:effectLst');
     // a:outerShdw
     $objWriter->startElement('a:outerShdw');
     $objWriter->writeAttribute('blurRad', '40000');
     $objWriter->writeAttribute('dist', '23000');
     $objWriter->writeAttribute('dir', '5400000');
     $objWriter->writeAttribute('rotWithShape', '0');
     // a:srgbClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '000000');
     // a:alpha
     $objWriter->startElement('a:alpha');
     $objWriter->writeAttribute('val', '35000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:scene3d
     $objWriter->startElement('a:scene3d');
     // a:camera
     $objWriter->startElement('a:camera');
     $objWriter->writeAttribute('prst', 'orthographicFront');
     // a:rot
     $objWriter->startElement('a:rot');
     $objWriter->writeAttribute('lat', '0');
     $objWriter->writeAttribute('lon', '0');
     $objWriter->writeAttribute('rev', '0');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lightRig
     $objWriter->startElement('a:lightRig');
     $objWriter->writeAttribute('rig', 'threePt');
     $objWriter->writeAttribute('dir', 't');
     // a:rot
     $objWriter->startElement('a:rot');
     $objWriter->writeAttribute('lat', '0');
     $objWriter->writeAttribute('lon', '0');
     $objWriter->writeAttribute('rev', '1200000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:sp3d
     $objWriter->startElement('a:sp3d');
     // a:bevelT
     $objWriter->startElement('a:bevelT');
     $objWriter->writeAttribute('w', '63500');
     $objWriter->writeAttribute('h', '25400');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:bgFillStyleLst
     $objWriter->startElement('a:bgFillStyleLst');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gradFill
     $objWriter->startElement('a:gradFill');
     $objWriter->writeAttribute('rotWithShape', '1');
     // a:gsLst
     $objWriter->startElement('a:gsLst');
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '0');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '40000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '350000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '40000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '45000');
     $objWriter->endElement();
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '99000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '350000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '100000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '20000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '255000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:path
     $objWriter->startElement('a:path');
     $objWriter->writeAttribute('path', 'circle');
     // a:fillToRect
     $objWriter->startElement('a:fillToRect');
     $objWriter->writeAttribute('l', '50000');
     $objWriter->writeAttribute('t', '-80000');
     $objWriter->writeAttribute('r', '50000');
     $objWriter->writeAttribute('b', '180000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gradFill
     $objWriter->startElement('a:gradFill');
     $objWriter->writeAttribute('rotWithShape', '1');
     // a:gsLst
     $objWriter->startElement('a:gsLst');
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '0');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '80000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '300000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '100000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '30000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '200000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:path
     $objWriter->startElement('a:path');
     $objWriter->writeAttribute('path', 'circle');
     // a:fillToRect
     $objWriter->startElement('a:fillToRect');
     $objWriter->writeAttribute('l', '50000');
     $objWriter->writeAttribute('t', '50000');
     $objWriter->writeAttribute('r', '50000');
     $objWriter->writeAttribute('b', '50000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:objectDefaults
     $objWriter->writeElement('a:objectDefaults', null);
     // a:extraClrSchemeLst
     $objWriter->writeElement('a:extraClrSchemeLst', null);
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
예제 #8
0
 /**
  * Write string table to XML format
  *
  * @param     string[]     $pStringTable
  * @return string  XML Output
  * @throws     \PHPExcel\Writer\Exception
  */
 public function writeStringTable($pStringTable = null)
 {
     if ($pStringTable !== null) {
         // 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);
         }
         // XML header
         $objWriter->startDocument('1.0', 'UTF-8', 'yes');
         // String table
         $objWriter->startElement('sst');
         $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
         $objWriter->writeAttribute('uniqueCount', count($pStringTable));
         // Loop through string table
         foreach ($pStringTable as $textElement) {
             $objWriter->startElement('si');
             if (!$textElement instanceof \PHPExcel\RichText) {
                 $textToWrite = \PHPExcel\Shared\StringHelper::controlCharacterPHP2OOXML($textElement);
                 $objWriter->startElement('t');
                 if ($textToWrite !== trim($textToWrite)) {
                     $objWriter->writeAttribute('xml:space', 'preserve');
                 }
                 $objWriter->writeRawData($textToWrite);
                 $objWriter->endElement();
             } elseif ($textElement instanceof \PHPExcel\RichText) {
                 $this->writeRichText($objWriter, $textElement);
             }
             $objWriter->endElement();
         }
         $objWriter->endElement();
         return $objWriter->getData();
     } else {
         throw new \PHPExcel\Writer\Exception("Invalid string table array passed.");
     }
 }