c47b407e39
Replace default gridlines with different style. Usable in PDF as well as HTML. Documentation mentioned use of setUseBOM with Html, but that method does not exist, and there is no real reason to support it. Removed it from documentation.
54 lines
1.6 KiB
PHP
54 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html;
|
|
|
|
use PhpOffice\PhpSpreadsheet\Shared\File;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheet\Writer\Html;
|
|
use PhpOffice\PhpSpreadsheetTests\Functional;
|
|
|
|
class CallbackTest extends Functional\AbstractFunctional
|
|
{
|
|
public function yellowBody(string $html): string
|
|
{
|
|
$newstyle = <<<EOF
|
|
<style type='text/css'>
|
|
body {
|
|
background-color: yellow;
|
|
}
|
|
</style>
|
|
|
|
EOF;
|
|
|
|
return preg_replace('@</head>@', "$newstyle</head>", $html);
|
|
}
|
|
|
|
public function testSetAndReset(): void
|
|
{
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$sheet->setCellValue('A1', '1');
|
|
|
|
$writer = new Html($spreadsheet);
|
|
$html1 = $writer->generateHTMLall();
|
|
$writer->setEditHtmlCallback([$this, 'yellowBody']);
|
|
$html2 = $writer->generateHTMLall();
|
|
$writer->setEditHtmlCallback(null);
|
|
$html3 = $writer->generateHTMLall();
|
|
|
|
self::assertFalse(strpos($html1, 'background-color: yellow'));
|
|
self::assertNotFalse(strpos($html2, 'background-color: yellow'));
|
|
self::assertFalse(strpos($html3, 'background-color: yellow'));
|
|
self::assertEquals($html3, $html1);
|
|
|
|
$writer->setEditHtmlCallback([$this, 'yellowBody']);
|
|
$oufil = tempnam(File::sysGetTempDir(), 'phpspreadsheet-test');
|
|
$writer->save($oufil);
|
|
$html4 = file_get_contents($oufil);
|
|
unlink($oufil);
|
|
self::assertNotFalse(strpos($html4, 'background-color: yellow'));
|
|
|
|
$this->writeAndReload($spreadsheet, 'Html');
|
|
}
|
|
}
|