public function writeWorkbook(array $pWorksheetSizes)
    {
        $this->worksheetSizes = $pWorksheetSizes;

        // Calculate the number of selected worksheet tabs and call the finalization
        // methods for each worksheet
        $total_worksheets = $this->spreadsheet->getSheetCount();

        // Add part 1 of the Workbook globals, what goes before the SHEET records
        $this->storeBof(0x0005);
        $this->writeCodepage();
        $this->writeWindow1();

        $this->writeDateMode();
        $this->writeAllFonts();
        $this->writeAllNumberFormats();
        $this->writeAllXfs();
        $this->writeAllStyles();
        $this->writePalette();

        // Prepare part 3 of the workbook global stream, what goes after the SHEET records
        $part3 = '';
        if ($this->countryCode != -1) {
            $part3 .= $this->writeCountry();
        }
        $part3 .= $this->writeRecalcId();

        $part3 .= $this->writeSupbookInternal();
        /* TODO: store external SUPBOOK records and XCT and CRN records
        in case of external references for BIFF8 */
        $part3 .= $this->writeExternalsheetBiff8();
        $part3 .= $this->writeAllDefinedNamesBiff8();
        $part3 .= $this->writeMsoDrawingGroup();
        $part3 .= $this->writeSharedStringsTable();

        $part3 .= $this->writeEof();

        // Add part 2 of the Workbook globals, the SHEET records
        $this->calcSheetOffsets();
        for ($i = 0; $i < $total_worksheets; ++$i) {
            $this->writeBoundSheet($this->spreadsheet->getSheet($i), $this->worksheetOffsets[$i]);
        }

        // Add part 3 of the Workbook globals
        $this->_data .= $part3;

        return $this->_data;
    }
public function writeWorkbook(array $pWorksheetSizes)
    {
        $this->worksheetSizes = $pWorksheetSizes;

        // Calculate the number of selected worksheet tabs and call the finalization
        // methods for each worksheet
        $total_worksheets = $this->spreadsheet->getSheetCount();

        // Add part 1 of the Workbook globals, what goes before the SHEET records
        $this->storeBof(0x0005);
        $this->writeCodepage();
        $this->writeWindow1();

        $this->writeDateMode();
        $this->writeAllFonts();
        $this->writeAllNumberFormats();
        $this->writeAllXfs();
        $this->writeAllStyles();
        $this->writePalette();

        // Prepare part 3 of the workbook global stream, what goes after the SHEET records
        $part3 = '';
        if ($this->countryCode != -1) {
            $part3 .= $this->writeCountry();
        }
        $part3 .= $this->writeRecalcId();

        $part3 .= $this->writeSupbookInternal();
        /* TODO: store external SUPBOOK records and XCT and CRN records
        in case of external references for BIFF8 */
        $part3 .= $this->writeExternalsheetBiff8();
        $part3 .= $this->writeAllDefinedNamesBiff8();
        $part3 .= $this->writeMsoDrawingGroup();
        $part3 .= $this->writeSharedStringsTable();

        $part3 .= $this->writeEof();

        // Add part 2 of the Workbook globals, the SHEET records
        $this->calcSheetOffsets();
        for ($i = 0; $i < $total_worksheets; ++$i) {
            $this->writeBoundSheet($this->spreadsheet->getSheet($i), $this->worksheetOffsets[$i]);
        }

        // Add part 3 of the Workbook globals
        $this->_data .= $part3;

        return $this->_data;
    }
public function writeWorkbook ( array $ pWorksheetSizes ) { $ this -> worksheetSizes = $ pWorksheetSizes ; // Calculate the number of selected worksheet tabs and call the finalization // methods for each worksheet $ total_worksheets = $ this -> spreadsheet -> getSheetCount ( ) ; // Add part 1 of the Workbook globals, what goes before the SHEET records $ this -> storeBof ( 0x0005 ) ; $ this -> writeCodepage ( ) ; $ this -> writeWindow1 ( ) ; $ this -> writeDateMode ( ) ; $ this -> writeAllFonts ( ) ; $ this -> writeAllNumberFormats ( ) ; $ this -> writeAllXfs ( ) ; $ this -> writeAllStyles ( ) ; $ this -> writePalette ( ) ; // Prepare part 3 of the workbook global stream, what goes after the SHEET records $ part3 = '' ; if ( $ this -> countryCode != - 1 ) { $ part3 .= $ this -> writeCountry ( ) ; } $ part3 .= $ this -> writeRecalcId ( ) ; $ part3 .= $ this -> writeSupbookInternal ( ) ; /* TODO: store external SUPBOOK records and XCT and CRN records
        in case of external references for BIFF8 */ $ part3 .= $ this -> writeExternalsheetBiff8 ( ) ; $ part3 .= $ this -> writeAllDefinedNamesBiff8 ( ) ; $ part3 .= $ this -> writeMsoDrawingGroup ( ) ; $ part3 .= $ this -> writeSharedStringsTable ( ) ; $ part3 .= $ this -> writeEof ( ) ; // Add part 2 of the Workbook globals, the SHEET records $ this -> calcSheetOffsets ( ) ; for ( $ i = 0 ; $ i < $ total_worksheets ; ++ $ i ) { $ this -> writeBoundSheet ( $ this -> spreadsheet -> getSheet ( $ i ) , $ this -> worksheetOffsets [ $ i ] ) ; } // Add part 3 of the Workbook globals $ this -> _data .= $ part3 ; return $ this -> _data ; }
Assemble worksheets into a workbook and send the BIFF data to an OLE
storage.

@param array $pWorksheetSizes The sizes in bytes of the binary worksheet streams

@return string Binary data for workbook stream
Assemble worksheets into a workbook and send the BIFF data to an OLE storage .