Example #1
0
 public static function write(PHPExcel_Shared_XMLWriter $objWriter, PHPExcel_Cell $cell)
 {
     $comments = $cell->getWorksheet()->getComments();
     if (! isset($comments[$cell->getCoordinate()])) {
         return;
     }
     $comment = $comments[$cell->getCoordinate()];
     
     $objWriter->startElement('office:annotation');
     // $objWriter->writeAttribute('draw:style-name', 'gr1');
     // $objWriter->writeAttribute('draw:text-style-name', 'P1');
     $objWriter->writeAttribute('svg:width', $comment->getWidth());
     $objWriter->writeAttribute('svg:height', $comment->getHeight());
     $objWriter->writeAttribute('svg:x', $comment->getMarginLeft());
     $objWriter->writeAttribute('svg:y', $comment->getMarginTop());
     // $objWriter->writeAttribute('draw:caption-point-x', $comment->getMarginLeft());
     // $objWriter->writeAttribute('draw:caption-point-y', $comment->getMarginTop());
     $objWriter->writeElement('dc:creator', $comment->getAuthor());
     // TODO: Not realized in PHPExcel_Comment yet.
     // $objWriter->writeElement('dc:date', $comment->getDate());
     $objWriter->writeElement('text:p', $comment->getText()
         ->getPlainText());
     // $objWriter->writeAttribute('draw:text-style-name', 'P1');
     $objWriter->endElement();
 }
Example #2
0
 /**
  * Write Defined Name for PrintTitles
  *
  * @param 	PHPExcel_Shared_XMLWriter	$objWriter 		XML Writer
  * @param 	PHPExcel_Worksheet			$pSheet
  * @param 	int							$pSheetId
  * @throws 	Exception
  */
 private function _writeDefinedNameForPrintTitles(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0)
 {
     // definedName for PrintTitles
     if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet() || $pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) {
         $objWriter->startElement('definedName');
         $objWriter->writeAttribute('name', '_xlnm.Print_Titles');
         $objWriter->writeAttribute('localSheetId', $pSheetId);
         // Setting string
         $settingString = '';
         // Columns to repeat
         if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet()) {
             $repeat = $pSheet->getPageSetup()->getColumnsToRepeatAtLeft();
             $settingString = $pSheet->getTitle() . '!$' . $repeat[0] . ':$' . $repeat[1];
         }
         // Rows to repeat
         if ($pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) {
             if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet()) {
                 $settingString .= ',';
             }
             $repeat = $pSheet->getPageSetup()->getRowsToRepeatAtTop();
             $settingString = $pSheet->getTitle() . '!$' . $repeat[0] . ':$' . $repeat[1];
         }
         $objWriter->writeRaw($settingString);
         $objWriter->endElement();
     }
 }
Example #3
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();
 }
Example #4
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();
 }
Example #5
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();
 }
Example #6
0
 /**
  * Write span
  *
  * @param PHPExcel_Shared_XMLWriter $objWriter
  * @param integer $curColumn
  * @param integer $prevColumn
  */
 private function _writeCellSpan(PHPExcel_Shared_XMLWriter $objWriter, $curColumn, $prevColumn)
 {
     $diff = $curColumn - $prevColumn - 1;
     if (1 === $diff) {
         $objWriter->writeElement('table:table-cell');
     } elseif ($diff > 1) {
         $objWriter->startElement('table:table-cell');
         $objWriter->writeAttribute('table:number-columns-repeated', $diff);
         $objWriter->endElement();
     }
 }
