See Release Notes
Long Term Support Release
Differences Between: [Versions 310 and 401] [Versions 39 and 401]
1 <?php 2 3 namespace Box\Spout\Common\Entity; 4 5 use Box\Spout\Common\Entity\Style\Style; 6 use Box\Spout\Common\Helper\CellTypeHelper; 7 8 /** 9 * Class Cell 10 */ 11 class Cell 12 { 13 /** 14 * Numeric cell type (whole numbers, fractional numbers, dates) 15 */ 16 const TYPE_NUMERIC = 0; 17 18 /** 19 * String (text) cell type 20 */ 21 const TYPE_STRING = 1; 22 23 /** 24 * Formula cell type 25 * Not used at the moment 26 */ 27 const TYPE_FORMULA = 2; 28 29 /** 30 * Empty cell type 31 */ 32 const TYPE_EMPTY = 3; 33 34 /** 35 * Boolean cell type 36 */ 37 const TYPE_BOOLEAN = 4; 38 39 /** 40 * Date cell type 41 */ 42 const TYPE_DATE = 5; 43 44 /** 45 * Error cell type 46 */ 47 const TYPE_ERROR = 6; 48 49 /** 50 * The value of this cell 51 * @var mixed|null 52 */ 53 protected $value; 54 55 /** 56 * The cell type 57 * @var int|null 58 */ 59 protected $type; 60 61 /** 62 * The cell style 63 * @var Style 64 */ 65 protected $style; 66 67 /** 68 * @param mixed|null $value 69 * @param Style|null $style 70 */ 71 public function __construct($value, Style $style = null) 72 { 73 $this->setValue($value); 74 $this->setStyle($style); 75 } 76 77 /** 78 * @param mixed|null $value 79 */ 80 public function setValue($value) 81 { 82 $this->value = $value; 83 $this->type = $this->detectType($value); 84 } 85 86 /** 87 * @return mixed|null 88 */ 89 public function getValue() 90 { 91 return !$this->isError() ? $this->value : null; 92 } 93 94 /** 95 * @return mixed 96 */ 97 public function getValueEvenIfError() 98 { 99 return $this->value; 100 } 101 102 /** 103 * @param Style|null $style 104 */ 105 public function setStyle($style) 106 { 107 $this->style = $style ?: new Style(); 108 } 109 110 /** 111 * @return Style 112 */ 113 public function getStyle() 114 { 115 return $this->style; 116 } 117 118 /** 119 * @return int|null 120 */ 121 public function getType() 122 { 123 return $this->type; 124 } 125 126 /** 127 * @param int $type 128 */ 129 public function setType($type) 130 { 131 $this->type = $type; 132 } 133 134 /** 135 * Get the current value type 136 * 137 * @param mixed|null $value 138 * @return int 139 */ 140 protected function detectType($value) 141 { 142 if (CellTypeHelper::isBoolean($value)) { 143 return self::TYPE_BOOLEAN; 144 } 145 if (CellTypeHelper::isEmpty($value)) { 146 return self::TYPE_EMPTY; 147 } 148 if (CellTypeHelper::isNumeric($value)) { 149 return self::TYPE_NUMERIC; 150 } 151 if (CellTypeHelper::isDateTimeOrDateInterval($value)) { 152 return self::TYPE_DATE; 153 } 154 if (CellTypeHelper::isNonEmptyString($value)) { 155 return self::TYPE_STRING; 156 } 157 158 return self::TYPE_ERROR; 159 } 160 161 /** 162 * @return bool 163 */ 164 public function isBoolean() 165 { 166 return $this->type === self::TYPE_BOOLEAN; 167 } 168 169 /** 170 * @return bool 171 */ 172 public function isEmpty() 173 { 174 return $this->type === self::TYPE_EMPTY; 175 } 176 177 /** 178 * @return bool 179 */ 180 public function isNumeric() 181 { 182 return $this->type === self::TYPE_NUMERIC; 183 } 184 185 /** 186 * @return bool 187 */ 188 public function isString() 189 { 190 return $this->type === self::TYPE_STRING; 191 } 192 193 /** 194 * @return bool 195 */ 196 public function isDate() 197 { 198 return $this->type === self::TYPE_DATE; 199 } 200 201 /** 202 * @return bool 203 */ 204 public function isError() 205 { 206 return $this->type === self::TYPE_ERROR; 207 } 208 209 /** 210 * @return string 211 */ 212 public function __toString() 213 { 214 return (string) $this->getValue(); 215 } 216 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body