HOW TO implement "Download as Word/Excel" functionality through a web page

I "discovered" Office XML two summers ago when I had to implement "Download as Word Document" functionality for a report with customized features, through a web page without using any third party utility.

In Office 2000 (& above) documents can be converted from Word to HTML (File->Save As) and vice versa! It is interesting to see how an Office Document renders HTML. The various formatting features in the Office document are defined through XML as explained in the Microsoft Office HTML and XML Reference. By manipulating these properties exposed through XML programmatically, we can incorporate custom formatting capability in the Office docs that we offer for downloading. All this without resorting to Office Automation or expensive tools.

I recently stumbled upon a stellar example that utilizes this technique from among a bunch of re-usable utility methods that Daniel Olson has kindly shared. The method "DataTable2ExcelString" takes a DataTable & converts its contents into a HTML table that can be further rendered into a Excel sheet by adding a MIME request header. I have built a sample around this and I'm impressed with the craftsmanship of the utility method.

My article in Eggheadcafe gets into the details.

If you are looking for freeware to generate Excel files dynamically, you could also check GemBox.Spreadsheet, a .NET component.

Related links:

Comments