In the past to create Excel documents I have used the old create as html and use a cfheader tag to fool the browser into thinking an Excel document was coming down the pipe. It works quite well. Just the other week though a requirement came through to have a spreadsheet with 20 odd worksheets. Woah I thought.
Then I looked at Ben Nadel's POIUtility. Using POIUtility, it actually took me less time to create my 20 odd worksheet Excel file than it used to create one html based Excel file. Plus it looks like a real Excel file.
Then yesterday I needed to read an Excel document. In the past this has been some complicated hack-fest of datasources, weird SQL-like syntax, worrying if the user is going to mistakenly add a space to the top row and all sorts of complications. Using POIUtility I simply asked it to read an Excel file and there in an array of worksheets with a query of the data. Yes, a query, meaning all I have to do is loop over it and deal with it just like I have done a million times. I would give examples, but, honestly, the examples Ben gives are great so check them out.
So, a huge thank you to Ben Nadel.