mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-18 14:06:34 +00:00
4363de1b14
Fix #3565. Requester suggested adding viewport as a property of Html Writer. I think it would fit better as a Document Property, so that it can be both read and written, just like other meta properties, making it easier to load an Html spreadsheet and save it as a new one preserving this property. It is an open question whether we should try to preserve this property when writing to other spreadsheet types, e.g. as a custom property for Xlsx. For now, I am not attempting that. Requester also suggested this as a boolean property, but there are other parameters and different values that might be used for viewport. So I am defining it as a string property, with a constant SUGGESTED_VIEWPORT that can be used for requester's use case.
45 lines
1.5 KiB
PHP
45 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Reader\Html;
|
|
|
|
use PhpOffice\PhpSpreadsheet\Document\Properties;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
|
|
|
|
class ViewportTest extends AbstractFunctional
|
|
{
|
|
public function testViewport(): void
|
|
{
|
|
$spreadsheetOld = new Spreadsheet();
|
|
$spreadsheetOld->getProperties()->setViewport(Properties::SUGGESTED_VIEWPORT);
|
|
$osheet = $spreadsheetOld->getActiveSheet();
|
|
$osheet->getCell('A1')->setValue(1);
|
|
|
|
$spreadsheet = $this->writeAndReload($spreadsheetOld, 'Html');
|
|
$spreadsheetOld->disconnectWorksheets();
|
|
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
self::assertSame(1, $sheet->getCell('A1')->getValue());
|
|
self::assertSame('width=device-width, initial-scale=1', $spreadsheet->getProperties()->getViewport());
|
|
|
|
$spreadsheet->disconnectWorksheets();
|
|
}
|
|
|
|
public function testNoViewport(): void
|
|
{
|
|
$spreadsheetOld = new Spreadsheet();
|
|
//$spreadsheetOld->getProperties()->setViewport(SUGGESTED_VIEWPORT);
|
|
$osheet = $spreadsheetOld->getActiveSheet();
|
|
$osheet->getCell('A1')->setValue(1);
|
|
|
|
$spreadsheet = $this->writeAndReload($spreadsheetOld, 'Html');
|
|
$spreadsheetOld->disconnectWorksheets();
|
|
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
self::assertSame(1, $sheet->getCell('A1')->getValue());
|
|
self::assertSame('', $spreadsheet->getProperties()->getViewport());
|
|
|
|
$spreadsheet->disconnectWorksheets();
|
|
}
|
|
}
|