| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696 | 
							- <?php
 
- /**
 
-  * PHPExcel_Writer_Excel2007_Style
 
-  *
 
-  * Copyright (c) 2006 - 2015 PHPExcel
 
-  *
 
-  * 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
 
-  * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
 
-  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
 
-  * @version    ##VERSION##, ##DATE##
 
-  */
 
- class PHPExcel_Writer_Excel2007_Style extends PHPExcel_Writer_Excel2007_WriterPart
 
- {
 
-     /**
 
-      * 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');
 
-             } elseif ($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()));
 
-         if ($pStyle->getQuotePrefix()) {
 
-             $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();
 
-         } elseif ($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();
 
-             } elseif ($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)
 
-     {
 
-         return $pPHPExcel->getCellXfCollection();
 
-     }
 
-     /**
 
-      * 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();
 
-             }
 
-         }
 
-         return $aNumFmts;
 
-     }
 
- }
 
 
  |