Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.
<?php

declare(strict_types=1);

namespace OpenSpout\Writer\ODS\Manager;

< use OpenSpout\Writer\Common\Entity\Sheet;
use OpenSpout\Writer\Common\Entity\Workbook; use OpenSpout\Writer\Common\Manager\AbstractWorkbookManager; use OpenSpout\Writer\Common\Manager\Style\StyleMerger; use OpenSpout\Writer\ODS\Helper\FileSystemHelper; use OpenSpout\Writer\ODS\Manager\Style\StyleManager; use OpenSpout\Writer\ODS\Options; /** * @internal * * @property WorksheetManager $worksheetManager * @property FileSystemHelper $fileSystemHelper * @property StyleManager $styleManager */ final class WorkbookManager extends AbstractWorkbookManager { /** * Maximum number of rows a ODS sheet can contain. * * @see https://ask.libreoffice.org/en/question/8631/upper-limit-to-number-of-rows-in-calc/ */ private static int $maxRowsPerWorksheet = 1048576; public function __construct( Workbook $workbook, Options $options, WorksheetManager $worksheetManager, StyleManager $styleManager, StyleMerger $styleMerger, FileSystemHelper $fileSystemHelper ) { parent::__construct( $workbook, $options, $worksheetManager, $styleManager, $styleMerger, $fileSystemHelper ); } /** * @return int Maximum number of rows/columns a sheet can contain */ protected function getMaxRowsPerWorksheet(): int { return self::$maxRowsPerWorksheet; } /** * Writes all the necessary files to disk and zip them together to create the final file. * * @param resource $finalFilePointer Pointer to the spreadsheet that will be created */ protected function writeAllFilesToDiskAndZipThem($finalFilePointer): void { $worksheets = $this->getWorksheets(); $numWorksheets = \count($worksheets); $this->fileSystemHelper ->createContentFile($this->worksheetManager, $this->styleManager, $worksheets) ->deleteWorksheetTempFolder() ->createStylesFile($this->styleManager, $numWorksheets) ->zipRootFolderAndCopyToStream($finalFilePointer) ; } }