PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.10.7
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.10.7
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 / phpspreadsheet / src / PhpSpreadsheet / NamedRange.php

NamedRange.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.10.7, at vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/NamedRange.php

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