the details of how you get the data into excel aren't really important. whether you use the Excel Interop assemblies, XML for XLS, or some other 3rd party library, it just an implementation detail.
I think your biggest concerns are:
1. how much data at any given time must be feed into Excel?
2. how often will this need to happen?
3. how current does the data have to be?
if you are talking about 100,000+ records. then this probably should not be done real-time. Either run this offline (non-core business hours) or near time, using some async techniques.
is this operation hourly, daily, weekly, monthly, sporadic, at a users discretion? If it doesn't happen that often then you could let this happen in the background. No need to have the actual computation on every single client.
do you need real-time, near-time or some other freshness of data? real time being right now. near-time being close to now as possible without making the user wait. Or, do you need records dated last month? in that case you could have a windows service create the file on the 1st of every month for the previous month. then the user just downloads the file. they don't need to wait for computation.
those are my thoughts anyway.
Jason Meckley
Programmer
Specialty Bakers, Inc.
faq855-7190