Does the built-in 'quotemeta()' do enough for you?
quotemeta EXPR
This function returns the value of EXPR (or $_ if not specified) with all
non-alphanumeric characters backslashed. This is the internal function
implementing the \Q escape in interpolative contexts (including double-quoted
strings
Another approach might be to output Office-style XML/HTML to specify the page.
This allows full control over formatting, formulae, multi-sheets, graphs etc,
and can be loaded directly into Excel, but without having to write directly in
binary format. See link below for docs. I also attach a qui