createText($valueSingle);
$plainMulti = new RichText();
$plainMulti->createText($valueMulti);
$richSingle = new RichText();
$font = $richSingle->createTextRun($valueSingle)->getFont();
self::assertNotNull($font);
$font->setBold(true);
$richMultiSimple = new RichText();
$font = $richMultiSimple->createTextRun($valueMulti)->getFont();
self::assertNotNull($font);
$font->setBold(true);
$richMultiMixed = new RichText();
$richMultiMixed->createText('I am' . PHP_EOL);
$font = $richMultiMixed->createTextRun('multi-line')->getFont();
self::assertNotNull($font);
$font->setBold(true);
$richMultiMixed->createText(PHP_EOL . 'comment!');
$richMultiMixed = new RichText();
$richMultiMixed->createText('I am' . PHP_EOL);
$font = $richMultiMixed->createTextRun('multi-line')->getFont();
self::assertNotNull($font);
$font->setBold(true);
$richMultiMixed->createText(PHP_EOL . 'comment!');
$scriptTextSingle = 'I am ';
$scriptSingle = new RichText();
$scriptSingle->createText($scriptTextSingle);
return [
'single line plain text' => [$plainSingle, '
' . PHP_EOL
. 'Comment | '],
'multi-line plain text' => [$plainMulti, '' . PHP_EOL
. 'Comment | '],
'single line simple rich text' => [$richSingle, '" . PHP_EOL
. 'Comment | '],
'multi-line simple rich text' => [$richMultiSimple, '' . PHP_EOL
. 'Comment | '],
'multi-line mixed rich text' => [$richMultiMixed, '' . PHP_EOL
. 'Comment | '],
'script single' => [$scriptSingle, '' . PHP_EOL
. 'Comment | '],
];
}
#[DataProvider('providerCommentRichText')]
public function testComments(RichText $richText, string $expected): void
{
$spreadsheet = new Spreadsheet();
$spreadsheet->getActiveSheet()
->getCell('A1')
->setValue('Comment');
$spreadsheet->getActiveSheet()
->getComment('A1')
->setText($richText);
$writer = new Html($spreadsheet);
$writer->setLineEnding(PHP_EOL);
$output = $writer->generateHtmlAll();
self::assertStringContainsString($expected, $output);
$reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Html');
$spreadsheet->disconnectWorksheets();
$actual = $reloadedSpreadsheet->getActiveSheet()->getComment('A1')->getText()->getPlainText();
self::assertSame($richText->getPlainText(), $actual);
$reloadedSpreadsheet->disconnectWorksheets();
}
}