Example #7
0
 /**
  * Write calcPr
  *
  * @param    PHPExcel_Shared_XMLWriter $objWriter      XML Writer
  * @param    boolean                   $recalcRequired Indicate whether formulas should be recalculated before writing
  *
  * @throws    PHPExcel_Writer_Exception
  */
 private function _writeCalcPr(PHPExcel_Shared_XMLWriter $objWriter = null, $recalcRequired = true)
 {
     $objWriter->startElement('calcPr');
     //	Set the calcid to a higher value than Excel itself will use, otherwise Excel will always recalc
     //  If MS Excel does do a recalc, then users opening a file in MS Excel will be prompted to save on exit
     //     because the file has changed
     $objWriter->writeAttribute('calcId', '999999');
     $objWriter->writeAttribute('calcMode', 'auto');
     //	fullCalcOnLoad isn't needed if we've recalculating for the save
     $objWriter->writeAttribute('calcCompleted', $recalcRequired ? 1 : 0);
     $objWriter->writeAttribute('fullCalcOnLoad', $recalcRequired ? 0 : 1);
     $objWriter->endElement();
 }
Example #8
0
 /**
  * Write Cell Style Dxf
  *
  * @param    PHPExcel_Shared_XMLWriter $objWriter XML Writer
  * @param    PHPExcel_Style            $pStyle    Style
  *
  * @throws    PHPExcel_Writer_Exception
  */
 private function _writeCellStyleDxf(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style $pStyle = null)
 {
     // dxf
     $objWriter->startElement('dxf');
     // font
     $this->_writeFont($objWriter, $pStyle->getFont());
     // numFmt
     $this->_writeNumFmt($objWriter, $pStyle->getNumberFormat());
     // fill
     $this->_writeFill($objWriter, $pStyle->getFill());
     // alignment
     $objWriter->startElement('alignment');
     if ($pStyle->getAlignment()->getHorizontal() !== null) {
         $objWriter->writeAttribute('horizontal', $pStyle->getAlignment()->getHorizontal());
     }
     if ($pStyle->getAlignment()->getVertical() !== null) {
         $objWriter->writeAttribute('vertical', $pStyle->getAlignment()->getVertical());
     }
     if ($pStyle->getAlignment()->getTextRotation() !== null) {
         $textRotation = 0;
         if ($pStyle->getAlignment()->getTextRotation() >= 0) {
             $textRotation = $pStyle->getAlignment()->getTextRotation();
         } else {
             if ($pStyle->getAlignment()->getTextRotation() < 0) {
                 $textRotation = 90 - $pStyle->getAlignment()->getTextRotation();
             }
         }
         $objWriter->writeAttribute('textRotation', $textRotation);
     }
     $objWriter->endElement();
     // border
     $this->_writeBorder($objWriter, $pStyle->getBorders());
     // protection
     if ($pStyle->getProtection()->getLocked() !== null || $pStyle->getProtection()->getHidden() !== null) {
         if ($pStyle->getProtection()->getLocked() !== PHPExcel_Style_Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() !== PHPExcel_Style_Protection::PROTECTION_INHERIT) {
             $objWriter->startElement('protection');
             if ($pStyle->getProtection()->getLocked() !== null && $pStyle->getProtection()->getLocked() !== PHPExcel_Style_Protection::PROTECTION_INHERIT) {
                 $objWriter->writeAttribute('locked', $pStyle->getProtection()->getLocked() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false');
             }
             if ($pStyle->getProtection()->getHidden() !== null && $pStyle->getProtection()->getHidden() !== PHPExcel_Style_Protection::PROTECTION_INHERIT) {
                 $objWriter->writeAttribute('hidden', $pStyle->getProtection()->getHidden() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false');
             }
             $objWriter->endElement();
         }
     }
     $objWriter->endElement();
 }
Example #9
0
 /**
  * Write VML comment to XML format
  *
  * @param   PHPExcel_Worksheet              $pWorksheet
  * @param 	PHPExcel_Shared_XMLWriter		$objWriter 			XML Writer
  * @param	string							$pCellReference		Cell reference
  * @param 	PHPExcel_Comment				$pComment			Comment
  * @throws 	PHPExcel_Writer_Exception
  */
 public function _writeVMLComment(PHPExcel_Worksheet $pWorksheet = null, PHPExcel_Shared_XMLWriter $objWriter = null, $pCellReference = 'A1', PHPExcel_Comment $pComment = null)
 {
     // Metadata
     list($column, $row) = PHPExcel_Cell::coordinateFromString($pCellReference);
     $column = PHPExcel_Cell::columnIndexFromString($column);
     $id = 1024 + $column + $row;
     $id = substr($id, 0, 4);
     $cssWidth = $pComment->getWidth();
     $cssHeight = $pComment->getHeight();
     // v:shape
     $objWriter->startElement('v:shape');
     $objWriter->writeAttribute('id', '_x0000_s' . $id);
     $objWriter->writeAttribute('type', '#_x0000_t202');
     $objWriter->writeAttribute('style', 'position:absolute;margin-left:' . $pComment->getMarginLeft() . ';margin-top:' . $pComment->getMarginTop() . ';width:' . $cssWidth . ';height:' . $cssHeight . ';z-index:1;visibility:' . ($pComment->getVisible() ? 'visible' : 'hidden'));
     $objWriter->writeAttribute('fillcolor', '#' . $pComment->getFillColor()->getRGB());
     $objWriter->writeAttribute('o:insetmode', 'auto');
     // v:fill
     $objWriter->startElement('v:fill');
     $objWriter->writeAttribute('color2', '#' . $pComment->getFillColor()->getRGB());
     $objWriter->endElement();
     // v:shadow
     $objWriter->startElement('v:shadow');
     $objWriter->writeAttribute('on', 't');
     $objWriter->writeAttribute('color', 'black');
     $objWriter->writeAttribute('obscured', 't');
     $objWriter->endElement();
     // v:path
     $objWriter->startElement('v:path');
     $objWriter->writeAttribute('o:connecttype', 'none');
     $objWriter->endElement();
     // v:textbox
     $objWriter->startElement('v:textbox');
     $objWriter->writeAttribute('style', 'mso-direction-alt:auto');
     // div
     $objWriter->startElement('div');
     $objWriter->writeAttribute('style', 'text-align:left');
     $objWriter->endElement();
     $objWriter->endElement();
     // x:ClientData
     $objWriter->startElement('x:ClientData');
     $objWriter->writeAttribute('ObjectType', 'Note');
     // x:MoveWithCells
     $objWriter->writeElement('x:MoveWithCells', '');
     // x:SizeWithCells
     $objWriter->writeElement('x:SizeWithCells', '');
     // x:Anchor
     // anchor is a nice way to locate the comment sensibly with respect to the sheet's rows/columns, but
     // in order to do so, need to be able to convert roughly to point dimensions from the comments
     // width/height, which are optimized for css
     if (preg_match('/\\s*pt\\s*$/', $cssWidth) && preg_match('/\\s*pt\\s*$/', $cssHeight)) {
         // compute CSS height to an integer # pts
         $width = intval(preg_replace('/\\s*pt\\s*$/', '', $cssWidth));
         $height = intval(preg_replace('/\\s*pt\\s*$/', '', $cssHeight));
         // starting from the row/column this is being placed in try
         // to figure out the row column that should anchor the lower-right
         // corner of the comment
         $clearedWidth = 0;
         $clearedHeight = 0;
         $maxColumns = 2;
         $maxRows = 10;
         // loop incremenets, so decrement both to start
         $curColumn = $column - 1;
         $curRow = $row - 1;
         while ($clearedWidth < $width && $curColumn - $column < $maxColumns) {
             ++$curColumn;
             $dim = $pWorksheet->getColumnDimensionByColumn($curColumn, false);
             $clearedWidth += $dim && $dim->getWidth() > 0 ? $dim->getWidth() : 96;
         }
         while ($clearedHeight < $height && $curRow - $row < $maxRows) {
             ++$curRow;
             $dim = $pWorksheet->getRowDimension($curRow, false);
             $clearedHeight += $dim && $dim->getRowHeight() > 0 ? $dim->getRowHeight() : 14;
         }
         $colBump = 15;
         $rowBump = 10;
         $anchor = $column . ', ' . $colBump . ', ' . ($row - 1) . ', ' . $rowBump . ', ' . $curColumn . ', ' . max($clearedWidth - $width, 0) . ', ' . $curRow . ', ' . max($clearedHeight - $height, 0);
         // lower-right row offset
         $objWriter->writeElement('x:Anchor', $anchor);
     }
     // x:AutoFill
     $objWriter->writeElement('x:AutoFill', 'False');
     // x:Row
     $objWriter->writeElement('x:Row', $row - 1);
     // x:Column
     $objWriter->writeElement('x:Column', $column - 1);
     $objWriter->endElement();
     $objWriter->endElement();
 }
Example #10
0
 /**
  * Write header/footer drawing relationships to XML format
  *
  * @param    PHPExcel_Worksheet $pWorksheet
  *
  * @return    string                        XML Output
  * @throws    PHPExcel_Writer_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 through 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();
 }
 /**
  * Write Default content type
  *
  * @param    PHPExcel_Shared_XMLWriter $objWriter    XML Writer
  * @param    string                    $pPartname    Part name
  * @param    string                    $pContentType Content type
  *
  * @throws    PHPExcel_Writer_Exception
  */
 private function _writeDefaultContentType(PHPExcel_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '')
 {
     if ($pPartname != '' && $pContentType != '') {
         // Write content type
         $objWriter->startElement('Default');
         $objWriter->writeAttribute('Extension', $pPartname);
         $objWriter->writeAttribute('ContentType', $pContentType);
         $objWriter->endElement();
     } else {
         throw new PHPExcel_Writer_Exception("Invalid parameters passed.");
     }
 }
Example #12
0
 /**
  * Write Defined Name for PrintTitles
  *
  * @param 	PHPExcel_Shared_XMLWriter	$objWriter 		XML Writer
  * @param 	PHPExcel_Worksheet			$pSheet
  * @param 	int							$pSheetId
  * @throws 	Exception
  */
 private function _writeDefinedNameForPrintArea(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0)
 {
     // definedName for PrintArea
     if ($pSheet->getPageSetup()->isPrintAreaSet()) {
         $objWriter->startElement('definedName');
         $objWriter->writeAttribute('name', '_xlnm.Print_Area');
         $objWriter->writeAttribute('localSheetId', $pSheetId);
         // Setting string
         $settingString = '';
         // Print area
         $printArea = PHPExcel_Cell::splitRange($pSheet->getPageSetup()->getPrintArea());
         $printArea[0] = PHPExcel_Cell::absoluteCoordinate($printArea[0]);
         $printArea[1] = PHPExcel_Cell::absoluteCoordinate($printArea[1]);
         $objWriter->writeRaw('\'' . $pSheet->getTitle() . '\'!' . implode(':', $printArea));
         $objWriter->endElement();
     }
 }
Example #13
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();
 }
Example #14
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();
 }
