While I'm sure this
Spreadsheet::WriteExcel module may be a great way to do this (I don't know), don't underestimate Excel's ability to work with lowest-common-denominator data formats.
Excel (98 at least) has the ability of reading HTML files consisting of a <table> and reading all of that data into native Excel cells. It can also take a simple ASCII tab-delimited file and read it in as if it were a native file format. Neither of these options requires any explicit "import" commands. You may be able to simply send either of these file types to Excel by changing its MIME type (not sure what to change it to.. application/vnd.ms-excel or something) and likely its document extension (IE likes to ignore MIME types sometimes).
I know this doesn't completely address your question, but it is an alternative that might be easier to implement.