Exemplo n.º 1
0
 /**
  * Write settings.xml to XML format
  *
  * @param   PHPExcel                   $pPHPExcel
  * @return  string                     XML Output
  * @throws  PHPExcel_Writer_Exception
  */
 public function write(PHPExcel $pPHPExcel = null)
 {
     if (!$pPHPExcel) {
         $pPHPExcel = $this->getParentWriter()->getPHPExcel();
     }
     $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');
     // Settings
     $objWriter->startElement('office:document-settings');
     $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
     $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
     $objWriter->writeAttribute('xmlns:config', 'urn:oasis:names:tc:opendocument:xmlns:config:1.0');
     $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
     $objWriter->writeAttribute('office:version', '1.2');
     $objWriter->startElement('office:settings');
     $objWriter->startElement('config:config-item-set');
     $objWriter->writeAttribute('config:name', 'ooo:view-settings');
     $objWriter->startElement('config:config-item-map-indexed');
     $objWriter->writeAttribute('config:name', 'Views');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->startElement('config:config-item-set');
     $objWriter->writeAttribute('config:name', 'ooo:configuration-settings');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     return $objWriter->getData();
 }
Exemplo n.º 2
0
 /**
  * Write relationships for a signed VBA Project
  *
  * @param 	PHPExcel	$pPHPExcel
  * @return 	string 		XML Output
  * @throws 	PHPExcel_Writer_Exception
  */
 public function writeVBARelationships(PHPExcel $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();
     //Relationship
     $objWriter->endElement();
     //Relationships
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 3
0
 /**
  * Write drawings to XML format
  *
  * @param 	PHPExcel_Worksheet				$pWorksheet
  * @return 	string 								XML Output
  * @throws 	Exception
  */
 public function writeDrawings(PHPExcel_Worksheet $pWorksheet = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK);
     } else {
         $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // xdr:wsDr
     $objWriter->startElement('xdr:wsDr');
     $objWriter->writeAttribute('xmlns:xdr', 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing');
     $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
     // Loop trough images and write drawings
     $i = 1;
     $iterator = $pWorksheet->getDrawingCollection()->getIterator();
     while ($iterator->valid()) {
         $this->_writeDrawing($objWriter, $iterator->current(), $i);
         $iterator->next();
         $i++;
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 4
0
 /**
 *
 
 	/**
 * Write content types to XML format
 *
 * @param 	PHPExcel $pPHPExcel
 * @return 	string 						XML Output
 * @throws 	Exception
 */
 public function writeContentTypes(PHPExcel $pPHPExcel = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK);
     } else {
         $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Types
     $objWriter->startElement('Types');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types');
     // Theme
     $this->_writeOverrideContentType($objWriter, '/xl/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml');
     // Styles
     $this->_writeOverrideContentType($objWriter, '/xl/styles.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml');
     // Rels
     $this->_writeDefaultContentType($objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml');
     // XML
     $this->_writeDefaultContentType($objWriter, 'xml', 'application/xml');
     // VML
     $this->_writeDefaultContentType($objWriter, 'vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing');
     // Workbook
     $this->_writeOverrideContentType($objWriter, '/xl/workbook.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml');
     // DocProps
     $this->_writeOverrideContentType($objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml');
     $this->_writeOverrideContentType($objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml');
     // Worksheets
     for ($i = 0; $i < $pPHPExcel->getSheetCount(); $i++) {
         $this->_writeOverrideContentType($objWriter, '/xl/worksheets/sheet' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml');
     }
     // Shared strings
     $this->_writeOverrideContentType($objWriter, '/xl/sharedStrings.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml');
     // Add worksheet relationship content types
     for ($i = 0; $i < $this->getParentWriter()->getDrawingHashTable()->count(); $i++) {
         $this->_writeOverrideContentType($objWriter, '/xl/drawings/drawing' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.drawing+xml');
     }
     // Comments
     for ($i = 0; $i < $pPHPExcel->getSheetCount(); $i++) {
         if (count($pPHPExcel->getSheet()->getComments()) > 0) {
             $this->_writeOverrideContentType($objWriter, '/xl/comments' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml');
         }
     }
     // Add media content-types
     $aMediaContentTypes = array();
     for ($i = 0; $i < $this->getParentWriter()->getDrawingHashTable()->count(); $i++) {
         if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_Drawing) {
             if (!isset($aMediaContentTypes[strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension())])) {
                 $aMediaContentTypes[strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension())] = $this->_getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
                 $this->_writeDefaultContentType($objWriter, strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension()), $aMediaContentTypes[strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension())]);
             }
         }
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 5
0
 /**
  * Write styles.xml to XML format
  *
  * @param PHPExcel $pPHPExcel            
  * @return string XML Output
  * @throws PHPExcel_Writer_Exception
  */
 public function write(PHPExcel $pPHPExcel = null)
 {
     if (! $pPHPExcel) {
         $pPHPExcel = $this->getParentWriter()->getPHPExcel();
     }
     
     $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');
     
     // Content
     $objWriter->startElement('office:document-styles');
     $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
     $objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
     $objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
     $objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
     $objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
     $objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
     $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
     $objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
     $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0');
     $objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
     $objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
     $objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
     $objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
     $objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
     $objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
     $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
     $objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
     $objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
     $objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
     $objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
     $objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
     $objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml');
     $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
     $objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table');
     $objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/');
     $objWriter->writeAttribute('office:version', '1.2');
     
     $objWriter->writeElement('office:font-face-decls');
     $objWriter->writeElement('office:styles');
     $objWriter->writeElement('office:automatic-styles');
     $objWriter->writeElement('office:master-styles');
     $objWriter->endElement();
     
     return $objWriter->getData();
 }
Exemplo n.º 6
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();
 }
Exemplo n.º 7
0
 /**
  * Write META-INF/manifest.xml to XML format
  *
  * @param PHPExcel $pPHPExcel            
  * @return string XML Output
  * @throws PHPExcel_Writer_Exception
  */
 public function writeManifest(PHPExcel $pPHPExcel = null)
 {
     if (! $pPHPExcel) {
         $pPHPExcel = $this->getParentWriter()->getPHPExcel();
     }
     
     $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');
     
     // Manifest
     $objWriter->startElement('manifest:manifest');
     $objWriter->writeAttribute('xmlns:manifest', 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0');
     $objWriter->writeAttribute('manifest:version', '1.2');
     
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:full-path', '/');
     $objWriter->writeAttribute('manifest:version', '1.2');
     $objWriter->writeAttribute('manifest:media-type', 'application/vnd.oasis.opendocument.spreadsheet');
     $objWriter->endElement();
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:full-path', 'meta.xml');
     $objWriter->writeAttribute('manifest:media-type', 'text/xml');
     $objWriter->endElement();
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:full-path', 'settings.xml');
     $objWriter->writeAttribute('manifest:media-type', 'text/xml');
     $objWriter->endElement();
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:full-path', 'content.xml');
     $objWriter->writeAttribute('manifest:media-type', 'text/xml');
     $objWriter->endElement();
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:full-path', 'Thumbnails/thumbnail.png');
     $objWriter->writeAttribute('manifest:media-type', 'image/png');
     $objWriter->endElement();
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:full-path', 'styles.xml');
     $objWriter->writeAttribute('manifest:media-type', 'text/xml');
     $objWriter->endElement();
     $objWriter->endElement();
     
     return $objWriter->getData();
 }
Exemplo n.º 8
0
	/**
	 * Write workbook to XML format
	 *
	 * @param 	PHPExcel	$pPHPExcel
	 * @return 	string 		XML Output
	 * @throws 	Exception
	 */
	public function writeWorkbook(PHPExcel $pPHPExcel = null)
	{
		// Create XML writer
		$objWriter = null;
		if ($this->getParentWriter()->getUseDiskCaching()) {
			$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK);
		} else {
			$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
		}

		// XML header
		$objWriter->startDocument('1.0','UTF-8','yes');

		// workbook
		$objWriter->startElement('workbook');
		$objWriter->writeAttribute('xml:space', 'preserve');
		$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
		$objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');

			// fileVersion
			$this->_writeFileVersion($objWriter);

			// workbookPr
			$this->_writeWorkbookPr($objWriter);

			// workbookProtection
			$this->_writeWorkbookProtection($objWriter, $pPHPExcel);

			// bookViews
			if ($this->getParentWriter()->getOffice2003Compatibility() === false) {
				$this->_writeBookViews($objWriter, $pPHPExcel);
			}

			// sheets
			$this->_writeSheets($objWriter, $pPHPExcel);

			// definedNames
			$this->_writeDefinedNames($objWriter, $pPHPExcel);

			// calcPr
			$this->_writeCalcPr($objWriter);

		$objWriter->endElement();

		// Return
		return $objWriter->getData();
	}
Exemplo n.º 9
0
 /**
  * Write meta.xml to XML format
  *
  * @param   PHPExcel                   $pPHPExcel
  * @return  string                     XML Output
  * @throws  PHPExcel_Writer_Exception
  */
 public function write(PHPExcel $pPHPExcel = null)
 {
     if (!$pPHPExcel) {
         $pPHPExcel = $this->getParentWriter()->getPHPExcel();
     }
     $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');
     // Meta
     $objWriter->startElement('office:document-meta');
     $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
     $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
     $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
     $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
     $objWriter->writeAttribute('office:version', '1.2');
     $objWriter->startElement('office:meta');
     $objWriter->writeElement('meta:initial-creator', $pPHPExcel->getProperties()->getCreator());
     $objWriter->writeElement('dc:creator', $pPHPExcel->getProperties()->getCreator());
     $objWriter->writeElement('meta:creation-date', date(DATE_W3C, $pPHPExcel->getProperties()->getCreated()));
     $objWriter->writeElement('dc:date', date(DATE_W3C, $pPHPExcel->getProperties()->getCreated()));
     $objWriter->writeElement('dc:title', $pPHPExcel->getProperties()->getTitle());
     $objWriter->writeElement('dc:description', $pPHPExcel->getProperties()->getDescription());
     $objWriter->writeElement('dc:subject', $pPHPExcel->getProperties()->getSubject());
     $keywords = explode(' ', $pPHPExcel->getProperties()->getKeywords());
     foreach ($keywords as $keyword) {
         $objWriter->writeElement('meta:keyword', $keyword);
     }
     //<meta:document-statistic meta:table-count="XXX" meta:cell-count="XXX" meta:object-count="XXX"/>
     $objWriter->startElement('meta:user-defined');
     $objWriter->writeAttribute('meta:name', 'Company');
     $objWriter->writeRaw($pPHPExcel->getProperties()->getCompany());
     $objWriter->endElement();
     $objWriter->startElement('meta:user-defined');
     $objWriter->writeAttribute('meta:name', 'category');
     $objWriter->writeRaw($pPHPExcel->getProperties()->getCategory());
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     return $objWriter->getData();
 }
Exemplo n.º 10
0
 /**
  * Write header/footer drawing relationships to XML format
  *
  * @param 	PHPExcel_Worksheet			$pWorksheet
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeHeaderFooterDrawingRelationships(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');
     // Relationships
     $objWriter->startElement('Relationships');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
     // Loop trough images and write relationships
     foreach ($pWorksheet->getHeaderFooter()->getImages() as $key => $value) {
         // Write relationship for image drawing
         $this->_writeRelationship($objWriter, $key, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', '../media/' . $value->getIndexedFilename());
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 11
0
 /**
  * Write VML comments to XML format
  *
  * @param 	PHPExcel_Worksheet				$pWorksheet
  * @return 	string 								XML Output
  * @throws 	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();
 }
Exemplo n.º 12
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();
 }
Exemplo n.º 13
0
 /**
  * Write content types to XML format
  *
  * @param    PHPExcel $pPHPExcel
  * @param    boolean $includeCharts Flag indicating if we should include drawing details for charts
  * @return    string                        XML Output
  * @throws    PHPExcel_Writer_Exception
  */
 public function writeContentTypes(PHPExcel $pPHPExcel = null, $includeCharts = FALSE)
 {
     // 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');
     // Types
     $objWriter->startElement('Types');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types');
     // Theme
     $this->_writeOverrideContentType($objWriter, '/xl/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml');
     // Styles
     $this->_writeOverrideContentType($objWriter, '/xl/styles.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml');
     // Rels
     $this->_writeDefaultContentType($objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml');
     // XML
     $this->_writeDefaultContentType($objWriter, 'xml', 'application/xml');
     // VML
     $this->_writeDefaultContentType($objWriter, 'vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing');
     // Workbook
     if ($pPHPExcel->hasMacros()) {
         //Macros in workbook ?
         // Yes : not standard content but "macroEnabled"
         $this->_writeOverrideContentType($objWriter, '/xl/workbook.xml', 'application/vnd.ms-excel.sheet.macroEnabled.main+xml');
         //... and define a new type for the VBA project
         $this->_writeDefaultContentType($objWriter, 'bin', 'application/vnd.ms-office.vbaProject');
         if ($pPHPExcel->hasMacrosCertificate()) {
             // signed macros ?
             // Yes : add needed information
             $this->_writeOverrideContentType($objWriter, '/xl/vbaProjectSignature.bin', 'application/vnd.ms-office.vbaProjectSignature');
         }
     } else {
         // no macros in workbook, so standard type
         $this->_writeOverrideContentType($objWriter, '/xl/workbook.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml');
     }
     // DocProps
     $this->_writeOverrideContentType($objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml');
     $this->_writeOverrideContentType($objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml');
     $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties();
     if (!empty($customPropertyList)) {
         $this->_writeOverrideContentType($objWriter, '/docProps/custom.xml', 'application/vnd.openxmlformats-officedocument.custom-properties+xml');
     }
     // Worksheets
     $sheetCount = $pPHPExcel->getSheetCount();
     for ($i = 0; $i < $sheetCount; ++$i) {
         $this->_writeOverrideContentType($objWriter, '/xl/worksheets/sheet' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml');
     }
     // Shared strings
     $this->_writeOverrideContentType($objWriter, '/xl/sharedStrings.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml');
     // Add worksheet relationship content types
     $chart = 1;
     for ($i = 0; $i < $sheetCount; ++$i) {
         $drawings = $pPHPExcel->getSheet($i)->getDrawingCollection();
         $drawingCount = count($drawings);
         $chartCount = $includeCharts ? $pPHPExcel->getSheet($i)->getChartCount() : 0;
         //	We need a drawing relationship for the worksheet if we have either drawings or charts
         if ($drawingCount > 0 || $chartCount > 0) {
             $this->_writeOverrideContentType($objWriter, '/xl/drawings/drawing' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.drawing+xml');
         }
         //	If we have charts, then we need a chart relationship for every individual chart
         if ($chartCount > 0) {
             for ($c = 0; $c < $chartCount; ++$c) {
                 $this->_writeOverrideContentType($objWriter, '/xl/charts/chart' . $chart++ . '.xml', 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml');
             }
         }
     }
     // Comments
     for ($i = 0; $i < $sheetCount; ++$i) {
         if (count($pPHPExcel->getSheet($i)->getComments()) > 0) {
             $this->_writeOverrideContentType($objWriter, '/xl/comments' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml');
         }
     }
     // Add media content-types
     $aMediaContentTypes = array();
     $mediaCount = $this->getParentWriter()->getDrawingHashTable()->count();
     for ($i = 0; $i < $mediaCount; ++$i) {
         $extension = '';
         $mimeType = '';
         if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_Drawing) {
             $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
             $mimeType = $this->_getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
         } else {
             if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_MemoryDrawing) {
                 $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType());
                 $extension = explode('/', $extension);
                 $extension = $extension[1];
                 $mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType();
             }
         }
         if (!isset($aMediaContentTypes[$extension])) {
             $aMediaContentTypes[$extension] = $mimeType;
             $this->_writeDefaultContentType($objWriter, $extension, $mimeType);
         }
     }
     if ($pPHPExcel->hasRibbonBinObjects()) {
         //Some additional objects in the ribbon ?
         //we need to write "Extension" but not already write for media content
         $tabRibbonTypes = array_diff($pPHPExcel->getRibbonBinObjects('types'), array_keys($aMediaContentTypes));
         foreach ($tabRibbonTypes as $aRibbonType) {
             $mimeType = 'image/.' . $aRibbonType;
             //we wrote $mimeType like customUI Editor
             $this->_writeDefaultContentType($objWriter, $aRibbonType, $mimeType);
         }
     }
     $sheetCount = $pPHPExcel->getSheetCount();
     for ($i = 0; $i < $sheetCount; ++$i) {
         if (count($pPHPExcel->getSheet()->getHeaderFooter()->getImages()) > 0) {
             foreach ($pPHPExcel->getSheet()->getHeaderFooter()->getImages() as $image) {
                 if (!isset($aMediaContentTypes[strtolower($image->getExtension())])) {
                     $aMediaContentTypes[strtolower($image->getExtension())] = $this->_getImageMimeType($image->getPath());
                     $this->_writeDefaultContentType($objWriter, strtolower($image->getExtension()), $aMediaContentTypes[strtolower($image->getExtension())]);
                 }
             }
         }
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 14
0
 /**
  * Write docProps/custom.xml to XML format
  *
  * @param    PHPExcel $pPHPExcel
  *
  * @return    string        XML Output
  * @throws    PHPExcel_Writer_Exception
  */
 public function writeDocPropsCustom(PHPExcel $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
     return $objWriter->getData();
 }
Exemplo n.º 15
0
 /**
  * Write content types to XML format
  *
  * @param 	PHPExcel	$pPHPExcel
  * @param	boolean		$includeCharts	Flag indicating if we should include drawing details for charts
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeContentTypes(PHPExcel $pPHPExcel = null, $includeCharts = FALSE)
 {
     // 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');
     // Types
     $objWriter->startElement('Types');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types');
     // Theme
     $this->_writeOverrideContentType($objWriter, '/xl/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml');
     // Styles
     $this->_writeOverrideContentType($objWriter, '/xl/styles.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml');
     // Rels
     $this->_writeDefaultContentType($objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml');
     // XML
     $this->_writeDefaultContentType($objWriter, 'xml', 'application/xml');
     // VML
     $this->_writeDefaultContentType($objWriter, 'vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing');
     // Workbook
     $this->_writeOverrideContentType($objWriter, '/xl/workbook.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml');
     // DocProps
     $this->_writeOverrideContentType($objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml');
     $this->_writeOverrideContentType($objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml');
     $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties();
     if (!empty($customPropertyList)) {
         $this->_writeOverrideContentType($objWriter, '/docProps/custom.xml', 'application/vnd.openxmlformats-officedocument.custom-properties+xml');
     }
     // Worksheets
     $sheetCount = $pPHPExcel->getSheetCount();
     for ($i = 0; $i < $sheetCount; ++$i) {
         $this->_writeOverrideContentType($objWriter, '/xl/worksheets/sheet' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml');
     }
     // Shared strings
     $this->_writeOverrideContentType($objWriter, '/xl/sharedStrings.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml');
     // Add worksheet relationship content types
     $chart = 1;
     for ($i = 0; $i < $sheetCount; ++$i) {
         $drawings = $pPHPExcel->getSheet($i)->getDrawingCollection();
         $drawingCount = count($drawings);
         $chartCount = $includeCharts ? $pPHPExcel->getSheet($i)->getChartCount() : 0;
         //	We need a drawing relationship for the worksheet if we have either drawings or charts
         if ($drawingCount > 0 || $chartCount > 0) {
             $this->_writeOverrideContentType($objWriter, '/xl/drawings/drawing' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.drawing+xml');
         }
         //	If we have charts, then we need a chart relationship for every individual chart
         if ($chartCount > 0) {
             for ($c = 0; $c < $chartCount; ++$c) {
                 $this->_writeOverrideContentType($objWriter, '/xl/charts/chart' . $chart++ . '.xml', 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml');
             }
         }
     }
     // Comments
     for ($i = 0; $i < $sheetCount; ++$i) {
         if (count($pPHPExcel->getSheet($i)->getComments()) > 0) {
             $this->_writeOverrideContentType($objWriter, '/xl/comments' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml');
         }
     }
     // Add media content-types
     $aMediaContentTypes = array();
     $mediaCount = $this->getParentWriter()->getDrawingHashTable()->count();
     for ($i = 0; $i < $mediaCount; ++$i) {
         $extension = '';
         $mimeType = '';
         if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_Drawing) {
             $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
             $mimeType = $this->_getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
         } else {
             if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPExcel_Worksheet_MemoryDrawing) {
                 $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType());
                 $extension = explode('/', $extension);
                 $extension = $extension[1];
                 $mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType();
             }
         }
         if (!isset($aMediaContentTypes[$extension])) {
             $aMediaContentTypes[$extension] = $mimeType;
             $this->_writeDefaultContentType($objWriter, $extension, $mimeType);
         }
     }
     $sheetCount = $pPHPExcel->getSheetCount();
     for ($i = 0; $i < $sheetCount; ++$i) {
         if (count($pPHPExcel->getSheet()->getHeaderFooter()->getImages()) > 0) {
             foreach ($pPHPExcel->getSheet()->getHeaderFooter()->getImages() as $image) {
                 if (!isset($aMediaContentTypes[strtolower($image->getExtension())])) {
                     $aMediaContentTypes[strtolower($image->getExtension())] = $this->_getImageMimeType($image->getPath());
                     $this->_writeDefaultContentType($objWriter, strtolower($image->getExtension()), $aMediaContentTypes[strtolower($image->getExtension())]);
                 }
             }
         }
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 16
0
 /**
  * Write string table to XML format
  *
  * @param 	string[] 	$pStringTable
  * @return 	string 		XML Output
  * @throws 	Exception
  */
 public function writeStringTable($pStringTable = null)
 {
     if (!is_null($pStringTable)) {
         // Create XML writer
         $objWriter = null;
         if ($this->getParentWriter()->getUseDiskCaching()) {
             $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK);
         } 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 trough string table
         foreach ($pStringTable as $textElement) {
             $objWriter->startElement('si');
             if (!$textElement instanceof PHPExcel_RichText) {
                 $objWriter->writeElement('t', PHPExcel_Shared_String::ControlCharacterPHP2OOXML($textElement));
             } else {
                 if ($textElement instanceof PHPExcel_RichText) {
                     $this->writeRichText($objWriter, $textElement);
                 }
             }
             $objWriter->endElement();
         }
         $objWriter->endElement();
         // Return
         return $objWriter->getData();
     } else {
         throw new Exception("Invalid string table array passed.");
     }
 }
Exemplo n.º 17
0
 /**
  * Write drawing relationships to XML format
  *
  * @param 	PHPExcel_Worksheet			$pWorksheet
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeDrawingRelationships(PHPExcel_Worksheet $pWorksheet = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK);
     } 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');
     // Loop trough images and write relationships
     $i = 1;
     $iterator = $pWorksheet->getDrawingCollection()->getIterator();
     while ($iterator->valid()) {
         if ($iterator->current() instanceof PHPExcel_Worksheet_Drawing) {
             // Write relationship for image drawing
             $this->_writeRelationship($objWriter, $i, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', '../media/' . $iterator->current()->getFilename());
         }
         $iterator->next();
         $i++;
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 18
0
 /**
  * Write theme to XML format
  *
  * @param 	PHPExcel	$pPHPExcel
  * @return 	string 		XML Output
  * @throws 	Exception
  */
 public function writeTheme(PHPExcel $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
     $objWriter->startElement('a:dk2');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '1F497D');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lt2
     $objWriter->startElement('a:lt2');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', 'EEECE1');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent1
     $objWriter->startElement('a:accent1');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '4F81BD');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent2
     $objWriter->startElement('a:accent2');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', 'C0504D');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent3
     $objWriter->startElement('a:accent3');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '9BBB59');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent4
     $objWriter->startElement('a:accent4');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '8064A2');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent5
     $objWriter->startElement('a:accent5');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '4BACC6');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent6
     $objWriter->startElement('a:accent6');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', 'F79646');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:hlink
     $objWriter->startElement('a:hlink');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '0000FF');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:folHlink
     $objWriter->startElement('a:folHlink');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '800080');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:fontScheme
     $objWriter->startElement('a:fontScheme');
     $objWriter->writeAttribute('name', 'Office');
     // a:majorFont
     $objWriter->startElement('a:majorFont');
     // a:latin
     $objWriter->startElement('a:latin');
     $objWriter->writeAttribute('typeface', 'Cambria');
     $objWriter->endElement();
     // a:ea
     $objWriter->startElement('a:ea');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:cs
     $objWriter->startElement('a:cs');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Jpan');
     $objWriter->writeAttribute('typeface', '?? ?????');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hang');
     $objWriter->writeAttribute('typeface', '?? ??');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hans');
     $objWriter->writeAttribute('typeface', '??');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hant');
     $objWriter->writeAttribute('typeface', '????');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Arab');
     $objWriter->writeAttribute('typeface', 'Times New Roman');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hebr');
     $objWriter->writeAttribute('typeface', 'Times New Roman');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Thai');
     $objWriter->writeAttribute('typeface', 'Tahoma');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Ethi');
     $objWriter->writeAttribute('typeface', 'Nyala');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Beng');
     $objWriter->writeAttribute('typeface', 'Vrinda');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Gujr');
     $objWriter->writeAttribute('typeface', 'Shruti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Khmr');
     $objWriter->writeAttribute('typeface', 'MoolBoran');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Knda');
     $objWriter->writeAttribute('typeface', 'Tunga');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Guru');
     $objWriter->writeAttribute('typeface', 'Raavi');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Cans');
     $objWriter->writeAttribute('typeface', 'Euphemia');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Cher');
     $objWriter->writeAttribute('typeface', 'Plantagenet Cherokee');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Yiii');
     $objWriter->writeAttribute('typeface', 'Microsoft Yi Baiti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Tibt');
     $objWriter->writeAttribute('typeface', 'Microsoft Himalaya');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Thaa');
     $objWriter->writeAttribute('typeface', 'MV Boli');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Deva');
     $objWriter->writeAttribute('typeface', 'Mangal');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Telu');
     $objWriter->writeAttribute('typeface', 'Gautami');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Taml');
     $objWriter->writeAttribute('typeface', 'Latha');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Syrc');
     $objWriter->writeAttribute('typeface', 'Estrangelo Edessa');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Orya');
     $objWriter->writeAttribute('typeface', 'Kalinga');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Mlym');
     $objWriter->writeAttribute('typeface', 'Kartika');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Laoo');
     $objWriter->writeAttribute('typeface', 'DokChampa');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Sinh');
     $objWriter->writeAttribute('typeface', 'Iskoola Pota');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Mong');
     $objWriter->writeAttribute('typeface', 'Mongolian Baiti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Viet');
     $objWriter->writeAttribute('typeface', 'Times New Roman');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Uigh');
     $objWriter->writeAttribute('typeface', 'Microsoft Uighur');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:minorFont
     $objWriter->startElement('a:minorFont');
     // a:latin
     $objWriter->startElement('a:latin');
     $objWriter->writeAttribute('typeface', 'Calibri');
     $objWriter->endElement();
     // a:ea
     $objWriter->startElement('a:ea');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:cs
     $objWriter->startElement('a:cs');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Jpan');
     $objWriter->writeAttribute('typeface', '?? ?????');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hang');
     $objWriter->writeAttribute('typeface', '?? ??');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hans');
     $objWriter->writeAttribute('typeface', '??');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hant');
     $objWriter->writeAttribute('typeface', '????');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Arab');
     $objWriter->writeAttribute('typeface', 'Arial');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hebr');
     $objWriter->writeAttribute('typeface', 'Arial');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Thai');
     $objWriter->writeAttribute('typeface', 'Tahoma');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Ethi');
     $objWriter->writeAttribute('typeface', 'Nyala');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Beng');
     $objWriter->writeAttribute('typeface', 'Vrinda');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Gujr');
     $objWriter->writeAttribute('typeface', 'Shruti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Khmr');
     $objWriter->writeAttribute('typeface', 'DaunPenh');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Knda');
     $objWriter->writeAttribute('typeface', 'Tunga');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Guru');
     $objWriter->writeAttribute('typeface', 'Raavi');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Cans');
     $objWriter->writeAttribute('typeface', 'Euphemia');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Cher');
     $objWriter->writeAttribute('typeface', 'Plantagenet Cherokee');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Yiii');
     $objWriter->writeAttribute('typeface', 'Microsoft Yi Baiti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Tibt');
     $objWriter->writeAttribute('typeface', 'Microsoft Himalaya');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Thaa');
     $objWriter->writeAttribute('typeface', 'MV Boli');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Deva');
     $objWriter->writeAttribute('typeface', 'Mangal');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Telu');
     $objWriter->writeAttribute('typeface', 'Gautami');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Taml');
     $objWriter->writeAttribute('typeface', 'Latha');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Syrc');
     $objWriter->writeAttribute('typeface', 'Estrangelo Edessa');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Orya');
     $objWriter->writeAttribute('typeface', 'Kalinga');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Mlym');
     $objWriter->writeAttribute('typeface', 'Kartika');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Laoo');
     $objWriter->writeAttribute('typeface', 'DokChampa');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Sinh');
     $objWriter->writeAttribute('typeface', 'Iskoola Pota');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Mong');
     $objWriter->writeAttribute('typeface', 'Mongolian Baiti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Viet');
     $objWriter->writeAttribute('typeface', 'Arial');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Uigh');
     $objWriter->writeAttribute('typeface', 'Microsoft Uighur');
     $objWriter->endElement();
     $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();
 }
Exemplo n.º 19
0
 /**
  * Write theme to XML format
  *
  * @param PHPExcel $pPHPExcel            
  * @return string XML Output
  * @throws PHPExcel_Writer_Exception
  */
 public function writeTheme(PHPExcel $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();
 }
Exemplo n.º 20
0
 /**
  * Write docProps/core.xml to XML format
  *
  * @param 	PHPExcel	$pPHPExcel
  * @return 	string 		XML Output
  * @throws 	Exception
  */
 public function writeDocPropsCore(PHPExcel $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');
     // cp:coreProperties
     $objWriter->startElement('cp:coreProperties');
     $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
     $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
     $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
     // dc:creator
     $objWriter->writeElement('dc:creator', $pPHPExcel->getProperties()->getCreator());
     // cp:lastModifiedBy
     $objWriter->writeElement('cp:lastModifiedBy', $pPHPExcel->getProperties()->getLastModifiedBy());
     // dcterms:created
     $objWriter->startElement('dcterms:created');
     $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
     $objWriter->writeRaw(date(DATE_W3C, $pPHPExcel->getProperties()->getCreated()));
     $objWriter->endElement();
     // dcterms:modified
     $objWriter->startElement('dcterms:modified');
     $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
     $objWriter->writeRaw(date(DATE_W3C, $pPHPExcel->getProperties()->getModified()));
     $objWriter->endElement();
     // dc:title
     $objWriter->writeElement('dc:title', $pPHPExcel->getProperties()->getTitle());
     // dc:description
     $objWriter->writeElement('dc:description', $pPHPExcel->getProperties()->getDescription());
     // dc:subject
     $objWriter->writeElement('dc:subject', $pPHPExcel->getProperties()->getSubject());
     // cp:keywords
     $objWriter->writeElement('cp:keywords', $pPHPExcel->getProperties()->getKeywords());
     // cp:category
     $objWriter->writeElement('cp:category', $pPHPExcel->getProperties()->getCategory());
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 21
0
 /**
  * Write styles to XML format
  *
  * @param 	PHPExcel	$pPHPExcel
  * @return 	string 		XML Output
  * @throws 	Exception
  */
 public function writeStyles(PHPExcel $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');
     // styleSheet
     $objWriter->startElement('styleSheet');
     $objWriter->writeAttribute('xml:space', 'preserve');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
     // numFmts
     $objWriter->startElement('numFmts');
     $objWriter->writeAttribute('count', $this->getParentWriter()->getNumFmtHashTable()->count());
     // numFmt
     for ($i = 0; $i < $this->getParentWriter()->getNumFmtHashTable()->count(); ++$i) {
         $this->_writeNumFmt($objWriter, $this->getParentWriter()->getNumFmtHashTable()->getByIndex($i), $i);
     }
     $objWriter->endElement();
     // fonts
     $objWriter->startElement('fonts');
     $objWriter->writeAttribute('count', $this->getParentWriter()->getFontHashTable()->count());
     // font
     for ($i = 0; $i < $this->getParentWriter()->getFontHashTable()->count(); ++$i) {
         $this->_writeFont($objWriter, $this->getParentWriter()->getFontHashTable()->getByIndex($i));
     }
     $objWriter->endElement();
     // fills
     $objWriter->startElement('fills');
     $objWriter->writeAttribute('count', $this->getParentWriter()->getFillHashTable()->count());
     // fill
     for ($i = 0; $i < $this->getParentWriter()->getFillHashTable()->count(); ++$i) {
         $this->_writeFill($objWriter, $this->getParentWriter()->getFillHashTable()->getByIndex($i));
     }
     $objWriter->endElement();
     // borders
     $objWriter->startElement('borders');
     $objWriter->writeAttribute('count', $this->getParentWriter()->getBordersHashTable()->count());
     // border
     for ($i = 0; $i < $this->getParentWriter()->getBordersHashTable()->count(); ++$i) {
         $this->_writeBorder($objWriter, $this->getParentWriter()->getBordersHashTable()->getByIndex($i));
     }
     $objWriter->endElement();
     // cellStyleXfs
     $objWriter->startElement('cellStyleXfs');
     $objWriter->writeAttribute('count', 1);
     // xf
     $objWriter->startElement('xf');
     $objWriter->writeAttribute('numFmtId', 0);
     $objWriter->writeAttribute('fontId', 0);
     $objWriter->writeAttribute('fillId', 0);
     $objWriter->writeAttribute('borderId', 0);
     $objWriter->endElement();
     $objWriter->endElement();
     // cellXfs
     $objWriter->startElement('cellXfs');
     $objWriter->writeAttribute('count', count($pPHPExcel->getCellXfCollection()));
     // xf
     foreach ($pPHPExcel->getCellXfCollection() as $cellXf) {
         $this->_writeCellStyleXf($objWriter, $cellXf, $pPHPExcel);
     }
     $objWriter->endElement();
     // cellStyles
     $objWriter->startElement('cellStyles');
     $objWriter->writeAttribute('count', 1);
     // cellStyle
     $objWriter->startElement('cellStyle');
     $objWriter->writeAttribute('name', 'Normal');
     $objWriter->writeAttribute('xfId', 0);
     $objWriter->writeAttribute('builtinId', 0);
     $objWriter->endElement();
     $objWriter->endElement();
     // dxfs
     $objWriter->startElement('dxfs');
     $objWriter->writeAttribute('count', $this->getParentWriter()->getStylesConditionalHashTable()->count());
     // dxf
     for ($i = 0; $i < $this->getParentWriter()->getStylesConditionalHashTable()->count(); ++$i) {
         $this->_writeCellStyleDxf($objWriter, $this->getParentWriter()->getStylesConditionalHashTable()->getByIndex($i)->getStyle());
     }
     $objWriter->endElement();
     // tableStyles
     $objWriter->startElement('tableStyles');
     $objWriter->writeAttribute('defaultTableStyle', 'TableStyleMedium9');
     $objWriter->writeAttribute('defaultPivotStyle', 'PivotTableStyle1');
     $objWriter->endElement();
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemplo n.º 22
0
 /**
  * Write worksheet to XML format
  *
  * @param	PHPExcel_Worksheet		$pSheet
  * @param	string[]				$pStringTable
  * @return	string					XML Output
  * @throws	Exception
  */
 public function writeWorksheet($pSheet = null, $pStringTable = null)
 {
     if (!is_null($pSheet)) {
         // 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');
         // Worksheet
         $objWriter->startElement('worksheet');
         $objWriter->writeAttribute('xml:space', 'preserve');
         $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
         $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
         // sheetPr
         $this->_writeSheetPr($objWriter, $pSheet);
         // Dimension
         $this->_writeDimension($objWriter, $pSheet);
         // sheetViews
         $this->_writeSheetViews($objWriter, $pSheet);
         // sheetFormatPr
         $this->_writeSheetFormatPr($objWriter, $pSheet);
         // cols
         $this->_writeCols($objWriter, $pSheet);
         // sheetData
         $this->_writeSheetData($objWriter, $pSheet, $pStringTable);
         // sheetProtection
         $this->_writeSheetProtection($objWriter, $pSheet);
         // protectedRanges
         $this->_writeProtectedRanges($objWriter, $pSheet);
         // autoFilter
         $this->_writeAutoFilter($objWriter, $pSheet);
         // mergeCells
         $this->_writeMergeCells($objWriter, $pSheet);
         // conditionalFormatting
         $this->_writeConditionalFormatting($objWriter, $pSheet);
         // dataValidations
         $this->_writeDataValidations($objWriter, $pSheet);
         // hyperlinks
         $this->_writeHyperlinks($objWriter, $pSheet);
         // Print options
         $this->_writePrintOptions($objWriter, $pSheet);
         // Page margins
         $this->_writePageMargins($objWriter, $pSheet);
         // Page setup
         $this->_writePageSetup($objWriter, $pSheet);
         // Header / footer
         $this->_writeHeaderFooter($objWriter, $pSheet);
         // Breaks
         $this->_writeBreaks($objWriter, $pSheet);
         // Drawings
         $this->_writeDrawings($objWriter, $pSheet);
         // LegacyDrawing
         $this->_writeLegacyDrawing($objWriter, $pSheet);
         // LegacyDrawingHF
         $this->_writeLegacyDrawingHF($objWriter, $pSheet);
         $objWriter->endElement();
         // Return
         return $objWriter->getData();
     } else {
         throw new Exception("Invalid PHPExcel_Worksheet object passed.");
     }
 }
Exemplo n.º 23
-1
 /**
  * Write relationships for additional objects of custom UI (ribbon)
  *
  * @param 	PHPExcel	$pPHPExcel
  * @return 	string 		XML Output
  * @throws 	PHPExcel_Writer_Exception
  */
 public function writeRibbonRelationships(PHPExcel $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();
             //Relationship
         }
     }
     $objWriter->endElement();
     //Relationships
     // Return
     return $objWriter->getData();
 }