Spreadsheet/ParseExcel.pm lines 1789-1790: substr($sWk, 3, 1) &= pack('c', unpack("c",substr($sWk, 3, 1)) & 0xFC); substr($lWk, 0, 1) &= pack('c', unpack("c",substr($lWk, 0, 1)) & 0xFC); replace with: my $u = unpack("c",substr($sWk, 3, 1)) & 0xFC; $u |= 0xFFFFFF00 if ($u & 0x80); # raise neg bits for neg 1-byte value substr($sWk, 3, 1) &= pack('c', $u); $u = unpack("c",substr($lWk, 0, 1)) & 0xFC; $u |= 0xFFFFFF00 if ($u & 0x80); # raise neg bits for neg 1-byte value substr($lWk, 0, 1) &= pack('c', $u);