Example #15
0
 /**
  * Write Defined Name for PrintTitles
  *
  * @param 	PHPExcel_Shared_XMLWriter	$objWriter 		XML Writer
  * @param 	PHPExcel_Worksheet			$pSheet
  * @param 	int							$pSheetId
  * @throws 	PHPExcel_Writer_Exception
  */
 private function _writeDefinedNameForPrintArea(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, $pSheetId = 0)
 {
     // definedName for PrintArea
     if ($pSheet->getPageSetup()->isPrintAreaSet()) {
         $objWriter->startElement('definedName');
         $objWriter->writeAttribute('name', '_xlnm.Print_Area');
         $objWriter->writeAttribute('localSheetId', $pSheetId);
         // Setting string
         $settingString = '';
         // Print area
         $printArea = PHPExcel_Cell::splitRange($pSheet->getPageSetup()->getPrintArea());
         $chunks = array();
         foreach ($printArea as $printAreaRect) {
             $printAreaRect[0] = PHPExcel_Cell::absoluteReference($printAreaRect[0]);
             $printAreaRect[1] = PHPExcel_Cell::absoluteReference($printAreaRect[1]);
             $chunks[] = '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . implode(':', $printAreaRect);
         }
         $objWriter->writeRawData(implode(',', $chunks));
         $objWriter->endElement();
     }
 }
