Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php
private function convertRange3d($token)
    {
        // Split the ref at the ! symbol
        list($ext_ref, $range) = explode('!', $token);

        // Convert the external reference part (different for BIFF8)
        $ext_ref = $this->getRefIndex($ext_ref);

        // Split the range into 2 cell refs
        list($cell1, $cell2) = explode(':', $range);

        // Convert the cell references
        if (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\\d+)$/', $cell1)) {
            list($row1, $col1) = $this->cellToPackedRowcol($cell1);
            list($row2, $col2) = $this->cellToPackedRowcol($cell2);
        } else { // It's a rows range (like 26:27)
            list($row1, $col1, $row2, $col2) = $this->rangeToPackedRange($cell1 . ':' . $cell2);
        }

        // The ptg value depends on the class of the ptg.
        $ptgArea = pack('C', $this->ptg['ptgArea3d']);

        return $ptgArea . $ext_ref . $row1 . $row2 . $col1 . $col2;
    }
private function convertRange3d($token)
    {
        // Split the ref at the ! symbol
        list($ext_ref, $range) = explode('!', $token);

        // Convert the external reference part (different for BIFF8)
        $ext_ref = $this->getRefIndex($ext_ref);

        // Split the range into 2 cell refs
        list($cell1, $cell2) = explode(':', $range);

        // Convert the cell references
        if (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\\d+)$/', $cell1)) {
            list($row1, $col1) = $this->cellToPackedRowcol($cell1);
            list($row2, $col2) = $this->cellToPackedRowcol($cell2);
        } else { // It's a rows range (like 26:27)
            list($row1, $col1, $row2, $col2) = $this->rangeToPackedRange($cell1 . ':' . $cell2);
        }

        // The ptg value depends on the class of the ptg.
        $ptgArea = pack('C', $this->ptg['ptgArea3d']);

        return $ptgArea . $ext_ref . $row1 . $row2 . $col1 . $col2;
    }
private function convertRange3d ( $ token ) { // Split the ref at the ! symbol list ( $ ext_ref , $ range ) = explode ( '!' , $ token ) ; // Convert the external reference part (different for BIFF8) $ ext_ref = $ this -> getRefIndex ( $ ext_ref ) ; // Split the range into 2 cell refs list ( $ cell1 , $ cell2 ) = explode ( ':' , $ range ) ; // Convert the cell references if ( preg_match ( '/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\\d+)$/' , $ cell1 ) ) { list ( $ row1 , $ col1 ) = $ this -> cellToPackedRowcol ( $ cell1 ) ; list ( $ row2 , $ col2 ) = $ this -> cellToPackedRowcol ( $ cell2 ) ; } else { // It's a rows range (like 26:27) list ( $ row1 , $ col1 , $ row2 , $ col2 ) = $ this -> rangeToPackedRange ( $ cell1 . ':' . $ cell2 ) ; } // The ptg value depends on the class of the ptg. $ ptgArea = pack ( 'C' , $ this -> ptg [ 'ptgArea3d' ] ) ; return $ ptgArea . $ ext_ref . $ row1 . $ row2 . $ col1 . $ col2 ; }
Convert an Excel 3d range such as "Sheet1!A1:D4" or "Sheet1:Sheet2!A1:D4" to
a ptgArea3d.

@param string $token an Excel range in the Sheet1!A1:A2 format

@return mixed the packed ptgArea3d token on success
Convert an Excel 3d range such as Sheet1!A1 : D4 or Sheet1 : Sheet2!A1 : D4 to a ptgArea3d .