in reply to Excel::Writer::XLSX - content-Type

That's not how CGI and Content-Type headers work.

I suggest you read CGI, and some tutorial for whatever web framework you're using. A bare-bones approach would be to send the appropriate headers when you're sending your XLSX file:

print "Content-Type: application/vnd.openxmlformats-officedocument.spr +eadsheetml.sheet\r\n\r\n"; binmode STDOUT; print $sheet;

This has very little to do with Excel::Writer::XSLX and about everything with how HTTP works.