Example #16
0
 /**
  * Write NumberFormat
  *
  * @param 	PHPExcel_Shared_XMLWriter			$objWriter 		XML Writer
  * @param 	PHPExcel_Style_NumberFormat			$pNumberFormat	Number Format
  * @param 	int									$pId			Number Format identifier
  * @throws 	Exception
  */
 private function _writeNumFmt(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_NumberFormat $pNumberFormat = null, $pId = 0)
 {
     // Translate formatcode
     $formatCode = $pNumberFormat->getFormatCode();
     // numFmt
     $objWriter->startElement('numFmt');
     $objWriter->writeAttribute('numFmtId', $pId + 164);
     $objWriter->writeAttribute('formatCode', $formatCode);
     $objWriter->endElement();
 }
Example #17
0
 /**
  * Write LegacyDrawingHF
  *
  * @param	PHPExcel_Shared_XMLWriter		$objWriter		XML Writer
  * @param	PHPExcel_Worksheet				$pSheet			Worksheet
  * @throws	Exception
  */
 private function _writeLegacyDrawingHF(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null)
 {
     // If sheet contains comments, add the relationships
     if (count($pSheet->getHeaderFooter()->getImages()) > 0) {
         $objWriter->startElement('legacyDrawingHF');
         $objWriter->writeAttribute('r:id', 'rId_headerfooter_vml1');
         $objWriter->endElement();
     }
 }
