This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Your browser will try to treat the output like an XLS file and use Excel to render it. If Excel can't understand what you're sending, it will not render it correctly and/or give errors. It's up to you to format the output correctly. CSV format works for simple data, SLK for more complex stuff. Or you may want to look at packages like POI to generate binary Excel data and try to send that. IMO you'd better not use a JSP to generate Excel data, a servlet (possibly using an XSL transformation or Jython script) is far better suited.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com