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

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

200 lines 5.1 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_RichText
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_RichText
31 *
32 * @category PHPExcel
33 * @package PHPExcel_RichText
34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36 class PHPExcel_RichText implements PHPExcel_IComparable
37 {
38 /**
39 * Rich text elements
40 *
41 * @var PHPExcel_RichText_ITextElement[]
42 */
43 private $_richTextElements;
44
45 /**
46 * Create a new PHPExcel_RichText instance
47 *
48 * @param PHPExcel_Cell $pCell
49 * @throws PHPExcel_Exception
50 */
51 public function __construct(PHPExcel_Cell $pCell = null)
52 {
53 // Initialise variables
54 $this->_richTextElements = array();
55
56 // Rich-Text string attached to cell?
57 if ($pCell !== NULL) {
58 // Add cell text and style
59 if ($pCell->getValue() != "") {
60 $objRun = new PHPExcel_RichText_Run($pCell->getValue());
61 $objRun->setFont(clone $pCell->getParent()->getStyle($pCell->getCoordinate())->getFont());
62 $this->addText($objRun);
63 }
64
65 // Set parent value
66 $pCell->setValueExplicit($this, PHPExcel_Cell_DataType::TYPE_STRING);
67 }
68 }
69
70 /**
71 * Add text
72 *
73 * @param PHPExcel_RichText_ITextElement $pText Rich text element
74 * @throws PHPExcel_Exception
75 * @return PHPExcel_RichText
76 */
77 public function addText(PHPExcel_RichText_ITextElement $pText = null)
78 {
79 $this->_richTextElements[] = $pText;
80 return $this;
81 }
82
83 /**
84 * Create text
85 *
86 * @param string $pText Text
87 * @return PHPExcel_RichText_TextElement
88 * @throws PHPExcel_Exception
89 */
90 public function createText($pText = '')
91 {
92 $objText = new PHPExcel_RichText_TextElement($pText);
93 $this->addText($objText);
94 return $objText;
95 }
96
97 /**
98 * Create text run
99 *
100 * @param string $pText Text
101 * @return PHPExcel_RichText_Run
102 * @throws PHPExcel_Exception
103 */
104 public function createTextRun($pText = '')
105 {
106 $objText = new PHPExcel_RichText_Run($pText);
107 $this->addText($objText);
108 return $objText;
109 }
110
111 /**
112 * Get plain text
113 *
114 * @return string
115 */
116 public function getPlainText()
117 {
118 // Return value
119 $returnValue = '';
120
121 // Loop through all PHPExcel_RichText_ITextElement
122 foreach ($this->_richTextElements as $text) {
123 $returnValue .= $text->getText();
124 }
125
126 // Return
127 return $returnValue;
128 }
129
130 /**
131 * Convert to string
132 *
133 * @return string
134 */
135 public function __toString()
136 {
137 return $this->getPlainText();
138 }
139
140 /**
141 * Get Rich Text elements
142 *
143 * @return PHPExcel_RichText_ITextElement[]
144 */
145 public function getRichTextElements()
146 {
147 return $this->_richTextElements;
148 }
149
150 /**
151 * Set Rich Text elements
152 *
153 * @param PHPExcel_RichText_ITextElement[] $pElements Array of elements
154 * @throws PHPExcel_Exception
155 * @return PHPExcel_RichText
156 */
157 public function setRichTextElements($pElements = null)
158 {
159 if (is_array($pElements)) {
160 $this->_richTextElements = $pElements;
161 } else {
162 throw new PHPExcel_Exception("Invalid PHPExcel_RichText_ITextElement[] array passed.");
163 }
164 return $this;
165 }
166
167 /**
168 * Get hash code
169 *
170 * @return string Hash code
171 */
172 public function getHashCode()
173 {
174 $hashElements = '';
175 foreach ($this->_richTextElements as $element) {
176 $hashElements .= $element->getHashCode();
177 }
178
179 return md5(
180 $hashElements
181 . __CLASS__
182 );
183 }
184
185 /**
186 * Implement PHP __clone to create a deep clone, not just a shallow copy.
187 */
188 public function __clone()
189 {
190 $vars = get_object_vars($this);
191 foreach ($vars as $key => $value) {
192 if (is_object($value)) {
193 $this->$key = clone $value;
194 } else {
195 $this->$key = $value;
196 }
197 }
198 }
199 }
200