Example #18
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();
 }
Example #19
0
 /**
  * Write Printer Settings
  *
  * @param 	PHPExcel_Shared_XMLWriter 	$objWriter 		XML Writer
  * @throws 	PHPExcel_Writer_Exception
  */
 private function _writePrintSettings($objWriter)
 {
     $objWriter->startElement('c:printSettings');
     $objWriter->startElement('c:headerFooter');
     $objWriter->endElement();
     $objWriter->startElement('c:pageMargins');
     $objWriter->writeAttribute('footer', 0.3);
     $objWriter->writeAttribute('header', 0.3);
     $objWriter->writeAttribute('r', 0.7);
     $objWriter->writeAttribute('l', 0.7);
     $objWriter->writeAttribute('t', 0.75);
     $objWriter->writeAttribute('b', 0.75);
     $objWriter->endElement();
     $objWriter->startElement('c:pageSetup');
     $objWriter->writeAttribute('orientation', "portrait");
     $objWriter->endElement();
     $objWriter->endElement();
 }
 /**
  * Write Override content type
  *
  * @param 	PHPExcel_Shared_XMLWriter 	$objWriter 		XML Writer
  * @param 	int							$pId			Relationship ID. rId will be prepended!
  * @param 	string						$pType			Relationship type
  * @param 	string 						$pTarget		Relationship target
  * @param 	string 						$pTargetMode	Relationship target mode
  * @throws 	Exception
  */
 private function _writeRelationship(PHPExcel_Shared_XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '')
 {
     if ($pType != '' && $pTarget != '') {
         // Write relationship
         $objWriter->startElement('Relationship');
         $objWriter->writeAttribute('Id', 'rId' . $pId);
         $objWriter->writeAttribute('Type', $pType);
         $objWriter->writeAttribute('Target', $pTarget);
         if ($pTargetMode != '') {
             $objWriter->writeAttribute('TargetMode', $pTargetMode);
         }
         $objWriter->endElement();
     } else {
         throw new Exception("Invalid parameters passed.");
     }
 }
Example #21
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();
 }
