mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-08-24 14:28:38 +00:00
1cdc6cd2fb
* Breaking Change to toFormattedString and 3 toArray Methods DocBlock says `toFormattedString` returns string, but code can return int, float, bool, null, or RichText. I think the DocBlock is correct (function name clearly indicates "to string"), and the code needs to change to match it. This is not that big a deal on its own. However, some methods in `Worksheet` call this function by default - `rangeToArray`, `toArray`, and `namedRangeToArray`. All 3 can be called with a parameter so that they don't call `toFormattedString`, but, by default, they do call, and so are affected by this change. Some unit test results are changed as a result of this code change. In all those cases, an additional test is added which would match the previous result. * Update Change Log I often skip this till later, but, since it's a breaking change ... * Scrutinizer, Plus Strange Cast to -0 Avoid Scrutinizer complaint by casting string to float, but ... Php decides resulted should sometimes be `-0`? That caused test failures. Very odd.
50 lines
1.8 KiB
PHP
50 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests;
|
|
|
|
use PhpOffice\PhpSpreadsheet\RichText\RichText;
|
|
use PhpOffice\PhpSpreadsheet\RichText\TextElement;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class RichTextTest extends TestCase
|
|
{
|
|
public function testConstructorSpecifyingCell(): void
|
|
{
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$cell = $sheet->getCell('A1');
|
|
$cell->setValue(2);
|
|
self::assertSame(2, $cell->getCalculatedValue());
|
|
$cell->getStyle()->getFont()->setName('whatever');
|
|
$richText = new RichText($cell);
|
|
self::assertSame('whatever', $sheet->getCell('A1')->getStyle()->getFont()->getName());
|
|
self::assertEquals($richText, $cell->getValue());
|
|
self::assertSame('2', $cell->getCalculatedValue());
|
|
|
|
$spreadsheet->disconnectWorksheets();
|
|
}
|
|
|
|
public function testTextElements(): void
|
|
{
|
|
$element1 = new TextElement('A');
|
|
$element2 = new TextElement('B');
|
|
$element3 = new TextElement('C');
|
|
$richText = new RichText();
|
|
$richText->setRichTextElements([$element1, $element2, $element3]);
|
|
self::assertSame('ABC', $richText->getPlainText());
|
|
$cloneText = clone $richText;
|
|
self::assertEquals($richText, $cloneText);
|
|
self::assertNotSame($richText, $cloneText);
|
|
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$sheet->getCell('A1')->setValue($richText);
|
|
self::assertInstanceOf(RichText::class, $sheet->getCell('A1')->getValue());
|
|
self::assertSame('ABC', $sheet->getCell('A1')->getFormattedValue());
|
|
$sheet->getCell('B1')->setValue(-3.5);
|
|
self::assertSame([['ABC', '-3.5']], $sheet->toArray());
|
|
$spreadsheet->disconnectWorksheets();
|
|
}
|
|
}
|