Spreadsheet::WriteExcel write() function makes a guess as to what kind of data you are writing. For the hex data, do not use write(), and instead write it as a string with: write_string($row, $column, $string, $format).
Perl 5.8.8 on Redhat Linux RHEL 5.5.56 (64-bit)