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\XLSX\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\XLSX\Helper\FileSystemHelper; use OpenSpout\Writer\XLSX\Manager\Style\StyleManager; use OpenSpout\Writer\XLSX\Options; /** * @internal * * @property WorksheetManager $worksheetManager * @property StyleManager $styleManager * @property FileSystemHelper $fileSystemHelper * @property Options $options */ final class WorkbookManager extends AbstractWorkbookManager { /** * Maximum number of rows a XLSX sheet can contain. * * @see http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010073849.aspx */ 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; } /** * Closes custom objects that are still opened. */ protected function closeRemainingObjects(): void { $this->worksheetManager->getSharedStringsManager()->close(); } /** * 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(); $this->fileSystemHelper ->createContentFiles($this->options, $worksheets) ->deleteWorksheetTempFolder() ->createContentTypesFile($worksheets) ->createWorkbookFile($worksheets) ->createWorkbookRelsFile($worksheets) ->createWorksheetRelsFiles($worksheets) ->createStylesFile($this->styleManager) ->zipRootFolderAndCopyToStream($finalFilePointer) ; } }