73 lines
1.3 KiB
PHP
73 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheet\RichText;
|
|
|
|
use PhpOffice\PhpSpreadsheet\Exception as SpreadsheetException;
|
|
use PhpOffice\PhpSpreadsheet\Style\Font;
|
|
|
|
class Run extends TextElement implements ITextElement
|
|
{
|
|
/**
|
|
* Font.
|
|
*
|
|
* @var ?Font
|
|
*/
|
|
private ?Font $font;
|
|
|
|
/**
|
|
* Create a new Run instance.
|
|
*
|
|
* @param string $text Text
|
|
*/
|
|
public function __construct(string $text = '')
|
|
{
|
|
parent::__construct($text);
|
|
// Initialise variables
|
|
$this->font = new Font();
|
|
}
|
|
|
|
/**
|
|
* Get font.
|
|
*/
|
|
public function getFont(): ?Font
|
|
{
|
|
return $this->font;
|
|
}
|
|
|
|
public function getFontOrThrow(): Font
|
|
{
|
|
if ($this->font === null) {
|
|
throw new SpreadsheetException('unexpected null font');
|
|
}
|
|
|
|
return $this->font;
|
|
}
|
|
|
|
/**
|
|
* Set font.
|
|
*
|
|
* @param ?Font $font Font
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setFont(?Font $font = null): static
|
|
{
|
|
$this->font = $font;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get hash code.
|
|
*
|
|
* @return string Hash code
|
|
*/
|
|
public function getHashCode(): string
|
|
{
|
|
return md5(
|
|
$this->getText()
|
|
. (($this->font === null) ? '' : $this->font->getHashCode())
|
|
. __CLASS__
|
|
);
|
|
}
|
|
}
|