Example #1
0
 /**
  * Write Cell
  *
  * @param	PHPExcel_Shared_XMLWriter	$objWriter				XML Writer
  * @param	PHPExcel_Worksheet			$pSheet					Worksheet
  * @param	PHPExcel_Cell				$pCell					Cell
  * @param	string[]					$pStringTable			String table
  * @param	string[]					$pFlippedStringTable	String table (flipped), for faster index searching
  * @throws	Exception
  */
 private function _writeCell(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, PHPExcel_Cell $pCell = null, $pStringTable = null, $pFlippedStringTable = null)
 {
     if (is_array($pStringTable) && is_array($pFlippedStringTable)) {
         // Cell
         $objWriter->startElement('c');
         $objWriter->writeAttribute('r', $pCell->getCoordinate());
         // Sheet styles
         if ($pCell->getXfIndex() != '') {
             $objWriter->writeAttribute('s', $pCell->getXfIndex());
         }
         // If cell value is supplied, write cell value
         if (is_object($pCell->getValue()) || $pCell->getValue() !== '') {
             // Map type
             $mappedType = $pCell->getDataType();
             // Write data type depending on its type
             switch (strtolower($mappedType)) {
                 case 'inlinestr':
                     // Inline string
                     $objWriter->writeAttribute('t', $mappedType);
                     break;
                 case 's':
                     // String
                     $objWriter->writeAttribute('t', $mappedType);
                     break;
                 case 'b':
                     // Boolean
                     $objWriter->writeAttribute('t', $mappedType);
                     break;
                 case 'f':
                     // Formula
                     $calculatedValue = null;
                     if ($this->getParentWriter()->getPreCalculateFormulas()) {
                         $calculatedValue = $pCell->getCalculatedValue();
                     } else {
                         $calculatedValue = $pCell->getValue();
                     }
                     if (is_string($calculatedValue)) {
                         $objWriter->writeAttribute('t', 'str');
                     }
                     break;
                 case 'e':
                     // Error
                     $objWriter->writeAttribute('t', $mappedType);
             }
             // Write data depending on its type
             switch (strtolower($mappedType)) {
                 case 'inlinestr':
                     // Inline string
                     if (!$pCell->getValue() instanceof PHPExcel_RichText) {
                         $objWriter->writeElement('t', PHPExcel_Shared_String::ControlCharacterPHP2OOXML(htmlspecialchars($pCell->getValue())));
                     } else {
                         if ($pCell->getValue() instanceof PHPExcel_RichText) {
                             $objWriter->startElement('is');
                             $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $pCell->getValue());
                             $objWriter->endElement();
                         }
                     }
                     break;
                 case 's':
                     // String
                     if (!$pCell->getValue() instanceof PHPExcel_RichText) {
                         if (isset($pFlippedStringTable[$pCell->getValue()])) {
                             $objWriter->writeElement('v', $pFlippedStringTable[$pCell->getValue()]);
                         }
                     } else {
                         if ($pCell->getValue() instanceof PHPExcel_RichText) {
                             $objWriter->writeElement('v', $pFlippedStringTable[$pCell->getValue()->getHashCode()]);
                         }
                     }
                     break;
                 case 'f':
                     // Formula
                     $objWriter->writeElement('f', substr($pCell->getValue(), 1));
                     if ($this->getParentWriter()->getOffice2003Compatibility() === false) {
                         if ($this->getParentWriter()->getPreCalculateFormulas()) {
                             $calculatedValue = $pCell->getCalculatedValue();
                             if (!is_array($calculatedValue) && substr($calculatedValue, 0, 1) != '#') {
                                 $v = PHPExcel_Shared_String::FormatNumber($calculatedValue);
                                 $objWriter->writeElement('v', $v);
                             } else {
                                 $objWriter->writeElement('v', '0');
                             }
                         } else {
                             $objWriter->writeElement('v', '0');
                         }
                     }
                     break;
                 case 'n':
                     // Numeric
                     // force point as decimal separator in case current locale uses comma
                     $v = str_replace(',', '.', $pCell->getValue());
                     $objWriter->writeElement('v', $v);
                     break;
                 case 'b':
                     // Boolean
                     $objWriter->writeElement('v', $pCell->getValue() ? '1' : '0');
                     break;
                 case 'e':
                     // Error
                     if (substr($pCell->getValue(), 0, 1) == '=') {
                         $objWriter->writeElement('f', substr($pCell->getValue(), 1));
                         $objWriter->writeElement('v', substr($pCell->getValue(), 1));
                     } else {
                         $objWriter->writeElement('v', $pCell->getValue());
                     }
                     break;
             }
         }
         $objWriter->endElement();
     } else {
         throw new Exception("Invalid parameters passed.");
     }
 }
