code: 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;
      }
docs: 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