  Several of our projects or applications require Excel spreadsheet style reports. In the past, the team employed a method which, in effect, tricked the browser (changing the content-type Resonse Header) into displaying the html in Excel. This approach was not only slow, CPU intensive (on the client), but the resulting Excel spreadsheet was a poor interpretation of an HTML table. To make matters worse, in some cases trailing zero's are dropped unless the numbers are wrapped in quotes (that sucks, because now they are not numbers). Clearly, there had to be a better approach, so we started looking for alternative methods to producing Excel spreadsheets. Using Microsoft Automation directly with the Excel object model was quickly ruled out. Why? Because of a previous project I knew that server side automation of the Office suite is riddled with scalability issues. I recently read an article that does a good job of describing why Excel automation is not a solution for web/server based applications.
You can read it urlLink here . We started using two alternate approaches. The first was to use one of our third-party tools, the Infragistics .NET Advantage suite. There is a decent Export to Excel object offered by the product so we hooked into it. The only disadvantage is that report formatting is very limited and basic. If you need anything more than just straight tabular data you will have to use our second approach.
The second alternative is to use Office XP/2003's ability to natively support XML. Using Microsofts schema's for Excel and Word provides a rich and effective solution. The only problem is that the users need to have Office 2003 on their machine. But if you can get away with this solution, it's by far the fastest, scalable solution I have found. 