Example #2
0
 /**
  * Write Value Axis
  *
  * @param 	PHPExcel_Shared_XMLWriter 	$objWriter 		XML Writer
  * @param 	PHPExcel_Chart_PlotArea		$plotArea
  * @param 	PHPExcel_Chart_Title		$yAxisLabel
  * @param 	string						$groupType		Chart type
  * @param 	string						$id1
  * @param 	string						$id2
  * @param 	boolean						$isMultiLevelSeries
  * @throws 	PHPExcel_Writer_Exception
  */
 private function _writeValAx($objWriter, PHPExcel_Chart_PlotArea $plotArea, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries)
 {
     $objWriter->startElement('c:valAx');
     if ($id2 > 0) {
         $objWriter->startElement('c:axId');
         $objWriter->writeAttribute('val', $id2);
         $objWriter->endElement();
     }
     $objWriter->startElement('c:scaling');
     $objWriter->startElement('c:orientation');
     $objWriter->writeAttribute('val', "minMax");
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->startElement('c:delete');
     $objWriter->writeAttribute('val', 0);
     $objWriter->endElement();
     $objWriter->startElement('c:axPos');
     $objWriter->writeAttribute('val', "l");
     $objWriter->endElement();
     $objWriter->startElement('c:majorGridlines');
     $objWriter->endElement();
     if (!is_null($yAxisLabel)) {
         $objWriter->startElement('c:title');
         $objWriter->startElement('c:tx');
         $objWriter->startElement('c:rich');
         $objWriter->startElement('a:bodyPr');
         $objWriter->endElement();
         $objWriter->startElement('a:lstStyle');
         $objWriter->endElement();
         $objWriter->startElement('a:p');
         $objWriter->startElement('a:r');
         $caption = $yAxisLabel->getCaption();
         if (is_array($caption)) {
             $caption = $caption[0];
         }
         $objWriter->startElement('a:t');
         //										$objWriter->writeAttribute('xml:space', 'preserve');
         $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML($caption));
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
         if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) {
             $layout = $yAxisLabel->getLayout();
             $this->_writeLayout($layout, $objWriter);
         }
         $objWriter->startElement('c:overlay');
         $objWriter->writeAttribute('val', 0);
         $objWriter->endElement();
         $objWriter->endElement();
     }
     $objWriter->startElement('c:numFmt');
     $objWriter->writeAttribute('formatCode', "General");
     $objWriter->writeAttribute('sourceLinked', 1);
     $objWriter->endElement();
     $objWriter->startElement('c:majorTickMark');
     $objWriter->writeAttribute('val', "out");
     $objWriter->endElement();
     $objWriter->startElement('c:minorTickMark');
     $objWriter->writeAttribute('val', "none");
     $objWriter->endElement();
     $objWriter->startElement('c:tickLblPos');
     $objWriter->writeAttribute('val', "nextTo");
     $objWriter->endElement();
     if ($id1 > 0) {
         $objWriter->startElement('c:crossAx');
         $objWriter->writeAttribute('val', $id2);
         $objWriter->endElement();
         $objWriter->startElement('c:crosses');
         $objWriter->writeAttribute('val', "autoZero");
         $objWriter->endElement();
         $objWriter->startElement('c:crossBetween');
         $objWriter->writeAttribute('val', "midCat");
         $objWriter->endElement();
     }
     if ($isMultiLevelSeries) {
         if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) {
             $objWriter->startElement('c:noMultiLvlLbl');
             $objWriter->writeAttribute('val', 0);
             $objWriter->endElement();
         }
     }
     $objWriter->endElement();
 }
