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

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

247 lines 5.7 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
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_NamedRange
31 *
32 * @category PHPExcel
33 * @package PHPExcel
34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36 class PHPExcel_NamedRange
37 {
38 /**
39 * Range name
40 *
41 * @var string
42 */
43 private $_name;
44
45 /**
46 * Worksheet on which the named range can be resolved
47 *
48 * @var PHPExcel_Worksheet
49 */
50 private $_worksheet;
51
52 /**
53 * Range of the referenced cells
54 *
55 * @var string
56 */
57 private $_range;
58
59 /**
60 * Is the named range local? (i.e. can only be used on $this->_worksheet)
61 *
62 * @var bool
63 */
64 private $_localOnly;
65
66 /**
67 * Scope
68 *
69 * @var PHPExcel_Worksheet
70 */
71 private $_scope;
72
73 /**
74 * Create a new NamedRange
75 *
76 * @param string $pName
77 * @param PHPExcel_Worksheet $pWorksheet
78 * @param string $pRange
79 * @param bool $pLocalOnly
80 * @param PHPExcel_Worksheet|null $pScope Scope. Only applies when $pLocalOnly = true. Null for global scope.
81 * @throws PHPExcel_Exception
82 */
83 public function __construct($pName = null, PHPExcel_Worksheet $pWorksheet, $pRange = 'A1', $pLocalOnly = false, $pScope = null)
84 {
85 // Validate data
86 if (($pName === NULL) || ($pWorksheet === NULL) || ($pRange === NULL)) {
87 throw new PHPExcel_Exception('Parameters can not be null.');
88 }
89
90 // Set local members
91 $this->_name = $pName;
92 $this->_worksheet = $pWorksheet;
93 $this->_range = $pRange;
94 $this->_localOnly = $pLocalOnly;
95 $this->_scope = ($pLocalOnly == true) ?
96 (($pScope == null) ? $pWorksheet : $pScope) : null;
97 }
98
99 /**
100 * Get name
101 *
102 * @return string
103 */
104 public function getName() {
105 return $this->_name;
106 }
107
108 /**
109 * Set name
110 *
111 * @param string $value
112 * @return PHPExcel_NamedRange
113 */
114 public function setName($value = null) {
115 if ($value !== NULL) {
116 // Old title
117 $oldTitle = $this->_name;
118
119 // Re-attach
120 if ($this->_worksheet !== NULL) {
121 $this->_worksheet->getParent()->removeNamedRange($this->_name,$this->_worksheet);
122 }
123 $this->_name = $value;
124
125 if ($this->_worksheet !== NULL) {
126 $this->_worksheet->getParent()->addNamedRange($this);
127 }
128
129 // New title
130 $newTitle = $this->_name;
131 PHPExcel_ReferenceHelper::getInstance()->updateNamedFormulas($this->_worksheet->getParent(), $oldTitle, $newTitle);
132 }
133 return $this;
134 }
135
136 /**
137 * Get worksheet
138 *
139 * @return PHPExcel_Worksheet
140 */
141 public function getWorksheet() {
142 return $this->_worksheet;
143 }
144
145 /**
146 * Set worksheet
147 *
148 * @param PHPExcel_Worksheet $value
149 * @return PHPExcel_NamedRange
150 */
151 public function setWorksheet(PHPExcel_Worksheet $value = null) {
152 if ($value !== NULL) {
153 $this->_worksheet = $value;
154 }
155 return $this;
156 }
157
158 /**
159 * Get range
160 *
161 * @return string
162 */
163 public function getRange() {
164 return $this->_range;
165 }
166
167 /**
168 * Set range
169 *
170 * @param string $value
171 * @return PHPExcel_NamedRange
172 */
173 public function setRange($value = null) {
174 if ($value !== NULL) {
175 $this->_range = $value;
176 }
177 return $this;
178 }
179
180 /**
181 * Get localOnly
182 *
183 * @return bool
184 */
185 public function getLocalOnly() {
186 return $this->_localOnly;
187 }
188
189 /**
190 * Set localOnly
191 *
192 * @param bool $value
193 * @return PHPExcel_NamedRange
194 */
195 public function setLocalOnly($value = false) {
196 $this->_localOnly = $value;
197 $this->_scope = $value ? $this->_worksheet : null;
198 return $this;
199 }
200
201 /**
202 * Get scope
203 *
204 * @return PHPExcel_Worksheet|null
205 */
206 public function getScope() {
207 return $this->_scope;
208 }
209
210 /**
211 * Set scope
212 *
213 * @param PHPExcel_Worksheet|null $value
214 * @return PHPExcel_NamedRange
215 */
216 public function setScope(PHPExcel_Worksheet $value = null) {
217 $this->_scope = $value;
218 $this->_localOnly = ($value == null) ? false : true;
219 return $this;
220 }
221
222 /**
223 * Resolve a named range to a regular cell range
224 *
225 * @param string $pNamedRange Named range
226 * @param PHPExcel_Worksheet|null $pSheet Scope. Use null for global scope
227 * @return PHPExcel_NamedRange
228 */
229 public static function resolveRange($pNamedRange = '', PHPExcel_Worksheet $pSheet) {
230 return $pSheet->getParent()->getNamedRange($pNamedRange, $pSheet);
231 }
232
233 /**
234 * Implement PHP __clone to create a deep clone, not just a shallow copy.
235 */
236 public function __clone() {
237 $vars = get_object_vars($this);
238 foreach ($vars as $key => $value) {
239 if (is_object($value)) {
240 $this->$key = clone $value;
241 } else {
242 $this->$key = $value;
243 }
244 }
245 }
246 }
247