code: public static function OCTTOHEX($x, $places = null)
      {
          $x = Functions::flattenSingleValue($x);
          $places = Functions::flattenSingleValue($places);
  
          if (is_bool($x)) {
              return Functions::VALUE();
          }
          $x = (string) $x;
          if (preg_match_all('/[01234567]/', $x, $out) != strlen($x)) {
              return Functions::NAN();
          }
          $hexVal = strtoupper(dechex(self::OCTTODEC($x)));
  
          return self::nbrConversionFormat($hexVal, $places);
      }
docs: OCTTOHEX.
  
  Return an octal value as hex.
  
  Excel Function:
  OCT2HEX(x[,places])
  
  @category Engineering Functions
  
  @param string $x The octal number you want to convert. Number may not contain
  more than 10 octal characters (30 bits). The most significant
  bit of number is the sign bit. The remaining 29 bits are
  magnitude bits. Negative numbers are represented using
  two's-complement notation.
  If number is negative, OCT2HEX ignores places and returns a
  10-character hexadecimal number.
  If number is not a valid octal number, OCT2HEX returns the
  #NUM! error value.
  If OCT2HEX requires more than places characters, it returns
  the #NUM! error value.
  @param int $places The number of characters to use. If places is omitted, OCT2HEX
  uses the minimum number of characters necessary. Places is useful
  for padding the return value with leading 0s (zeros).
  If places is not an integer, it is truncated.
  If places is nonnumeric, OCT2HEX returns the #VALUE! error value.
  If places is negative, OCT2HEX returns the #NUM! error value.
  
  @return string