Example #22
0
 /**
  * Write VML comment to XML format
  *
  * @param 	PHPExcel_Shared_XMLWriter		$objWriter 			XML Writer
  * @param	string							$pCellReference		Cell reference
  * @param 	PHPExcel_Comment				$pComment			Comment
  * @throws 	Exception
  */
 public function _writeVMLComment(PHPExcel_Shared_XMLWriter $objWriter = null, $pCellReference = 'A1', PHPExcel_Comment $pComment = null)
 {
     // Metadata
     list($column, $row) = PHPExcel_Cell::coordinateFromString($pCellReference);
     $column = PHPExcel_Cell::columnIndexFromString($column);
     $id = 1024 + $column + $row;
     $id = substr($id, 0, 4);
     // v:shape
     $objWriter->startElement('v:shape');
     $objWriter->writeAttribute('id', '_x0000_s' . $id);
     $objWriter->writeAttribute('type', '#_x0000_t202');
     $objWriter->writeAttribute('style', 'position:absolute;margin-left:' . $pComment->getMarginLeft() . ';margin-top:' . $pComment->getMarginTop() . ';width:' . $pComment->getWidth() . ';height:' . $pComment->getHeight() . ';z-index:1;visibility:' . ($pComment->getVisible() ? 'visible' : 'hidden'));
     $objWriter->writeAttribute('fillcolor', '#' . $pComment->getFillColor()->getRGB());
     $objWriter->writeAttribute('o:insetmode', 'auto');
     // v:fill
     $objWriter->startElement('v:fill');
     $objWriter->writeAttribute('color2', '#' . $pComment->getFillColor()->getRGB());
     $objWriter->endElement();
     // v:shadow
     $objWriter->startElement('v:shadow');
     $objWriter->writeAttribute('on', 't');
     $objWriter->writeAttribute('color', 'black');
     $objWriter->writeAttribute('obscured', 't');
     $objWriter->endElement();
     // v:path
     $objWriter->startElement('v:path');
     $objWriter->writeAttribute('o:connecttype', 'none');
     $objWriter->endElement();
     // v:textbox
     $objWriter->startElement('v:textbox');
     $objWriter->writeAttribute('style', 'mso-direction-alt:auto');
     // div
     $objWriter->startElement('div');
     $objWriter->writeAttribute('style', 'text-align:left');
     $objWriter->endElement();
     $objWriter->endElement();
     // x:ClientData
     $objWriter->startElement('x:ClientData');
     $objWriter->writeAttribute('ObjectType', 'Note');
     // x:MoveWithCells
     $objWriter->writeElement('x:MoveWithCells', '');
     // x:SizeWithCells
     $objWriter->writeElement('x:SizeWithCells', '');
     // x:Anchor
     //$objWriter->writeElement('x:Anchor', $column . ', 15, ' . ($row - 2) . ', 10, ' . ($column + 4) . ', 15, ' . ($row + 5) . ', 18');
     // x:AutoFill
     $objWriter->writeElement('x:AutoFill', 'False');
     // x:Row
     $objWriter->writeElement('x:Row', $row - 1);
     // x:Column
     $objWriter->writeElement('x:Column', $column - 1);
     $objWriter->endElement();
     $objWriter->endElement();
 }
 /**
  * Write Rich Text
  *
  * @param     PHPExcel_Shared_XMLWriter    $objWriter         XML Writer
  * @param     string|PHPExcel_RichText    $pRichText        text string or Rich text
  * @param     string                        $prefix            Optional Namespace prefix
  * @throws     PHPExcel_Writer_Exception
  */
 public function writeRichTextForCharts(PHPExcel_Shared_XMLWriter $objWriter = null, $pRichText = null, $prefix = null)
 {
     if (!$pRichText instanceof PHPExcel_RichText) {
         $textRun = $pRichText;
         $pRichText = new PHPExcel_RichText();
         $pRichText->createTextRun($textRun);
     }
     if ($prefix !== null) {
         $prefix .= ':';
     }
     // Loop through rich text elements
     $elements = $pRichText->getRichTextElements();
     foreach ($elements as $element) {
         // r
         $objWriter->startElement($prefix . 'r');
         // rPr
         $objWriter->startElement($prefix . 'rPr');
         // Bold
         $objWriter->writeAttribute('b', $element->getFont()->getBold() ? 1 : 0);
         // Italic
         $objWriter->writeAttribute('i', $element->getFont()->getItalic() ? 1 : 0);
         // Underline
         $underlineType = $element->getFont()->getUnderline();
         switch ($underlineType) {
             case 'single':
                 $underlineType = 'sng';
                 break;
             case 'double':
                 $underlineType = 'dbl';
                 break;
         }
         $objWriter->writeAttribute('u', $underlineType);
         // Strikethrough
         $objWriter->writeAttribute('strike', $element->getFont()->getStrikethrough() ? 'sngStrike' : 'noStrike');
         // rFont
         $objWriter->startElement($prefix . 'latin');
         $objWriter->writeAttribute('typeface', $element->getFont()->getName());
         $objWriter->endElement();
         // Superscript / subscript
         //                    if ($element->getFont()->getSuperScript() || $element->getFont()->getSubScript()) {
         //                        $objWriter->startElement($prefix.'vertAlign');
         //                        if ($element->getFont()->getSuperScript()) {
         //                            $objWriter->writeAttribute('val', 'superscript');
         //                        } elseif ($element->getFont()->getSubScript()) {
         //                            $objWriter->writeAttribute('val', 'subscript');
         //                        }
         //                        $objWriter->endElement();
         //                    }
         //
         $objWriter->endElement();
         // t
         $objWriter->startElement($prefix . 't');
         //                    $objWriter->writeAttribute('xml:space', 'preserve');    //    Excel2010 accepts, Excel2007 complains
         $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML($element->getText()));
         $objWriter->endElement();
         $objWriter->endElement();
     }
 }
