code: public function writeUrlInternal($row1, $col1, $row2, $col2, $url)
      {
          $record = 0x01B8; // Record identifier
          $length = 0x00000; // Bytes to follow
  
          // Strip URL type
          $url = preg_replace('/^internal:/', '', $url);
  
          // Pack the undocumented parts of the hyperlink stream
          $unknown1 = pack('H*', 'D0C9EA79F9BACE118C8200AA004BA90B02000000');
  
          // Pack the option flags
          $options = pack('V', 0x08);
  
          // Convert the URL type and to a null terminated wchar string
          $url .= "\0";
  
          // character count
          $url_len = StringHelper::countCharacters($url);
          $url_len = pack('V', $url_len);
  
          $url = StringHelper::convertEncoding($url, 'UTF-16LE', 'UTF-8');
  
          // Calculate the data length
          $length = 0x24 + strlen($url);
  
          // Pack the header data
          $header = pack('vv', $record, $length);
          $data = pack('vvvv', $row1, $row2, $col1, $col2);
  
          // Write the packed data
          $this->append($header . $data . $unknown1 . $options . $url_len . $url);
  
          return 0;
      }
docs: Used to write internal reference hyperlinks such as "Sheet1!A1".
  
  @see writeUrl()
  
  @param int $row1 Start row
  @param int $col1 Start column
  @param int $row2 End row
  @param int $col2 End column
  @param string $url URL string
  
  @return int