| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * PHPExcel | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2015-05-02 22:50:37 +00:00
										 |  |  |  * Copyright (c) 2006 - 2015 PHPExcel | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * This library is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License as published by the Free Software Foundation; either | 
					
						
							|  |  |  |  * version 2.1 of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This library is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							|  |  |  |  * Lesser General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License along with this library; if not, write to the Free Software | 
					
						
							|  |  |  |  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category   PHPExcel | 
					
						
							|  |  |  |  * @package    PHPExcel_Writer_Excel2007 | 
					
						
							| 
									
										
										
										
											2015-05-02 22:50:37 +00:00
										 |  |  |  * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) | 
					
						
							| 
									
										
										
										
											2015-05-11 21:38:52 +00:00
										 |  |  |  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  * @version    ##VERSION##, ##DATE##
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * PHPExcel_Writer_Excel2007_Style | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category   PHPExcel | 
					
						
							|  |  |  |  * @package    PHPExcel_Writer_Excel2007 | 
					
						
							| 
									
										
										
										
											2015-05-02 22:50:37 +00:00
										 |  |  |  * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  */ | 
					
						
							|  |  |  | class PHPExcel_Writer_Excel2007_Style extends PHPExcel_Writer_Excel2007_WriterPart | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2015-05-11 21:38:52 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Write styles to XML format | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel    $pPHPExcel | 
					
						
							|  |  |  |      * @return     string         XML Output | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_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(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Write Fill | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel_Shared_XMLWriter     $objWriter         XML Writer | 
					
						
							|  |  |  |      * @param     PHPExcel_Style_Fill            $pFill            Fill style | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function _writeFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Check if this is a pattern type or gradient type
 | 
					
						
							|  |  |  |         if ($pFill->getFillType() === PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR || | 
					
						
							|  |  |  |             $pFill->getFillType() === PHPExcel_Style_Fill::FILL_GRADIENT_PATH) { | 
					
						
							|  |  |  |             // Gradient fill
 | 
					
						
							|  |  |  |             $this->_writeGradientFill($objWriter, $pFill); | 
					
						
							|  |  |  |         } elseif($pFill->getFillType() !== NULL) { | 
					
						
							|  |  |  |             // Pattern fill
 | 
					
						
							|  |  |  |             $this->_writePatternFill($objWriter, $pFill); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Write Gradient Fill | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel_Shared_XMLWriter     $objWriter         XML Writer | 
					
						
							|  |  |  |      * @param     PHPExcel_Style_Fill            $pFill            Fill style | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function _writeGradientFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // fill
 | 
					
						
							|  |  |  |         $objWriter->startElement('fill'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // gradientFill
 | 
					
						
							|  |  |  |             $objWriter->startElement('gradientFill'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('type',         $pFill->getFillType()); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('degree',     $pFill->getRotation()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 // stop
 | 
					
						
							|  |  |  |                 $objWriter->startElement('stop'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('position', '0'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     // color
 | 
					
						
							|  |  |  |                     $objWriter->startElement('color'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('rgb', $pFill->getStartColor()->getARGB()); | 
					
						
							|  |  |  |                     $objWriter->endElement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 // stop
 | 
					
						
							|  |  |  |                 $objWriter->startElement('stop'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('position', '1'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     // color
 | 
					
						
							|  |  |  |                     $objWriter->startElement('color'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('rgb', $pFill->getEndColor()->getARGB()); | 
					
						
							|  |  |  |                     $objWriter->endElement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $objWriter->endElement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $objWriter->endElement(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Write Pattern Fill | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel_Shared_XMLWriter            $objWriter         XML Writer | 
					
						
							|  |  |  |      * @param     PHPExcel_Style_Fill                    $pFill            Fill style | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function _writePatternFill(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Fill $pFill = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // fill
 | 
					
						
							|  |  |  |         $objWriter->startElement('fill'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // patternFill
 | 
					
						
							|  |  |  |             $objWriter->startElement('patternFill'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('patternType', $pFill->getFillType()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if ($pFill->getFillType() !== PHPExcel_Style_Fill::FILL_NONE) { | 
					
						
							|  |  |  |                     // fgColor
 | 
					
						
							|  |  |  |                     if ($pFill->getStartColor()->getARGB()) { | 
					
						
							|  |  |  |                         $objWriter->startElement('fgColor'); | 
					
						
							|  |  |  |                         $objWriter->writeAttribute('rgb', $pFill->getStartColor()->getARGB()); | 
					
						
							|  |  |  |                         $objWriter->endElement(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 if ($pFill->getFillType() !== PHPExcel_Style_Fill::FILL_NONE) { | 
					
						
							|  |  |  |                     // bgColor
 | 
					
						
							|  |  |  |                     if ($pFill->getEndColor()->getARGB()) { | 
					
						
							|  |  |  |                         $objWriter->startElement('bgColor'); | 
					
						
							|  |  |  |                         $objWriter->writeAttribute('rgb', $pFill->getEndColor()->getARGB()); | 
					
						
							|  |  |  |                         $objWriter->endElement(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $objWriter->endElement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $objWriter->endElement(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Write Font | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel_Shared_XMLWriter        $objWriter         XML Writer | 
					
						
							|  |  |  |      * @param     PHPExcel_Style_Font                $pFont            Font style | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function _writeFont(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Font $pFont = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // font
 | 
					
						
							|  |  |  |         $objWriter->startElement('font'); | 
					
						
							|  |  |  |             //    Weird! The order of these elements actually makes a difference when opening Excel2007
 | 
					
						
							|  |  |  |             //        files in Excel2003 with the compatibility pack. It's not documented behaviour,
 | 
					
						
							|  |  |  |             //        and makes for a real WTF!
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Bold. We explicitly write this element also when false (like MS Office Excel 2007 does
 | 
					
						
							|  |  |  |             // for conditional formatting). Otherwise it will apparently not be picked up in conditional
 | 
					
						
							|  |  |  |             // formatting style dialog
 | 
					
						
							|  |  |  |             if ($pFont->getBold() !== NULL) { | 
					
						
							|  |  |  |                 $objWriter->startElement('b'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('val', $pFont->getBold() ? '1' : '0'); | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Italic
 | 
					
						
							|  |  |  |             if ($pFont->getItalic() !== NULL) { | 
					
						
							|  |  |  |                 $objWriter->startElement('i'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('val', $pFont->getItalic() ? '1' : '0'); | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Strikethrough
 | 
					
						
							|  |  |  |             if ($pFont->getStrikethrough() !== NULL) { | 
					
						
							|  |  |  |                 $objWriter->startElement('strike'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('val', $pFont->getStrikethrough() ? '1' : '0'); | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Underline
 | 
					
						
							|  |  |  |             if ($pFont->getUnderline() !== NULL) { | 
					
						
							|  |  |  |                 $objWriter->startElement('u'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('val', $pFont->getUnderline()); | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Superscript / subscript
 | 
					
						
							|  |  |  |             if ($pFont->getSuperScript() === TRUE || $pFont->getSubScript() === TRUE) { | 
					
						
							|  |  |  |                 $objWriter->startElement('vertAlign'); | 
					
						
							|  |  |  |                 if ($pFont->getSuperScript() === TRUE) { | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('val', 'superscript'); | 
					
						
							|  |  |  |                 } else if ($pFont->getSubScript() === TRUE) { | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('val', 'subscript'); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Size
 | 
					
						
							|  |  |  |             if ($pFont->getSize() !== NULL) { | 
					
						
							|  |  |  |                 $objWriter->startElement('sz'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('val', $pFont->getSize()); | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Foreground color
 | 
					
						
							|  |  |  |             if ($pFont->getColor()->getARGB() !== NULL) { | 
					
						
							|  |  |  |                 $objWriter->startElement('color'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('rgb', $pFont->getColor()->getARGB()); | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Name
 | 
					
						
							|  |  |  |             if ($pFont->getName() !== NULL) { | 
					
						
							|  |  |  |                 $objWriter->startElement('name'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('val', $pFont->getName()); | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $objWriter->endElement(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Write Border | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel_Shared_XMLWriter            $objWriter         XML Writer | 
					
						
							|  |  |  |      * @param     PHPExcel_Style_Borders                $pBorders        Borders style | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function _writeBorder(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_Borders $pBorders = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Write border
 | 
					
						
							|  |  |  |         $objWriter->startElement('border'); | 
					
						
							|  |  |  |             // Diagonal?
 | 
					
						
							|  |  |  |             switch ($pBorders->getDiagonalDirection()) { | 
					
						
							|  |  |  |                 case PHPExcel_Style_Borders::DIAGONAL_UP: | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('diagonalUp',     'true'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('diagonalDown',     'false'); | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                 case PHPExcel_Style_Borders::DIAGONAL_DOWN: | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('diagonalUp',     'false'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('diagonalDown',     'true'); | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                 case PHPExcel_Style_Borders::DIAGONAL_BOTH: | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('diagonalUp',     'true'); | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('diagonalDown',     'true'); | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // BorderPr
 | 
					
						
							|  |  |  |             $this->_writeBorderPr($objWriter, 'left',        $pBorders->getLeft()); | 
					
						
							|  |  |  |             $this->_writeBorderPr($objWriter, 'right',        $pBorders->getRight()); | 
					
						
							|  |  |  |             $this->_writeBorderPr($objWriter, 'top',        $pBorders->getTop()); | 
					
						
							|  |  |  |             $this->_writeBorderPr($objWriter, 'bottom',        $pBorders->getBottom()); | 
					
						
							|  |  |  |             $this->_writeBorderPr($objWriter, 'diagonal',    $pBorders->getDiagonal()); | 
					
						
							|  |  |  |         $objWriter->endElement(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Write Cell Style Xf | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel_Shared_XMLWriter            $objWriter         XML Writer | 
					
						
							|  |  |  |      * @param     PHPExcel_Style                        $pStyle            Style | 
					
						
							|  |  |  |      * @param     PHPExcel                            $pPHPExcel        Workbook | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function _writeCellStyleXf(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style $pStyle = null, PHPExcel $pPHPExcel = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // xf
 | 
					
						
							|  |  |  |         $objWriter->startElement('xf'); | 
					
						
							|  |  |  |             $objWriter->writeAttribute('xfId', 0); | 
					
						
							|  |  |  |             $objWriter->writeAttribute('fontId',             (int)$this->getParentWriter()->getFontHashTable()->getIndexForHashCode($pStyle->getFont()->getHashCode())); | 
					
						
							| 
									
										
										
										
											2013-06-25 22:13:13 +00:00
										 |  |  |             if ($pStyle->getQuotePrefix()) { | 
					
						
							| 
									
										
										
										
											2015-05-11 21:38:52 +00:00
										 |  |  |                 $objWriter->writeAttribute('quotePrefix',         1); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if ($pStyle->getNumberFormat()->getBuiltInFormatCode() === false) { | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('numFmtId',             (int)($this->getParentWriter()->getNumFmtHashTable()->getIndexForHashCode($pStyle->getNumberFormat()->getHashCode()) + 164)   ); | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('numFmtId',             (int)$pStyle->getNumberFormat()->getBuiltInFormatCode()); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $objWriter->writeAttribute('fillId',             (int)$this->getParentWriter()->getFillHashTable()->getIndexForHashCode($pStyle->getFill()->getHashCode())); | 
					
						
							|  |  |  |             $objWriter->writeAttribute('borderId',             (int)$this->getParentWriter()->getBordersHashTable()->getIndexForHashCode($pStyle->getBorders()->getHashCode())); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Apply styles?
 | 
					
						
							|  |  |  |             $objWriter->writeAttribute('applyFont',         ($pPHPExcel->getDefaultStyle()->getFont()->getHashCode() != $pStyle->getFont()->getHashCode()) ? '1' : '0'); | 
					
						
							|  |  |  |             $objWriter->writeAttribute('applyNumberFormat', ($pPHPExcel->getDefaultStyle()->getNumberFormat()->getHashCode() != $pStyle->getNumberFormat()->getHashCode()) ? '1' : '0'); | 
					
						
							|  |  |  |             $objWriter->writeAttribute('applyFill',         ($pPHPExcel->getDefaultStyle()->getFill()->getHashCode() != $pStyle->getFill()->getHashCode()) ? '1' : '0'); | 
					
						
							|  |  |  |             $objWriter->writeAttribute('applyBorder',         ($pPHPExcel->getDefaultStyle()->getBorders()->getHashCode() != $pStyle->getBorders()->getHashCode()) ? '1' : '0'); | 
					
						
							|  |  |  |             $objWriter->writeAttribute('applyAlignment',    ($pPHPExcel->getDefaultStyle()->getAlignment()->getHashCode() != $pStyle->getAlignment()->getHashCode()) ? '1' : '0'); | 
					
						
							|  |  |  |             if ($pStyle->getProtection()->getLocked() != PHPExcel_Style_Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('applyProtection', 'true'); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // alignment
 | 
					
						
							|  |  |  |             $objWriter->startElement('alignment'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('horizontal',     $pStyle->getAlignment()->getHorizontal()); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('vertical',         $pStyle->getAlignment()->getVertical()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $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->writeAttribute('wrapText',         ($pStyle->getAlignment()->getWrapText() ? 'true' : 'false')); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('shrinkToFit',     ($pStyle->getAlignment()->getShrinkToFit() ? 'true' : 'false')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if ($pStyle->getAlignment()->getIndent() > 0) { | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('indent',     $pStyle->getAlignment()->getIndent()); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 if ($pStyle->getAlignment()->getReadorder() > 0) { | 
					
						
							|  |  |  |                     $objWriter->writeAttribute('readingOrder',     $pStyle->getAlignment()->getReadorder()); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             $objWriter->endElement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // protection
 | 
					
						
							|  |  |  |             if ($pStyle->getProtection()->getLocked() != PHPExcel_Style_Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { | 
					
						
							|  |  |  |                 $objWriter->startElement('protection'); | 
					
						
							|  |  |  |                     if ($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() != PHPExcel_Style_Protection::PROTECTION_INHERIT) { | 
					
						
							|  |  |  |                         $objWriter->writeAttribute('hidden',         ($pStyle->getProtection()->getHidden() == PHPExcel_Style_Protection::PROTECTION_PROTECTED ? 'true' : 'false')); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $objWriter->endElement(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * 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(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Write BorderPr | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel_Shared_XMLWriter        $objWriter         XML Writer | 
					
						
							|  |  |  |      * @param     string                            $pName            Element name | 
					
						
							|  |  |  |      * @param     PHPExcel_Style_Border            $pBorder        Border style | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function _writeBorderPr(PHPExcel_Shared_XMLWriter $objWriter = null, $pName = 'left', PHPExcel_Style_Border $pBorder = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Write BorderPr
 | 
					
						
							|  |  |  |         if ($pBorder->getBorderStyle() != PHPExcel_Style_Border::BORDER_NONE) { | 
					
						
							|  |  |  |             $objWriter->startElement($pName); | 
					
						
							|  |  |  |             $objWriter->writeAttribute('style',     $pBorder->getBorderStyle()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 // color
 | 
					
						
							|  |  |  |                 $objWriter->startElement('color'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('rgb',     $pBorder->getColor()->getARGB()); | 
					
						
							|  |  |  |                 $objWriter->endElement(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $objWriter->endElement(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Write NumberFormat | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel_Shared_XMLWriter            $objWriter         XML Writer | 
					
						
							|  |  |  |      * @param     PHPExcel_Style_NumberFormat            $pNumberFormat    Number Format | 
					
						
							|  |  |  |      * @param     int                                    $pId            Number Format identifier | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function _writeNumFmt(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Style_NumberFormat $pNumberFormat = null, $pId = 0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Translate formatcode
 | 
					
						
							|  |  |  |         $formatCode = $pNumberFormat->getFormatCode(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // numFmt
 | 
					
						
							|  |  |  |         if ($formatCode !== NULL) { | 
					
						
							|  |  |  |             $objWriter->startElement('numFmt'); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('numFmtId', ($pId + 164)); | 
					
						
							|  |  |  |                 $objWriter->writeAttribute('formatCode', $formatCode); | 
					
						
							|  |  |  |             $objWriter->endElement(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Get an array of all styles | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel                $pPHPExcel | 
					
						
							|  |  |  |      * @return     PHPExcel_Style[]        All styles in PHPExcel | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function allStyles(PHPExcel $pPHPExcel = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $aStyles = $pPHPExcel->getCellXfCollection(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $aStyles; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Get an array of all conditional styles | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel                            $pPHPExcel | 
					
						
							|  |  |  |      * @return     PHPExcel_Style_Conditional[]        All conditional styles in PHPExcel | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function allConditionalStyles(PHPExcel $pPHPExcel = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Get an array of all styles
 | 
					
						
							|  |  |  |         $aStyles        = array(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $sheetCount = $pPHPExcel->getSheetCount(); | 
					
						
							|  |  |  |         for ($i = 0; $i < $sheetCount; ++$i) { | 
					
						
							|  |  |  |             foreach ($pPHPExcel->getSheet($i)->getConditionalStylesCollection() as $conditionalStyles) { | 
					
						
							|  |  |  |                 foreach ($conditionalStyles as $conditionalStyle) { | 
					
						
							|  |  |  |                     $aStyles[] = $conditionalStyle; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $aStyles; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Get an array of all fills | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel                        $pPHPExcel | 
					
						
							|  |  |  |      * @return     PHPExcel_Style_Fill[]        All fills in PHPExcel | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function allFills(PHPExcel $pPHPExcel = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Get an array of unique fills
 | 
					
						
							|  |  |  |         $aFills     = array(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Two first fills are predefined
 | 
					
						
							|  |  |  |         $fill0 = new PHPExcel_Style_Fill(); | 
					
						
							|  |  |  |         $fill0->setFillType(PHPExcel_Style_Fill::FILL_NONE); | 
					
						
							|  |  |  |         $aFills[] = $fill0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $fill1 = new PHPExcel_Style_Fill(); | 
					
						
							|  |  |  |         $fill1->setFillType(PHPExcel_Style_Fill::FILL_PATTERN_GRAY125); | 
					
						
							|  |  |  |         $aFills[] = $fill1; | 
					
						
							|  |  |  |         // The remaining fills
 | 
					
						
							|  |  |  |         $aStyles     = $this->allStyles($pPHPExcel); | 
					
						
							|  |  |  |         foreach ($aStyles as $style) { | 
					
						
							|  |  |  |             if (!array_key_exists($style->getFill()->getHashCode(), $aFills)) { | 
					
						
							|  |  |  |                 $aFills[ $style->getFill()->getHashCode() ] = $style->getFill(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $aFills; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Get an array of all fonts | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel                        $pPHPExcel | 
					
						
							|  |  |  |      * @return     PHPExcel_Style_Font[]        All fonts in PHPExcel | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function allFonts(PHPExcel $pPHPExcel = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Get an array of unique fonts
 | 
					
						
							|  |  |  |         $aFonts     = array(); | 
					
						
							|  |  |  |         $aStyles     = $this->allStyles($pPHPExcel); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         foreach ($aStyles as $style) { | 
					
						
							|  |  |  |             if (!array_key_exists($style->getFont()->getHashCode(), $aFonts)) { | 
					
						
							|  |  |  |                 $aFonts[ $style->getFont()->getHashCode() ] = $style->getFont(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $aFonts; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Get an array of all borders | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel                        $pPHPExcel | 
					
						
							|  |  |  |      * @return     PHPExcel_Style_Borders[]        All borders in PHPExcel | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function allBorders(PHPExcel $pPHPExcel = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Get an array of unique borders
 | 
					
						
							|  |  |  |         $aBorders     = array(); | 
					
						
							|  |  |  |         $aStyles     = $this->allStyles($pPHPExcel); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         foreach ($aStyles as $style) { | 
					
						
							|  |  |  |             if (!array_key_exists($style->getBorders()->getHashCode(), $aBorders)) { | 
					
						
							|  |  |  |                 $aBorders[ $style->getBorders()->getHashCode() ] = $style->getBorders(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $aBorders; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Get an array of all number formats | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param     PHPExcel                                $pPHPExcel | 
					
						
							|  |  |  |      * @return     PHPExcel_Style_NumberFormat[]        All number formats in PHPExcel | 
					
						
							|  |  |  |      * @throws     PHPExcel_Writer_Exception | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function allNumberFormats(PHPExcel $pPHPExcel = null) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Get an array of unique number formats
 | 
					
						
							|  |  |  |         $aNumFmts     = array(); | 
					
						
							|  |  |  |         $aStyles     = $this->allStyles($pPHPExcel); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         foreach ($aStyles as $style) { | 
					
						
							|  |  |  |             if ($style->getNumberFormat()->getBuiltInFormatCode() === false && !array_key_exists($style->getNumberFormat()->getHashCode(), $aNumFmts)) { | 
					
						
							|  |  |  |                 $aNumFmts[ $style->getNumberFormat()->getHashCode() ] = $style->getNumberFormat(); | 
					
						
							| 
									
										
										
										
											2013-06-25 22:13:13 +00:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2015-05-11 21:38:52 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-11 21:38:52 +00:00
										 |  |  |         return $aNumFmts; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | } |