I was curious to know if anyone could recommend a component for server side excel generation (both xls and xlsx) for an ASP.NET application. We cannot install Office on the server. We've been using this component from codeplex...<p>http://www.codeplex.com/ExcelPackage<p>...and we haven't been thrilled with it. We're open to a commercial solution - we're just not sure what the best option is.<p>Thanks in advance for any suggestions.
I've used 2 methods:<p>1: SpreadsheetML: You can output XML which is understood by excel, here is an introduction: <a href="http://msdn.microsoft.com/en-us/library/bb226687" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb226687</a>(office.11).aspx<p>2: Insert values into an existing template.xls which is accessed with sql using an Oledbconnection. The template can have existing charts which will get updated with the new values.
You haven't said what you're trying to put into that Excel spreadsheet. If it's just rows of text, numbers, and formulas, then it's dead simple.<p>- change your response mime-type to application/excel<p>- supply a filename ending with .xls<p>- output comma-separated text.<p>done.<p>(it only gets difficult if you need to start embedding charts and specifying fonts)
When I was at Bank of America I worked on an internal Project Management tool that used a ton of Excel spreadsheets. If you can start with some kind of template it becomes dead simple. Excel spreadsheets can be used as datasources without Excel being installed on the server (iirc). Our app just connected to the XLS and dumped the data into the existing columns. If you have charts based on those columns then you're good to go.<p>Of course if you can't start with a template or need to add columns on the fly...it might be a little more challenging.
We use FlexCel (<a href="http://www.tmssoftware.com/site/flexcel.asp" rel="nofollow">http://www.tmssoftware.com/site/flexcel.asp</a>) for some very complex .NET excel and PDF generation, and have been very happy with it. Nice clean interfaces and easy to customize.
I know of a lib for Python but it only produces xls.<p><a href="http://sourceforge.net/projects/pyexcelerator" rel="nofollow">http://sourceforge.net/projects/pyexcelerator</a><p>If you are using ASP.NET why can't you install Office on the server?
<a href="http://en.wikipedia.org/wiki/Office_Open_XML" rel="nofollow">http://en.wikipedia.org/wiki/Office_Open_XML</a>
Generating files with this XML format should let you get something into excel. The only others I know of are Java based as I'm fairly anti-ms : <a href="http://poi.apache.org/" rel="nofollow">http://poi.apache.org/</a> and <a href="http://jexcelapi.sourceforge.net/" rel="nofollow">http://jexcelapi.sourceforge.net/</a>