As always in programming, there is more than one method to
achieve the same thing.
You could use Office automation to start an instance of
Excel 2007 (or any other Office application) and then use interop calls to
create a document and save it. However, using automation has some drawbacks I
have already written about (see at: http://www.gemboxsoftware.com/GBSpreadsheet.htm#Automation).
The next version of .NET Framework (codename WinFX) will
have support for Open Packaging Conventions (package handling and navigating
the relationships), but it seems there will be no support for accessing
application specific data so you will still need to process XML parts manually.
As another option, you could use some third party component
which will come with support for Open XML format. This will probably cost you
some money, but has the advantage that usually more than one format (for
example; XLS, XLSX, CSV) are supported within the same API, so your application
will be able to target different file formats using the same code.