Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
<?php

namespace PhpOffice\PhpSpreadsheet\Reader;

> use PhpOffice\PhpSpreadsheet\Reader\Exception as ReaderException;
use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner; use PhpOffice\PhpSpreadsheet\Shared\File; abstract class BaseReader implements IReader { /** * Read data only? * Identifies whether the Reader should only read data values for cells, and ignore any formatting information; * or whether it should read both data and formatting. * * @var bool */ protected $readDataOnly = false; /** * Read empty cells? * Identifies whether the Reader should read data values for cells all cells, or should ignore cells containing * null value or empty string. * * @var bool */ protected $readEmptyCells = true; /** * Read charts that are defined in the workbook? * Identifies whether the Reader should read the definitions for any charts that exist in the workbook;. * * @var bool */ protected $includeCharts = false; /** * Restrict which sheets should be loaded? * This property holds an array of worksheet names to be loaded. If null, then all worksheets will be loaded. * * @var array of string */ protected $loadSheetsOnly; /** * IReadFilter instance. * * @var IReadFilter */ protected $readFilter; protected $fileHandle; /** * @var XmlScanner */ protected $securityScanner; public function __construct() { $this->readFilter = new DefaultReadFilter(); } public function getReadDataOnly() { return $this->readDataOnly; } public function setReadDataOnly($pValue) { $this->readDataOnly = (bool) $pValue; return $this; } public function getReadEmptyCells() { return $this->readEmptyCells; } public function setReadEmptyCells($pValue) { $this->readEmptyCells = (bool) $pValue; return $this; } public function getIncludeCharts() { return $this->includeCharts; } public function setIncludeCharts($pValue) { $this->includeCharts = (bool) $pValue; return $this; } public function getLoadSheetsOnly() { return $this->loadSheetsOnly; } public function setLoadSheetsOnly($value) { if ($value === null) { return $this->setLoadAllSheets(); } $this->loadSheetsOnly = is_array($value) ? $value : [$value]; return $this; } public function setLoadAllSheets() { $this->loadSheetsOnly = null; return $this; } public function getReadFilter() { return $this->readFilter; } public function setReadFilter(IReadFilter $pValue) { $this->readFilter = $pValue; return $this; } public function getSecurityScanner() {
< if (property_exists($this, 'securityScanner')) {
return $this->securityScanner; }
< return null; < } <
/** * Open file for reading. * * @param string $pFilename
< * < * @throws Exception
*/
< protected function openFile($pFilename)
> protected function openFile($pFilename): void
{
> if ($pFilename) {
File::assertFile($pFilename); // Open file
< $this->fileHandle = fopen($pFilename, 'r'); < if ($this->fileHandle === false) { < throw new Exception('Could not open file ' . $pFilename . ' for reading.');
> $fileHandle = fopen($pFilename, 'rb'); > } else { > $fileHandle = false; > } > if ($fileHandle !== false) { > $this->fileHandle = $fileHandle; > } else { > throw new ReaderException('Could not open file ' . $pFilename . ' for reading.');
} } }