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 / Borders.php

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

425 lines 10.9 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_Borders
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_Borders extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable
37 {
38 /* Diagonal directions */
39 const DIAGONAL_NONE = 0;
40 const DIAGONAL_UP = 1;
41 const DIAGONAL_DOWN = 2;
42 const DIAGONAL_BOTH = 3;
43
44 /**
45 * Left
46 *
47 * @var PHPExcel_Style_Border
48 */
49 protected $_left;
50
51 /**
52 * Right
53 *
54 * @var PHPExcel_Style_Border
55 */
56 protected $_right;
57
58 /**
59 * Top
60 *
61 * @var PHPExcel_Style_Border
62 */
63 protected $_top;
64
65 /**
66 * Bottom
67 *
68 * @var PHPExcel_Style_Border
69 */
70 protected $_bottom;
71
72 /**
73 * Diagonal
74 *
75 * @var PHPExcel_Style_Border
76 */
77 protected $_diagonal;
78
79 /**
80 * DiagonalDirection
81 *
82 * @var int
83 */
84 protected $_diagonalDirection;
85
86 /**
87 * All borders psedo-border. Only applies to supervisor.
88 *
89 * @var PHPExcel_Style_Border
90 */
91 protected $_allBorders;
92
93 /**
94 * Outline psedo-border. Only applies to supervisor.
95 *
96 * @var PHPExcel_Style_Border
97 */
98 protected $_outline;
99
100 /**
101 * Inside psedo-border. Only applies to supervisor.
102 *
103 * @var PHPExcel_Style_Border
104 */
105 protected $_inside;
106
107 /**
108 * Vertical pseudo-border. Only applies to supervisor.
109 *
110 * @var PHPExcel_Style_Border
111 */
112 protected $_vertical;
113
114 /**
115 * Horizontal pseudo-border. Only applies to supervisor.
116 *
117 * @var PHPExcel_Style_Border
118 */
119 protected $_horizontal;
120
121 /**
122 * Create a new PHPExcel_Style_Borders
123 *
124 * @param boolean $isSupervisor Flag indicating if this is a supervisor or not
125 * Leave this value at default unless you understand exactly what
126 * its ramifications are
127 * @param boolean $isConditional Flag indicating if this is a conditional style or not
128 * Leave this value at default unless you understand exactly what
129 * its ramifications are
130 */
131 public function __construct($isSupervisor = FALSE, $isConditional = FALSE)
132 {
133 // Supervisor?
134 parent::__construct($isSupervisor);
135
136 // Initialise values
137 $this->_left = new PHPExcel_Style_Border($isSupervisor, $isConditional);
138 $this->_right = new PHPExcel_Style_Border($isSupervisor, $isConditional);
139 $this->_top = new PHPExcel_Style_Border($isSupervisor, $isConditional);
140 $this->_bottom = new PHPExcel_Style_Border($isSupervisor, $isConditional);
141 $this->_diagonal = new PHPExcel_Style_Border($isSupervisor, $isConditional);
142 $this->_diagonalDirection = PHPExcel_Style_Borders::DIAGONAL_NONE;
143
144 // Specially for supervisor
145 if ($isSupervisor) {
146 // Initialize pseudo-borders
147 $this->_allBorders = new PHPExcel_Style_Border(TRUE);
148 $this->_outline = new PHPExcel_Style_Border(TRUE);
149 $this->_inside = new PHPExcel_Style_Border(TRUE);
150 $this->_vertical = new PHPExcel_Style_Border(TRUE);
151 $this->_horizontal = new PHPExcel_Style_Border(TRUE);
152
153 // bind parent if we are a supervisor
154 $this->_left->bindParent($this, '_left');
155 $this->_right->bindParent($this, '_right');
156 $this->_top->bindParent($this, '_top');
157 $this->_bottom->bindParent($this, '_bottom');
158 $this->_diagonal->bindParent($this, '_diagonal');
159 $this->_allBorders->bindParent($this, '_allBorders');
160 $this->_outline->bindParent($this, '_outline');
161 $this->_inside->bindParent($this, '_inside');
162 $this->_vertical->bindParent($this, '_vertical');
163 $this->_horizontal->bindParent($this, '_horizontal');
164 }
165 }
166
167 /**
168 * Get the shared style component for the currently active cell in currently active sheet.
169 * Only used for style supervisor
170 *
171 * @return PHPExcel_Style_Borders
172 */
173 public function getSharedComponent()
174 {
175 return $this->_parent->getSharedComponent()->getBorders();
176 }
177
178 /**
179 * Build style array from subcomponents
180 *
181 * @param array $array
182 * @return array
183 */
184 public function getStyleArray($array)
185 {
186 return array('borders' => $array);
187 }
188
189 /**
190 * Apply styles from array
191 *
192 * <code>
193 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray(
194 * array(
195 * 'bottom' => array(
196 * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT,
197 * 'color' => array(
198 * 'rgb' => '808080'
199 * )
200 * ),
201 * 'top' => array(
202 * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT,
203 * 'color' => array(
204 * 'rgb' => '808080'
205 * )
206 * )
207 * )
208 * );
209 * </code>
210 * <code>
211 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray(
212 * array(
213 * 'allborders' => array(
214 * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT,
215 * 'color' => array(
216 * 'rgb' => '808080'
217 * )
218 * )
219 * )
220 * );
221 * </code>
222 *
223 * @param array $pStyles Array containing style information
224 * @throws PHPExcel_Exception
225 * @return PHPExcel_Style_Borders
226 */
227 public function applyFromArray($pStyles = null) {
228 if (is_array($pStyles)) {
229 if ($this->_isSupervisor) {
230 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
231 } else {
232 if (array_key_exists('left', $pStyles)) {
233 $this->getLeft()->applyFromArray($pStyles['left']);
234 }
235 if (array_key_exists('right', $pStyles)) {
236 $this->getRight()->applyFromArray($pStyles['right']);
237 }
238 if (array_key_exists('top', $pStyles)) {
239 $this->getTop()->applyFromArray($pStyles['top']);
240 }
241 if (array_key_exists('bottom', $pStyles)) {
242 $this->getBottom()->applyFromArray($pStyles['bottom']);
243 }
244 if (array_key_exists('diagonal', $pStyles)) {
245 $this->getDiagonal()->applyFromArray($pStyles['diagonal']);
246 }
247 if (array_key_exists('diagonaldirection', $pStyles)) {
248 $this->setDiagonalDirection($pStyles['diagonaldirection']);
249 }
250 if (array_key_exists('allborders', $pStyles)) {
251 $this->getLeft()->applyFromArray($pStyles['allborders']);
252 $this->getRight()->applyFromArray($pStyles['allborders']);
253 $this->getTop()->applyFromArray($pStyles['allborders']);
254 $this->getBottom()->applyFromArray($pStyles['allborders']);
255 }
256 }
257 } else {
258 throw new PHPExcel_Exception("Invalid style array passed.");
259 }
260 return $this;
261 }
262
263 /**
264 * Get Left
265 *
266 * @return PHPExcel_Style_Border
267 */
268 public function getLeft() {
269 return $this->_left;
270 }
271
272 /**
273 * Get Right
274 *
275 * @return PHPExcel_Style_Border
276 */
277 public function getRight() {
278 return $this->_right;
279 }
280
281 /**
282 * Get Top
283 *
284 * @return PHPExcel_Style_Border
285 */
286 public function getTop() {
287 return $this->_top;
288 }
289
290 /**
291 * Get Bottom
292 *
293 * @return PHPExcel_Style_Border
294 */
295 public function getBottom() {
296 return $this->_bottom;
297 }
298
299 /**
300 * Get Diagonal
301 *
302 * @return PHPExcel_Style_Border
303 */
304 public function getDiagonal() {
305 return $this->_diagonal;
306 }
307
308 /**
309 * Get AllBorders (pseudo-border). Only applies to supervisor.
310 *
311 * @return PHPExcel_Style_Border
312 * @throws PHPExcel_Exception
313 */
314 public function getAllBorders() {
315 if (!$this->_isSupervisor) {
316 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.');
317 }
318 return $this->_allBorders;
319 }
320
321 /**
322 * Get Outline (pseudo-border). Only applies to supervisor.
323 *
324 * @return boolean
325 * @throws PHPExcel_Exception
326 */
327 public function getOutline() {
328 if (!$this->_isSupervisor) {
329 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.');
330 }
331 return $this->_outline;
332 }
333
334 /**
335 * Get Inside (pseudo-border). Only applies to supervisor.
336 *
337 * @return boolean
338 * @throws PHPExcel_Exception
339 */
340 public function getInside() {
341 if (!$this->_isSupervisor) {
342 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.');
343 }
344 return $this->_inside;
345 }
346
347 /**
348 * Get Vertical (pseudo-border). Only applies to supervisor.
349 *
350 * @return PHPExcel_Style_Border
351 * @throws PHPExcel_Exception
352 */
353 public function getVertical() {
354 if (!$this->_isSupervisor) {
355 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.');
356 }
357 return $this->_vertical;
358 }
359
360 /**
361 * Get Horizontal (pseudo-border). Only applies to supervisor.
362 *
363 * @return PHPExcel_Style_Border
364 * @throws PHPExcel_Exception
365 */
366 public function getHorizontal() {
367 if (!$this->_isSupervisor) {
368 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.');
369 }
370 return $this->_horizontal;
371 }
372
373 /**
374 * Get DiagonalDirection
375 *
376 * @return int
377 */
378 public function getDiagonalDirection() {
379 if ($this->_isSupervisor) {
380 return $this->getSharedComponent()->getDiagonalDirection();
381 }
382 return $this->_diagonalDirection;
383 }
384
385 /**
386 * Set DiagonalDirection
387 *
388 * @param int $pValue
389 * @return PHPExcel_Style_Borders
390 */
391 public function setDiagonalDirection($pValue = PHPExcel_Style_Borders::DIAGONAL_NONE) {
392 if ($pValue == '') {
393 $pValue = PHPExcel_Style_Borders::DIAGONAL_NONE;
394 }
395 if ($this->_isSupervisor) {
396 $styleArray = $this->getStyleArray(array('diagonaldirection' => $pValue));
397 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
398 } else {
399 $this->_diagonalDirection = $pValue;
400 }
401 return $this;
402 }
403
404 /**
405 * Get hash code
406 *
407 * @return string Hash code
408 */
409 public function getHashCode() {
410 if ($this->_isSupervisor) {
411 return $this->getSharedComponent()->getHashcode();
412 }
413 return md5(
414 $this->getLeft()->getHashCode()
415 . $this->getRight()->getHashCode()
416 . $this->getTop()->getHashCode()
417 . $this->getBottom()->getHashCode()
418 . $this->getDiagonal()->getHashCode()
419 . $this->getDiagonalDirection()
420 . __CLASS__
421 );
422 }
423
424 }
425