Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php
public function writeUrlWeb($row1, $col1, $row2, $col2, $url)
    {
        $record = 0x01B8; // Record identifier
        $length = 0x00000; // Bytes to follow

        // Pack the undocumented parts of the hyperlink stream
        $unknown1 = pack('H*', 'D0C9EA79F9BACE118C8200AA004BA90B02000000');
        $unknown2 = pack('H*', 'E0C9EA79F9BACE118C8200AA004BA90B');

        // Pack the option flags
        $options = pack('V', 0x03);

        // Convert URL to a null terminated wchar string
        $url = implode("\0", preg_split("''", $url, -1, PREG_SPLIT_NO_EMPTY));
        $url = $url . "\0\0\0";

        // Pack the length of the URL
        $url_len = pack('V', strlen($url));

        // Calculate the data length
        $length = 0x34 + 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 . $unknown2 . $url_len . $url);

        return 0;
    }
public function writeUrlWeb($row1, $col1, $row2, $col2, $url)
    {
        $record = 0x01B8; // Record identifier
        $length = 0x00000; // Bytes to follow

        // Pack the undocumented parts of the hyperlink stream
        $unknown1 = pack('H*', 'D0C9EA79F9BACE118C8200AA004BA90B02000000');
        $unknown2 = pack('H*', 'E0C9EA79F9BACE118C8200AA004BA90B');

        // Pack the option flags
        $options = pack('V', 0x03);

        // Convert URL to a null terminated wchar string
        $url = implode("\0", preg_split("''", $url, -1, PREG_SPLIT_NO_EMPTY));
        $url = $url . "\0\0\0";

        // Pack the length of the URL
        $url_len = pack('V', strlen($url));

        // Calculate the data length
        $length = 0x34 + 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 . $unknown2 . $url_len . $url);

        return 0;
    }
Used to write http, ftp and mailto hyperlinks.
The link type ($options) is 0x03 is the same as absolute dir ref without
sheet. However it is differentiated by the $unknown2 data stream.

@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