/** * Property Begin Bind * * If no PHPExcel_Style_Border has been bound to PHPExcel_Style_Borders then bind this one. Return the actual bound one. * * @return PHPExcel_Style_Border */ private function propertyBeginBind() { if (!isset($this->_parent)) { return $this; } // I am already bound if ($this->_parent->propertyIsBound($this->_parentPropertyName)) { switch ($this->_parentPropertyName) { case "_left": return $this->_parent->getLeft(); case "_right": return $this->_parent->getRight(); case "_top": return $this->_parent->getTop(); case "_bottom": return $this->_parent->getBottom(); case "_diagonal": return $this->_parent->getDiagonal(); case "_vertical": return $this->_parent->getVertical(); case "_horizontal": return $this->_parent->getHorizontal(); } } $this->_parent->propertyCompleteBind($this, $this->_parentPropertyName); // Bind myself $this->_parent = null; return $this; }
/** * Get hash code * * @return string Hash code */ public function getHashCode() { $hashConditionals = ''; foreach ($this->conditionalStyles as $conditional) { $hashConditionals .= $conditional->getHashCode(); } return md5($this->fill->getHashCode() . $this->font->getHashCode() . $this->borders->getHashCode() . $this->alignment->getHashCode() . $this->numberFormat->getHashCode() . $hashConditionals . $this->protection->getHashCode() . ($this->quotePrefix ? 't' : 'f') . __CLASS__); }
/** * Get hash code * * @return string Hash code */ public function getHashCode() { $hashConditionals = ''; foreach ($this->_conditionalStyles as $conditional) { $hashConditionals .= $conditional->getHashCode(); } return md5($this->_fill->getHashCode() . $this->_font->getHashCode() . $this->_borders->getHashCode() . $this->_alignment->getHashCode() . $this->_numberFormat->getHashCode() . $hashConditionals . $this->_protection->getHashCode() . __CLASS__); }
/** * Build style array from subcomponents * * @param array $array * @return array */ public function getStyleArray($array) { switch ($this->_parentPropertyName) { case '_allBorders' : $key = 'allborders'; break; case '_bottom' : $key = 'bottom'; break; case '_diagonal' : $key = 'diagonal'; break; case '_horizontal' : $key = 'horizontal'; break; case '_inside' : $key = 'inside'; break; case '_left' : $key = 'left'; break; case '_outline' : $key = 'outline'; break; case '_right' : $key = 'right'; break; case '_top' : $key = 'top'; break; case '_vertical' : $key = 'vertical'; break; } return $this->_parent->getStyleArray ( array ( $key => $array ) ); }
/** * Create a new PHPExcel_Style * * @param boolean $isSupervisor */ public function __construct($isSupervisor = false) { // Supervisor? $this->_isSupervisor = $isSupervisor; // Initialise values $this->_conditionalStyles = array(); $this->_font = new PHPExcel_Style_Font($isSupervisor); $this->_fill = new PHPExcel_Style_Fill($isSupervisor); $this->_borders = new PHPExcel_Style_Borders($isSupervisor); $this->_alignment = new PHPExcel_Style_Alignment($isSupervisor); $this->_numberFormat = new PHPExcel_Style_NumberFormat($isSupervisor); $this->_protection = new PHPExcel_Style_Protection($isSupervisor); // bind parent if we are a supervisor if ($isSupervisor) { $this->_font->bindParent($this); $this->_fill->bindParent($this); $this->_borders->bindParent($this); $this->_alignment->bindParent($this); $this->_numberFormat->bindParent($this); $this->_protection->bindParent($this); } }
/** * Create CSS style (PHPExcel_Style_Borders) * * @param PHPExcel_Style_Borders $pStyle PHPExcel_Style_Borders * @return array */ private function _createCSSStyleBorders(PHPExcel_Style_Borders $pStyle) { // Construct CSS $css = array(); // Create CSS $css['border-bottom'] = $this->_createCSSStyleBorder($pStyle->getBottom()); $css['border-top'] = $this->_createCSSStyleBorder($pStyle->getTop()); $css['border-left'] = $this->_createCSSStyleBorder($pStyle->getLeft()); $css['border-right'] = $this->_createCSSStyleBorder($pStyle->getRight()); // Return return $css; }
/** * Write Border * * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer * @param PHPExcel_Style_Borders $pBorders Borders style * @throws 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(); }
/** * Get Borders * * @return PHPExcel_Style_Borders */ public function getBorders() { if (isset($this->_borders)) { return $this->_borders; } $property = new PHPExcel_Style_Borders(); $property->propertyPrepareBind($this, "_borders"); return $property; }
/** * Create CSS style (PHPExcel_Style_Borders) * * @param PHPExcel_Style_Borders $pStyle PHPExcel_Style_Borders * @return string */ private function _createCSSStyleBorders(PHPExcel_Style_Borders $pStyle) { // Construct HTML $html = ''; // Create CSS $html .= ' border-bottom: ' . $this->_createCSSStyleBorder($pStyle->getBottom()) . ';' . "\r\n"; $html .= ' border-top: ' . $this->_createCSSStyleBorder($pStyle->getTop()) . ';' . "\r\n"; $html .= ' border-left: ' . $this->_createCSSStyleBorder($pStyle->getLeft()) . ';' . "\r\n"; $html .= ' border-right: ' . $this->_createCSSStyleBorder($pStyle->getRight()) . ';' . "\r\n"; // Return return $html; }
/** * Create CSS style (PHPExcel_Style_Borders) * * @param PHPExcel_Style_Borders $pStyle PHPExcel_Style_Borders * @return string */ private function _createCSSStyleBorders(PHPExcel_Style_Borders $pStyle) { // Construct CSS $css = ''; // Create CSS $css .= 'border-bottom: ' . $this->_createCSSStyleBorder($pStyle->getBottom()) . '; '; $css .= 'border-top: ' . $this->_createCSSStyleBorder($pStyle->getTop()) . '; '; $css .= 'border-left: ' . $this->_createCSSStyleBorder($pStyle->getLeft()) . '; '; $css .= 'border-right: ' . $this->_createCSSStyleBorder($pStyle->getRight()) . '; '; // Return return $css; }