Example #24
0
 /**
  * Write VML comment to XML format
  *
  * @param 	PHPExcel_Shared_XMLWriter		$objWriter 			XML Writer
  * @param	string							$pReference			Reference
  * @param 	PHPExcel_Worksheet_HeaderFooterDrawing	$pImage		Image
  * @throws 	PHPExcel_Writer_Exception
  */
 public function _writeVMLHeaderFooterImage(PHPExcel_Shared_XMLWriter $objWriter = null, $pReference = '', PHPExcel_Worksheet_HeaderFooterDrawing $pImage = null)
 {
     // Calculate object id
     preg_match('{(\\d+)}', md5($pReference), $m);
     $id = 1500 + substr($m[1], 0, 2) * 1;
     // Calculate offset
     $width = $pImage->getWidth();
     $height = $pImage->getHeight();
     $marginLeft = $pImage->getOffsetX();
     $marginTop = $pImage->getOffsetY();
     // v:shape
     $objWriter->startElement('v:shape');
     $objWriter->writeAttribute('id', $pReference);
     $objWriter->writeAttribute('o:spid', '_x0000_s' . $id);
     $objWriter->writeAttribute('type', '#_x0000_t75');
     $objWriter->writeAttribute('style', "position:absolute;margin-left:{$marginLeft}px;margin-top:{$marginTop}px;width:{$width}px;height:{$height}px;z-index:1");
     // v:imagedata
     $objWriter->startElement('v:imagedata');
     $objWriter->writeAttribute('o:relid', 'rId' . $pReference);
     $objWriter->writeAttribute('o:title', $pImage->getName());
     $objWriter->endElement();
     // o:lock
     $objWriter->startElement('o:lock');
     $objWriter->writeAttribute('v:ext', 'edit');
     $objWriter->writeAttribute('rotation', 't');
     $objWriter->endElement();
     $objWriter->endElement();
 }
 /**
  * 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();
 }
Example #26
0
 /**
  * Write fonts to XML format
  *
  * @param    PHPExcel_Shared_XMLWriter $objWriter
  * @param    string                    $latinFont
  * @param                              array of string                $fontSet
  *
  * @return    string                        XML Output
  * @throws    PHPExcel_Writer_Exception
  */
 private function _writeFonts($objWriter, $latinFont, $fontSet)
 {
     // a:latin
     $objWriter->startElement('a:latin');
     $objWriter->writeAttribute('typeface', $latinFont);
     $objWriter->endElement();
     // a:ea
     $objWriter->startElement('a:ea');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:cs
     $objWriter->startElement('a:cs');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     foreach ($fontSet as $fontScript => $typeface) {
         $objWriter->startElement('a:font');
         $objWriter->writeAttribute('script', $fontScript);
         $objWriter->writeAttribute('typeface', $typeface);
         $objWriter->endElement();
     }
 }