Example #3
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();
     }
 }
 /**
  * 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 #5
0
 /**
  * Write Value Axis
  *
  * @param  PHPExcel_Shared_XMLWriter $objWriter XML Writer
  * @param  PHPExcel_Chart_PlotArea $plotArea
  * @param  PHPExcel_Chart_Title $yAxisLabel
  * @param  string $groupType Chart type
  * @param  string $id1
  * @param  string $id2
  * @param  boolean $isMultiLevelSeries
  *
  * @throws  PHPExcel_Writer_Exception
  */
 private function writeValueAxis($objWriter, PHPExcel_Chart_PlotArea $plotArea, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, $xAxis, $yAxis, $majorGridlines, $minorGridlines)
 {
     $objWriter->startElement('c:valAx');
     if ($id2 > 0) {
         $objWriter->startElement('c:axId');
         $objWriter->writeAttribute('val', $id2);
         $objWriter->endElement();
     }
     $objWriter->startElement('c:scaling');
     if (!is_null($xAxis->getAxisOptionsProperty('maximum'))) {
         $objWriter->startElement('c:max');
         $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('maximum'));
         $objWriter->endElement();
     }
     if (!is_null($xAxis->getAxisOptionsProperty('minimum'))) {
         $objWriter->startElement('c:min');
         $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minimum'));
         $objWriter->endElement();
     }
     $objWriter->startElement('c:orientation');
     $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('orientation'));
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->startElement('c:delete');
     $objWriter->writeAttribute('val', 0);
     $objWriter->endElement();
     $objWriter->startElement('c:axPos');
     $objWriter->writeAttribute('val', "l");
     $objWriter->endElement();
     $objWriter->startElement('c:majorGridlines');
     $objWriter->startElement('c:spPr');
     if (!is_null($majorGridlines->getLineColorProperty('value'))) {
         $objWriter->startElement('a:ln');
         $objWriter->writeAttribute('w', $majorGridlines->getLineStyleProperty('width'));
         $objWriter->startElement('a:solidFill');
         $objWriter->startElement("a:{$majorGridlines->getLineColorProperty('type')}");
         $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('value'));
         $objWriter->startElement('a:alpha');
         $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('alpha'));
         $objWriter->endElement();
         //end alpha
         $objWriter->endElement();
         //end srgbClr
         $objWriter->endElement();
         //end solidFill
         $objWriter->startElement('a:prstDash');
         $objWriter->writeAttribute('val', $majorGridlines->getLineStyleProperty('dash'));
         $objWriter->endElement();
         if ($majorGridlines->getLineStyleProperty('join') == 'miter') {
             $objWriter->startElement('a:miter');
             $objWriter->writeAttribute('lim', '800000');
             $objWriter->endElement();
         } else {
             $objWriter->startElement('a:bevel');
             $objWriter->endElement();
         }
         if (!is_null($majorGridlines->getLineStyleProperty(array('arrow', 'head', 'type')))) {
             $objWriter->startElement('a:headEnd');
             $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(array('arrow', 'head', 'type')));
             $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('head', 'w'));
             $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('head', 'len'));
             $objWriter->endElement();
         }
         if (!is_null($majorGridlines->getLineStyleProperty(array('arrow', 'end', 'type')))) {
             $objWriter->startElement('a:tailEnd');
             $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(array('arrow', 'end', 'type')));
             $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('end', 'w'));
             $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('end', 'len'));
             $objWriter->endElement();
         }
         $objWriter->endElement();
         //end ln
     }
     $objWriter->startElement('a:effectLst');
     if (!is_null($majorGridlines->getGlowSize())) {
         $objWriter->startElement('a:glow');
         $objWriter->writeAttribute('rad', $majorGridlines->getGlowSize());
         $objWriter->startElement("a:{$majorGridlines->getGlowColor('type')}");
         $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('value'));
         $objWriter->startElement('a:alpha');
         $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('alpha'));
         $objWriter->endElement();
         //end alpha
         $objWriter->endElement();
         //end schemeClr
         $objWriter->endElement();
         //end glow
     }
     if (!is_null($majorGridlines->getShadowProperty('presets'))) {
         $objWriter->startElement("a:{$majorGridlines->getShadowProperty('effect')}");
         if (!is_null($majorGridlines->getShadowProperty('blur'))) {
             $objWriter->writeAttribute('blurRad', $majorGridlines->getShadowProperty('blur'));
         }
         if (!is_null($majorGridlines->getShadowProperty('distance'))) {
             $objWriter->writeAttribute('dist', $majorGridlines->getShadowProperty('distance'));
         }
         if (!is_null($majorGridlines->getShadowProperty('direction'))) {
             $objWriter->writeAttribute('dir', $majorGridlines->getShadowProperty('direction'));
         }
         if (!is_null($majorGridlines->getShadowProperty('algn'))) {
             $objWriter->writeAttribute('algn', $majorGridlines->getShadowProperty('algn'));
         }
         if (!is_null($majorGridlines->getShadowProperty(array('size', 'sx')))) {
             $objWriter->writeAttribute('sx', $majorGridlines->getShadowProperty(array('size', 'sx')));
         }
         if (!is_null($majorGridlines->getShadowProperty(array('size', 'sy')))) {
             $objWriter->writeAttribute('sy', $majorGridlines->getShadowProperty(array('size', 'sy')));
         }
         if (!is_null($majorGridlines->getShadowProperty(array('size', 'kx')))) {
             $objWriter->writeAttribute('kx', $majorGridlines->getShadowProperty(array('size', 'kx')));
         }
         if (!is_null($majorGridlines->getShadowProperty('rotWithShape'))) {
             $objWriter->writeAttribute('rotWithShape', $majorGridlines->getShadowProperty('rotWithShape'));
         }
         $objWriter->startElement("a:{$majorGridlines->getShadowProperty(array('color', 'type'))}");
         $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(array('color', 'value')));
         $objWriter->startElement('a:alpha');
         $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(array('color', 'alpha')));
         $objWriter->endElement();
         //end alpha
         $objWriter->endElement();
         //end color:type
         $objWriter->endElement();
         //end shadow
     }
     if (!is_null($majorGridlines->getSoftEdgesSize())) {
         $objWriter->startElement('a:softEdge');
         $objWriter->writeAttribute('rad', $majorGridlines->getSoftEdgesSize());
         $objWriter->endElement();
         //end softEdge
     }
     $objWriter->endElement();
     //end effectLst
     $objWriter->endElement();
     //end spPr
     $objWriter->endElement();
     //end majorGridLines
     if ($minorGridlines->getObjectState()) {
         $objWriter->startElement('c:minorGridlines');
         $objWriter->startElement('c:spPr');
         if (!is_null($minorGridlines->getLineColorProperty('value'))) {
             $objWriter->startElement('a:ln');
             $objWriter->writeAttribute('w', $minorGridlines->getLineStyleProperty('width'));
             $objWriter->startElement('a:solidFill');
             $objWriter->startElement("a:{$minorGridlines->getLineColorProperty('type')}");
             $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('value'));
             $objWriter->startElement('a:alpha');
             $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('alpha'));
             $objWriter->endElement();
             //end alpha
             $objWriter->endElement();
             //end srgbClr
             $objWriter->endElement();
             //end solidFill
             $objWriter->startElement('a:prstDash');
             $objWriter->writeAttribute('val', $minorGridlines->getLineStyleProperty('dash'));
             $objWriter->endElement();
             if ($minorGridlines->getLineStyleProperty('join') == 'miter') {
                 $objWriter->startElement('a:miter');
                 $objWriter->writeAttribute('lim', '800000');
                 $objWriter->endElement();
             } else {
                 $objWriter->startElement('a:bevel');
                 $objWriter->endElement();
             }
             if (!is_null($minorGridlines->getLineStyleProperty(array('arrow', 'head', 'type')))) {
                 $objWriter->startElement('a:headEnd');
                 $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(array('arrow', 'head', 'type')));
                 $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('head', 'w'));
                 $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('head', 'len'));
                 $objWriter->endElement();
             }
             if (!is_null($minorGridlines->getLineStyleProperty(array('arrow', 'end', 'type')))) {
                 $objWriter->startElement('a:tailEnd');
                 $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(array('arrow', 'end', 'type')));
                 $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('end', 'w'));
                 $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('end', 'len'));
                 $objWriter->endElement();
             }
             $objWriter->endElement();
             //end ln
         }
         $objWriter->startElement('a:effectLst');
         if (!is_null($minorGridlines->getGlowSize())) {
             $objWriter->startElement('a:glow');
             $objWriter->writeAttribute('rad', $minorGridlines->getGlowSize());
             $objWriter->startElement("a:{$minorGridlines->getGlowColor('type')}");
             $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('value'));
             $objWriter->startElement('a:alpha');
             $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('alpha'));
             $objWriter->endElement();
             //end alpha
             $objWriter->endElement();
             //end schemeClr
             $objWriter->endElement();
             //end glow
         }
         if (!is_null($minorGridlines->getShadowProperty('presets'))) {
             $objWriter->startElement("a:{$minorGridlines->getShadowProperty('effect')}");
             if (!is_null($minorGridlines->getShadowProperty('blur'))) {
                 $objWriter->writeAttribute('blurRad', $minorGridlines->getShadowProperty('blur'));
             }
             if (!is_null($minorGridlines->getShadowProperty('distance'))) {
                 $objWriter->writeAttribute('dist', $minorGridlines->getShadowProperty('distance'));
             }
             if (!is_null($minorGridlines->getShadowProperty('direction'))) {
                 $objWriter->writeAttribute('dir', $minorGridlines->getShadowProperty('direction'));
             }
             if (!is_null($minorGridlines->getShadowProperty('algn'))) {
                 $objWriter->writeAttribute('algn', $minorGridlines->getShadowProperty('algn'));
             }
             if (!is_null($minorGridlines->getShadowProperty(array('size', 'sx')))) {
                 $objWriter->writeAttribute('sx', $minorGridlines->getShadowProperty(array('size', 'sx')));
             }
             if (!is_null($minorGridlines->getShadowProperty(array('size', 'sy')))) {
                 $objWriter->writeAttribute('sy', $minorGridlines->getShadowProperty(array('size', 'sy')));
             }
             if (!is_null($minorGridlines->getShadowProperty(array('size', 'kx')))) {
                 $objWriter->writeAttribute('kx', $minorGridlines->getShadowProperty(array('size', 'kx')));
             }
             if (!is_null($minorGridlines->getShadowProperty('rotWithShape'))) {
                 $objWriter->writeAttribute('rotWithShape', $minorGridlines->getShadowProperty('rotWithShape'));
             }
             $objWriter->startElement("a:{$minorGridlines->getShadowProperty(array('color', 'type'))}");
             $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(array('color', 'value')));
             $objWriter->startElement('a:alpha');
             $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(array('color', 'alpha')));
             $objWriter->endElement();
             //end alpha
             $objWriter->endElement();
             //end color:type
             $objWriter->endElement();
             //end shadow
         }
         if (!is_null($minorGridlines->getSoftEdgesSize())) {
             $objWriter->startElement('a:softEdge');
             $objWriter->writeAttribute('rad', $minorGridlines->getSoftEdgesSize());
             $objWriter->endElement();
             //end softEdge
         }
         $objWriter->endElement();
         //end effectLst
         $objWriter->endElement();
         //end spPr
         $objWriter->endElement();
         //end minorGridLines
     }
     if (!is_null($yAxisLabel)) {
         $objWriter->startElement('c:title');
         $objWriter->startElement('c:tx');
         $objWriter->startElement('c:rich');
         $objWriter->startElement('a:bodyPr');
         $objWriter->endElement();
         $objWriter->startElement('a:lstStyle');
         $objWriter->endElement();
         $objWriter->startElement('a:p');
         $objWriter->startElement('a:r');
         $caption = $yAxisLabel->getCaption();
         if (is_array($caption)) {
             $caption = $caption[0];
         }
         $objWriter->startElement('a:t');
         //                                        $objWriter->writeAttribute('xml:space', 'preserve');
         $objWriter->writeRawData(PHPExcel_Shared_String::ControlCharacterPHP2OOXML($caption));
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
         if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) {
             $layout = $yAxisLabel->getLayout();
             $this->writeLayout($layout, $objWriter);
         }
         $objWriter->startElement('c:overlay');
         $objWriter->writeAttribute('val', 0);
         $objWriter->endElement();
         $objWriter->endElement();
     }
     $objWriter->startElement('c:numFmt');
     $objWriter->writeAttribute('formatCode', $xAxis->getAxisNumberFormat());
     $objWriter->writeAttribute('sourceLinked', $xAxis->getAxisNumberSourceLinked());
     $objWriter->endElement();
     $objWriter->startElement('c:majorTickMark');
     $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_tick_mark'));
     $objWriter->endElement();
     $objWriter->startElement('c:minorTickMark');
     $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_tick_mark'));
     $objWriter->endElement();
     $objWriter->startElement('c:tickLblPos');
     $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('axis_labels'));
     $objWriter->endElement();
     $objWriter->startElement('c:spPr');
     if (!is_null($xAxis->getFillProperty('value'))) {
         $objWriter->startElement('a:solidFill');
         $objWriter->startElement("a:" . $xAxis->getFillProperty('type'));
         $objWriter->writeAttribute('val', $xAxis->getFillProperty('value'));
         $objWriter->startElement('a:alpha');
         $objWriter->writeAttribute('val', $xAxis->getFillProperty('alpha'));
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
     }
     $objWriter->startElement('a:ln');
     $objWriter->writeAttribute('w', $xAxis->getLineStyleProperty('width'));
     $objWriter->writeAttribute('cap', $xAxis->getLineStyleProperty('cap'));
     $objWriter->writeAttribute('cmpd', $xAxis->getLineStyleProperty('compound'));
     if (!is_null($xAxis->getLineProperty('value'))) {
         $objWriter->startElement('a:solidFill');
         $objWriter->startElement("a:" . $xAxis->getLineProperty('type'));
         $objWriter->writeAttribute('val', $xAxis->getLineProperty('value'));
         $objWriter->startElement('a:alpha');
         $objWriter->writeAttribute('val', $xAxis->getLineProperty('alpha'));
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
     }
     $objWriter->startElement('a:prstDash');
     $objWriter->writeAttribute('val', $xAxis->getLineStyleProperty('dash'));
     $objWriter->endElement();
     if ($xAxis->getLineStyleProperty('join') == 'miter') {
         $objWriter->startElement('a:miter');
         $objWriter->writeAttribute('lim', '800000');
         $objWriter->endElement();
     } else {
         $objWriter->startElement('a:bevel');
         $objWriter->endElement();
     }
     if (!is_null($xAxis->getLineStyleProperty(array('arrow', 'head', 'type')))) {
         $objWriter->startElement('a:headEnd');
         $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(array('arrow', 'head', 'type')));
         $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('head'));
         $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('head'));
         $objWriter->endElement();
     }
     if (!is_null($xAxis->getLineStyleProperty(array('arrow', 'end', 'type')))) {
         $objWriter->startElement('a:tailEnd');
         $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(array('arrow', 'end', 'type')));
         $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('end'));
         $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('end'));
         $objWriter->endElement();
     }
     $objWriter->endElement();
     $objWriter->startElement('a:effectLst');
     if (!is_null($xAxis->getGlowProperty('size'))) {
         $objWriter->startElement('a:glow');
         $objWriter->writeAttribute('rad', $xAxis->getGlowProperty('size'));
         $objWriter->startElement("a:{$xAxis->getGlowProperty(array('color', 'type'))}");
         $objWriter->writeAttribute('val', $xAxis->getGlowProperty(array('color', 'value')));
         $objWriter->startElement('a:alpha');
         $objWriter->writeAttribute('val', $xAxis->getGlowProperty(array('color', 'alpha')));
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
     }
     if (!is_null($xAxis->getShadowProperty('presets'))) {
         $objWriter->startElement("a:{$xAxis->getShadowProperty('effect')}");
         if (!is_null($xAxis->getShadowProperty('blur'))) {
             $objWriter->writeAttribute('blurRad', $xAxis->getShadowProperty('blur'));
         }
         if (!is_null($xAxis->getShadowProperty('distance'))) {
             $objWriter->writeAttribute('dist', $xAxis->getShadowProperty('distance'));
         }
         if (!is_null($xAxis->getShadowProperty('direction'))) {
             $objWriter->writeAttribute('dir', $xAxis->getShadowProperty('direction'));
         }
         if (!is_null($xAxis->getShadowProperty('algn'))) {
             $objWriter->writeAttribute('algn', $xAxis->getShadowProperty('algn'));
         }
         if (!is_null($xAxis->getShadowProperty(array('size', 'sx')))) {
             $objWriter->writeAttribute('sx', $xAxis->getShadowProperty(array('size', 'sx')));
         }
         if (!is_null($xAxis->getShadowProperty(array('size', 'sy')))) {
             $objWriter->writeAttribute('sy', $xAxis->getShadowProperty(array('size', 'sy')));
         }
         if (!is_null($xAxis->getShadowProperty(array('size', 'kx')))) {
             $objWriter->writeAttribute('kx', $xAxis->getShadowProperty(array('size', 'kx')));
         }
         if (!is_null($xAxis->getShadowProperty('rotWithShape'))) {
             $objWriter->writeAttribute('rotWithShape', $xAxis->getShadowProperty('rotWithShape'));
         }
         $objWriter->startElement("a:{$xAxis->getShadowProperty(array('color', 'type'))}");
         $objWriter->writeAttribute('val', $xAxis->getShadowProperty(array('color', 'value')));
         $objWriter->startElement('a:alpha');
         $objWriter->writeAttribute('val', $xAxis->getShadowProperty(array('color', 'alpha')));
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
     }
     if (!is_null($xAxis->getSoftEdgesSize())) {
         $objWriter->startElement('a:softEdge');
         $objWriter->writeAttribute('rad', $xAxis->getSoftEdgesSize());
         $objWriter->endElement();
     }
     $objWriter->endElement();
     //effectList
     $objWriter->endElement();
     //end spPr
     if ($id1 > 0) {
         $objWriter->startElement('c:crossAx');
         $objWriter->writeAttribute('val', $id2);
         $objWriter->endElement();
         if (!is_null($xAxis->getAxisOptionsProperty('horizontal_crosses_value'))) {
             $objWriter->startElement('c:crossesAt');
             $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses_value'));
             $objWriter->endElement();
         } else {
             $objWriter->startElement('c:crosses');
             $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses'));
             $objWriter->endElement();
         }
         $objWriter->startElement('c:crossBetween');
         $objWriter->writeAttribute('val', "midCat");
         $objWriter->endElement();
         if (!is_null($xAxis->getAxisOptionsProperty('major_unit'))) {
             $objWriter->startElement('c:majorUnit');
             $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_unit'));
             $objWriter->endElement();
         }
         if (!is_null($xAxis->getAxisOptionsProperty('minor_unit'))) {
             $objWriter->startElement('c:minorUnit');
             $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_unit'));
             $objWriter->endElement();
         }
     }
     if ($isMultiLevelSeries) {
         if ($groupType !== PHPExcel_Chart_DataSeries::TYPE_BUBBLECHART) {
             $objWriter->startElement('c:noMultiLvlLbl');
             $objWriter->writeAttribute('val', 0);
             $objWriter->endElement();
         }
     }
     $objWriter->endElement();
 }
