You can write SpreadsheetXML files. To make a template and see how it works, load up a blank sheet in Excel, populate some fields, add some formatting, formulas, etc and save as SpreadsheetXML (it may be called XML Spreadsheet 2003 in Excel2007), load it up in a text editor, VS works well, and figure out how it works. Then take one of your existing spreadsheets and save it in this format and decipher how it saves your data. Strip the data out of it and then you can use that XML file as a template - read in the template and manupulate the XML with the new data and output it to the browser.
You can write your own quite-capable spreadsheets with formatting, formulas, frozen panes, and proper types (i.e numbers as numbers, text as text, etc). No charts, and other features, however.
I've used this format for both importing existing sheets (in well-defined formats with strict data-checking!) and for exporting "reports".