PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.0.3
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.0.3
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
visualizer / vendor / phpoffice / phpexcel / Classes / PHPExcel / Style / Border.php

Border.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.0.3, at vendor/phpoffice/phpexcel/Classes/PHPExcel/Style/Border.php

295 lines 7.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * PHPExcel
4 *
5 * Copyright (c) 2006 - 2014 PHPExcel
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 *
21 * @category PHPExcel
22 * @package PHPExcel_Style
23 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24 * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25 * @version ##VERSION##, ##DATE##
26 */
27
28
29 /**
30 * PHPExcel_Style_Border
31 *
32 * @category PHPExcel
33 * @package PHPExcel_Style
34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36 class PHPExcel_Style_Border extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable
37 {
38 /* Border style */
39 const BORDER_NONE = 'none';
40 const BORDER_DASHDOT = 'dashDot';
41 const BORDER_DASHDOTDOT = 'dashDotDot';
42 const BORDER_DASHED = 'dashed';
43 const BORDER_DOTTED = 'dotted';
44 const BORDER_DOUBLE = 'double';
45 const BORDER_HAIR = 'hair';
46 const BORDER_MEDIUM = 'medium';
47 const BORDER_MEDIUMDASHDOT = 'mediumDashDot';
48 const BORDER_MEDIUMDASHDOTDOT = 'mediumDashDotDot';
49 const BORDER_MEDIUMDASHED = 'mediumDashed';
50 const BORDER_SLANTDASHDOT = 'slantDashDot';
51 const BORDER_THICK = 'thick';
52 const BORDER_THIN = 'thin';
53
54 /**
55 * Border style
56 *
57 * @var string
58 */
59 protected $_borderStyle = PHPExcel_Style_Border::BORDER_NONE;
60
61 /**
62 * Border color
63 *
64 * @var PHPExcel_Style_Color
65 */
66 protected $_color;
67
68 /**
69 * Parent property name
70 *
71 * @var string
72 */
73 protected $_parentPropertyName;
74
75 /**
76 * Create a new PHPExcel_Style_Border
77 *
78 * @param boolean $isSupervisor Flag indicating if this is a supervisor or not
79 * Leave this value at default unless you understand exactly what
80 * its ramifications are
81 * @param boolean $isConditional Flag indicating if this is a conditional style or not
82 * Leave this value at default unless you understand exactly what
83 * its ramifications are
84 */
85 public function __construct($isSupervisor = FALSE, $isConditional = FALSE)
86 {
87 // Supervisor?
88 parent::__construct($isSupervisor);
89
90 // Initialise values
91 $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor);
92
93 // bind parent if we are a supervisor
94 if ($isSupervisor) {
95 $this->_color->bindParent($this, '_color');
96 }
97 }
98
99 /**
100 * Bind parent. Only used for supervisor
101 *
102 * @param PHPExcel_Style_Borders $parent
103 * @param string $parentPropertyName
104 * @return PHPExcel_Style_Border
105 */
106 public function bindParent($parent, $parentPropertyName=NULL)
107 {
108 $this->_parent = $parent;
109 $this->_parentPropertyName = $parentPropertyName;
110 return $this;
111 }
112
113 /**
114 * Get the shared style component for the currently active cell in currently active sheet.
115 * Only used for style supervisor
116 *
117 * @return PHPExcel_Style_Border
118 * @throws PHPExcel_Exception
119 */
120 public function getSharedComponent()
121 {
122 switch ($this->_parentPropertyName) {
123 case '_allBorders':
124 case '_horizontal':
125 case '_inside':
126 case '_outline':
127 case '_vertical':
128 throw new PHPExcel_Exception('Cannot get shared component for a pseudo-border.');
129 break;
130 case '_bottom':
131 return $this->_parent->getSharedComponent()->getBottom(); break;
132 case '_diagonal':
133 return $this->_parent->getSharedComponent()->getDiagonal(); break;
134 case '_left':
135 return $this->_parent->getSharedComponent()->getLeft(); break;
136 case '_right':
137 return $this->_parent->getSharedComponent()->getRight(); break;
138 case '_top':
139 return $this->_parent->getSharedComponent()->getTop(); break;
140
141 }
142 }
143
144 /**
145 * Build style array from subcomponents
146 *
147 * @param array $array
148 * @return array
149 */
150 public function getStyleArray($array)
151 {
152 switch ($this->_parentPropertyName) {
153 case '_allBorders':
154 $key = 'allborders'; break;
155 case '_bottom':
156 $key = 'bottom'; break;
157 case '_diagonal':
158 $key = 'diagonal'; break;
159 case '_horizontal':
160 $key = 'horizontal'; break;
161 case '_inside':
162 $key = 'inside'; break;
163 case '_left':
164 $key = 'left'; break;
165 case '_outline':
166 $key = 'outline'; break;
167 case '_right':
168 $key = 'right'; break;
169 case '_top':
170 $key = 'top'; break;
171 case '_vertical':
172 $key = 'vertical'; break;
173 }
174 return $this->_parent->getStyleArray(array($key => $array));
175 }
176
177 /**
178 * Apply styles from array
179 *
180 * <code>
181 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->getTop()->applyFromArray(
182 * array(
183 * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT,
184 * 'color' => array(
185 * 'rgb' => '808080'
186 * )
187 * )
188 * );
189 * </code>
190 *
191 * @param array $pStyles Array containing style information
192 * @throws PHPExcel_Exception
193 * @return PHPExcel_Style_Border
194 */
195 public function applyFromArray($pStyles = null) {
196 if (is_array($pStyles)) {
197 if ($this->_isSupervisor) {
198 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
199 } else {
200 if (isset($pStyles['style'])) {
201 $this->setBorderStyle($pStyles['style']);
202 }
203 if (isset($pStyles['color'])) {
204 $this->getColor()->applyFromArray($pStyles['color']);
205 }
206 }
207 } else {
208 throw new PHPExcel_Exception("Invalid style array passed.");
209 }
210 return $this;
211 }
212
213 /**
214 * Get Border style
215 *
216 * @return string
217 */
218 public function getBorderStyle() {
219 if ($this->_isSupervisor) {
220 return $this->getSharedComponent()->getBorderStyle();
221 }
222 return $this->_borderStyle;
223 }
224
225 /**
226 * Set Border style
227 *
228 * @param string|boolean $pValue
229 * When passing a boolean, FALSE equates PHPExcel_Style_Border::BORDER_NONE
230 * and TRUE to PHPExcel_Style_Border::BORDER_MEDIUM
231 * @return PHPExcel_Style_Border
232 */
233 public function setBorderStyle($pValue = PHPExcel_Style_Border::BORDER_NONE) {
234
235 if (empty($pValue)) {
236 $pValue = PHPExcel_Style_Border::BORDER_NONE;
237 } elseif(is_bool($pValue) && $pValue) {
238 $pValue = PHPExcel_Style_Border::BORDER_MEDIUM;
239 }
240 if ($this->_isSupervisor) {
241 $styleArray = $this->getStyleArray(array('style' => $pValue));
242 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
243 } else {
244 $this->_borderStyle = $pValue;
245 }
246 return $this;
247 }
248
249 /**
250 * Get Border Color
251 *
252 * @return PHPExcel_Style_Color
253 */
254 public function getColor() {
255 return $this->_color;
256 }
257
258 /**
259 * Set Border Color
260 *
261 * @param PHPExcel_Style_Color $pValue
262 * @throws PHPExcel_Exception
263 * @return PHPExcel_Style_Border
264 */
265 public function setColor(PHPExcel_Style_Color $pValue = null) {
266 // make sure parameter is a real color and not a supervisor
267 $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue;
268
269 if ($this->_isSupervisor) {
270 $styleArray = $this->getColor()->getStyleArray(array('argb' => $color->getARGB()));
271 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
272 } else {
273 $this->_color = $color;
274 }
275 return $this;
276 }
277
278 /**
279 * Get hash code
280 *
281 * @return string Hash code
282 */
283 public function getHashCode() {
284 if ($this->_isSupervisor) {
285 return $this->getSharedComponent()->getHashCode();
286 }
287 return md5(
288 $this->_borderStyle
289 . $this->_color->getHashCode()
290 . __CLASS__
291 );
292 }
293
294 }
295