See Release Notes
Long Term Support Release
<?php namespace PhpOffice\PhpSpreadsheet\Reader\Xlsx; use PhpOffice\PhpSpreadsheet\Cell\Coordinate;> use PhpOffice\PhpSpreadsheet\Reader\Xlsx;use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;> use SimpleXMLElement;class SheetViews extends BaseParserClass {> /** @var SimpleXMLElement */private $sheetViewXml;> /** @var SimpleXMLElement */ private $worksheet; > private $sheetViewAttributes; > public function __construct(\SimpleXMLElement $sheetViewXml, Worksheet $workSheet) > /** @var Worksheet */< public function __construct(\SimpleXMLElement $sheetViewXml, Worksheet $workSheet)> public function __construct(SimpleXMLElement $sheetViewXml, Worksheet $workSheet)$this->sheetViewXml = $sheetViewXml;> $this->sheetViewAttributes = Xlsx::testSimpleXml($sheetViewXml->attributes());$this->worksheet = $workSheet; }< public function load()> public function load(): void{> $this->topLeft();$this->zoomScale(); $this->view(); $this->gridLines(); $this->headers(); $this->direction(); $this->showZeros(); if (isset($this->sheetViewXml->pane)) { $this->pane(); }< if (isset($this->sheetViewXml->selection, $this->sheetViewXml->selection['sqref'])) {> if (isset($this->sheetViewXml->selection, $this->sheetViewXml->selection->attributes()->sqref)) {$this->selection(); } }< private function zoomScale()> private function zoomScale(): void{< if (isset($this->sheetViewXml['zoomScale'])) { < $zoomScale = (int) ($this->sheetViewXml['zoomScale']);> if (isset($this->sheetViewAttributes->zoomScale)) { > $zoomScale = (int) ($this->sheetViewAttributes->zoomScale);if ($zoomScale <= 0) { // setZoomScale will throw an Exception if the scale is less than or equals 0 // that is OK when manually creating documents, but we should be able to read all documents $zoomScale = 100; } $this->worksheet->getSheetView()->setZoomScale($zoomScale); }< if (isset($this->sheetViewXml['zoomScaleNormal'])) { < $zoomScaleNormal = (int) ($this->sheetViewXml['zoomScaleNormal']);> if (isset($this->sheetViewAttributes->zoomScaleNormal)) { > $zoomScaleNormal = (int) ($this->sheetViewAttributes->zoomScaleNormal);if ($zoomScaleNormal <= 0) { // setZoomScaleNormal will throw an Exception if the scale is less than or equals 0 // that is OK when manually creating documents, but we should be able to read all documents $zoomScaleNormal = 100; } $this->worksheet->getSheetView()->setZoomScaleNormal($zoomScaleNormal); } }< private function view()> private function view(): void{< if (isset($this->sheetViewXml['view'])) { < $this->worksheet->getSheetView()->setView((string) $this->sheetViewXml['view']);> if (isset($this->sheetViewAttributes->view)) { > $this->worksheet->getSheetView()->setView((string) $this->sheetViewAttributes->view);} }< private function gridLines()> private function topLeft(): void{< if (isset($this->sheetViewXml['showGridLines'])) {> if (isset($this->sheetViewAttributes->topLeftCell)) { > $this->worksheet->setTopLeftCell($this->sheetViewAttributes->topLeftCell); > } > } > > private function gridLines(): void > { > if (isset($this->sheetViewAttributes->showGridLines)) {$this->worksheet->setShowGridLines(< self::boolean((string) $this->sheetViewXml['showGridLines'])> self::boolean((string) $this->sheetViewAttributes->showGridLines)); } }< private function headers()> private function headers(): void{< if (isset($this->sheetViewXml['showRowColHeaders'])) {> if (isset($this->sheetViewAttributes->showRowColHeaders)) {$this->worksheet->setShowRowColHeaders(< self::boolean((string) $this->sheetViewXml['showRowColHeaders'])> self::boolean((string) $this->sheetViewAttributes->showRowColHeaders)); } }< private function direction()> private function direction(): void{< if (isset($this->sheetViewXml['rightToLeft'])) {> if (isset($this->sheetViewAttributes->rightToLeft)) {$this->worksheet->setRightToLeft(< self::boolean((string) $this->sheetViewXml['rightToLeft'])> self::boolean((string) $this->sheetViewAttributes->rightToLeft)); } }< private function showZeros()> private function showZeros(): void{< if (isset($this->sheetViewXml['showZeros'])) {> if (isset($this->sheetViewAttributes->showZeros)) {$this->worksheet->getSheetView()->setShowZeros(< self::boolean((string) $this->sheetViewXml['showZeros'])> self::boolean((string) $this->sheetViewAttributes->showZeros)); } }< private function pane()> private function pane(): void{ $xSplit = 0; $ySplit = 0; $topLeftCell = null;> $paneAttributes = $this->sheetViewXml->pane->attributes();< if (isset($this->sheetViewXml->pane['xSplit'])) { < $xSplit = (int) ($this->sheetViewXml->pane['xSplit']);> if (isset($paneAttributes->xSplit)) { > $xSplit = (int) ($paneAttributes->xSplit);}< if (isset($this->sheetViewXml->pane['ySplit'])) { < $ySplit = (int) ($this->sheetViewXml->pane['ySplit']);> if (isset($paneAttributes->ySplit)) { > $ySplit = (int) ($paneAttributes->ySplit);}< if (isset($this->sheetViewXml->pane['topLeftCell'])) { < $topLeftCell = (string) $this->sheetViewXml->pane['topLeftCell'];> if (isset($paneAttributes->topLeftCell)) { > $topLeftCell = (string) $paneAttributes->topLeftCell;} $this->worksheet->freezePane( Coordinate::stringFromColumnIndex($xSplit + 1) . ($ySplit + 1), $topLeftCell ); }< private function selection()> private function selection(): void{< $sqref = (string) $this->sheetViewXml->selection['sqref'];> $attributes = $this->sheetViewXml->selection->attributes(); > if ($attributes !== null) { > $sqref = (string) $attributes->sqref;$sqref = explode(' ', $sqref); $sqref = $sqref[0];<$this->worksheet->setSelectedCells($sqref);> }} }