How can you serve a Microsoft Excel spreadsheet from a Perl CGI script?
It’s actually quite easy, and just a case of sending the right headers.
Assuming we have our raw binary Excel sheet in a variable called $excel, we can use this simple block of code to allow it to be downloaded from a web script with the filename of text.xls.
print "content-type: application/vnd.ms-exceln";
print "content-disposition: attachment; filename=text.xlsnn";
print $excel;
This will prompt the user with a file download box asking where to store text.xls.
The key here is the content-disposition tag. We could change the content-disposition to inline to try to force the browser to open the Excel document in browser itself, but that’s not really very friendly.