Example #27
0
 /**
  * Write Override content type
  *
  * @param 	PHPExcel_Shared_XMLWriter 	$objWriter 		XML Writer
  * @param 	string 						$pPartname 		Part name
  * @param 	string 						$pContentType 	Content type
  * @throws 	Exception
  */
 private function _writeOverrideContentType(PHPExcel_Shared_XMLWriter $objWriter = null, $pPartname = '', $pContentType = '')
 {
     if ($pPartname != '' && $pContentType != '') {
         // Write content type
         $objWriter->startElement('Override');
         $objWriter->writeAttribute('PartName', $pPartname);
         $objWriter->writeAttribute('ContentType', $pContentType);
         $objWriter->endElement();
     } else {
         throw new Exception("Invalid parameters passed.");
     }
 }
Example #28
0
 /**
  * Write Rich Text
  *
  * @param 	PHPExcel_Shared_XMLWriter		$objWriter 		XML Writer
  * @param 	PHPExcel_RichText				$pRichText		Rich text
  * @throws 	Exception
  */
 public function writeRichText(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_RichText $pRichText = null)
 {
     // Loop trough rich text elements
     $elements = $pRichText->getRichTextElements();
     foreach ($elements as $element) {
         // r
         $objWriter->startElement('r');
         // rPr
         if ($element instanceof PHPExcel_RichText_Run) {
             // rPr
             $objWriter->startElement('rPr');
             // rFont
             $objWriter->startElement('rFont');
             $objWriter->writeAttribute('val', $element->getFont()->getName());
             $objWriter->endElement();
             // Bold
             $objWriter->startElement('b');
             $objWriter->writeAttribute('val', $element->getFont()->getBold() ? 'true' : 'false');
             $objWriter->endElement();
             // Italic
             $objWriter->startElement('i');
             $objWriter->writeAttribute('val', $element->getFont()->getItalic() ? 'true' : 'false');
             $objWriter->endElement();
             // Striketrough
             $objWriter->startElement('strike');
             $objWriter->writeAttribute('val', $element->getFont()->getStriketrough() ? 'true' : 'false');
             $objWriter->endElement();
             // Color
             $objWriter->startElement('color');
             $objWriter->writeAttribute('rgb', $element->getFont()->getColor()->getARGB());
             $objWriter->endElement();
             // Size
             $objWriter->startElement('sz');
             $objWriter->writeAttribute('val', $element->getFont()->getSize());
             $objWriter->endElement();
             // Underline
             $objWriter->startElement('u');
             $objWriter->writeAttribute('val', $element->getFont()->getUnderline());
             $objWriter->endElement();
             $objWriter->endElement();
         }
         // t
         $objWriter->startElement('t');
         $objWriter->writeAttribute('xml:space', 'preserve');
         $objWriter->writeRaw(PHPExcel_Shared_String::ControlCharacterPHP2OOXML($element->getText()));
         $objWriter->endElement();
         $objWriter->endElement();
     }
 }
Example #29
0
 /**
  * Write colour scheme to XML format
  *
  * @param PHPExcel_Shared_XMLWriter $objWriter            
  * @return string XML Output
  * @throws PHPExcel_Writer_Exception
  */
 private function _writeColourScheme($objWriter)
 {
     foreach (self::$_colourScheme as $colourName => $colourValue) {
         $objWriter->startElement('a:' . $colourName);
         
         $objWriter->startElement('a:srgbClr');
         $objWriter->writeAttribute('val', $colourValue);
         $objWriter->endElement();
         
         $objWriter->endElement();
     }
 }
Example #30
-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();
 }