Example #6
-1
 /**
  * Write Cell
  *
  * @param	PHPExcel_Shared_XMLWriter	$objWriter				XML Writer
  * @param	PHPExcel_Worksheet			$pSheet					Worksheet
  * @param	PHPExcel_Cell				$pCell					Cell
  * @param	string[]					$pStringTable			String table
  * @param	string[]					$pFlippedStringTable	String table (flipped), for faster index searching
  * @throws	Exception
  */
 private function _writeCell(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet $pSheet = null, PHPExcel_Cell $pCell = null, $pStringTable = null, $pFlippedStringTable = null)
 {
     if (is_array($pStringTable) && is_array($pFlippedStringTable)) {
         // Cell
         $objWriter->startElement('c');
         $objWriter->writeAttribute('r', $pCell->getCoordinate());
         // Sheet styles
         $aStyles = $pSheet->getStyles();
         if (isset($aStyles[$pCell->getCoordinate()])) {
             $styleIndex = $this->getParentWriter()->getStylesHashTable()->getIndexForHashCode($aStyles[$pCell->getCoordinate()]->getHashCode());
             if ($styleIndex != '') {
                 $objWriter->writeAttribute('s', $styleIndex);
             }
         }
         // If cell value is supplied, write cell value
         if (is_object($pCell->getValue()) || $pCell->getValue() !== '') {
             // Map type
             $mappedType = $pCell->getDataType();
             // Write data type depending on its type
             switch (strtolower($mappedType)) {
                 case 'inlinestr':
                     // Inline string
                     $objWriter->writeAttribute('t', $mappedType);
                     break;
                 case 's':
                     // String
                     $objWriter->writeAttribute('t', $mappedType);
                     break;
                 case 'b':
                     // Boolean
                     $objWriter->writeAttribute('t', $mappedType);
                     break;
                 case 'f':
                     // Formula
                     $calculatedValue = null;
                     if ($this->getParentWriter()->getPreCalculateFormulas()) {
                         $calculatedValue = $pCell->getCalculatedValue();
                     } else {
                         $calculatedValue = $pCell->getValue();
                     }
                     if (is_string($calculatedValue)) {
                         $objWriter->writeAttribute('t', 'str');
                     }
                     break;
             }
             // Write data depending on its type
             switch (strtolower($mappedType)) {
                 case 'inlinestr':
                     // Inline string
                     if (!$pCell->getValue() instanceof PHPExcel_RichText) {
                         $objWriter->writeElement('t', PHPExcel_Shared_String::ControlCharacterPHP2OOXML($pCell->getValue()));
                     } else {
                         if ($pCell->getValue() instanceof PHPExcel_RichText) {
                             $objWriter->startElement('is');
                             $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $pCell->getValue());
                             $objWriter->endElement();
                         }
                     }
                     break;
                 case 's':
                     // String
                     if (!$pCell->getValue() instanceof PHPExcel_RichText) {
                         if (isset($pFlippedStringTable[$pCell->getValue()])) {
                             $objWriter->writeElement('v', $pFlippedStringTable[$pCell->getValue()]);
                         }
                     } else {
                         if ($pCell->getValue() instanceof PHPExcel_RichText) {
                             $objWriter->writeElement('v', $pFlippedStringTable[$pCell->getValue()->getHashCode()]);
                         }
                     }
                     break;
                 case 'f':
                     // Formula
                     $objWriter->writeElement('f', substr($pCell->getValue(), 1));
                     if ($this->getParentWriter()->getOffice2003Compatibility() === false) {
                         if ($this->getParentWriter()->getPreCalculateFormulas()) {
                             $calculatedValue = $pCell->getCalculatedValue();
                             if (substr($calculatedValue, 0, 1) != '#') {
                                 $objWriter->writeElement('v', $calculatedValue);
                             } else {
                                 $objWriter->writeElement('v', '0');
                             }
                         } else {
                             $objWriter->writeElement('v', '0');
                         }
                     }
                     break;
                 case 'n':
                     // Numeric
                     if (PHPExcel_Shared_Date::isDateTime($pCell)) {
                         $dateValue = $pCell->getValue();
                         if (is_string($dateValue)) {
                             //	Error string
                             $objWriter->writeElement('v', $pFlippedStringTable[$dateValue]);
                         } elseif (!is_float($dateValue)) {
                             //	PHP serialized date/time or date/time object
                             $objWriter->writeElement('v', PHPExcel_Shared_Date::PHPToExcel($dateValue));
                         } else {
                             //	Excel serialized date/time
                             $objWriter->writeElement('v', $dateValue);
                         }
                     } else {
                         $objWriter->writeElement('v', $pCell->getValue());
                     }
                     break;
                 case 'b':
                     // Boolean
                     $objWriter->writeElement('v', $pCell->getValue() ? '1' : '0');
                     break;
             }
         }
         $objWriter->endElement();
     } else {
         throw new Exception("Invalid parameters passed.");
     }
 }