Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.
<?php

namespace PhpOffice\PhpSpreadsheet\Writer\Ods;

use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;

class AutoFilters
{
    /**
     * @var XMLWriter
     */
    private $objWriter;

    /**
     * @var Spreadsheet
     */
    private $spreadsheet;

    public function __construct(XMLWriter $objWriter, Spreadsheet $spreadsheet)
    {
        $this->objWriter = $objWriter;
        $this->spreadsheet = $spreadsheet;
    }

> /** @var mixed */ public function write(): void > private static $scrutinizerFalse = false; { >
< $wrapperWritten = false;
> $wrapperWritten = self::$scrutinizerFalse;
$sheetCount = $this->spreadsheet->getSheetCount(); for ($i = 0; $i < $sheetCount; ++$i) { $worksheet = $this->spreadsheet->getSheet($i); $autofilter = $worksheet->getAutoFilter(); if ($autofilter !== null && !empty($autofilter->getRange())) { if ($wrapperWritten === false) { $this->objWriter->startElement('table:database-ranges'); $wrapperWritten = true; } $this->objWriter->startElement('table:database-range'); $this->objWriter->writeAttribute('table:orientation', 'column'); $this->objWriter->writeAttribute('table:display-filter-buttons', 'true'); $this->objWriter->writeAttribute( 'table:target-range-address', $this->formatRange($worksheet, $autofilter) ); $this->objWriter->endElement(); } } if ($wrapperWritten === true) { $this->objWriter->endElement(); } } protected function formatRange(Worksheet $worksheet, Autofilter $autofilter): string { $title = $worksheet->getTitle(); $range = $autofilter->getRange(); return "'{$title}'.{$range}"; } }