It depends on a lot of things. I've worked on two fairly large projects that imported data from Excel in two very different fashions and they had entirely different approaches that suited them.
SSIS Excel Import
This project involved slurping hundreds of files on a daily basis with a very well defined data format into a staging database that would then perform some ETL on that data to take it into a Data Warehouse (and then later a Data Mart and cubes, etc.)
Why we chose SSIS for this:
- the rest of the ETL made sense to do in SSIS and it reduced complexity by being consistent
- defining the schema for the Excel import was quite easy in SSIS and since it was very rigid (gov't regulated) we didn't have to worry about altering the resulting packages with a schema change
- deployed nicely to the Integration Services server and could be run via SQL Agent jobs
Custom Financial Application using VSTO to import
This project took an existing spreadsheet that was already being used to calculate a bunch of financial metrics, including a macro which would run a number of combinations of scenarios based on various spreadsheet-defined assumptions, and inserted it all into a SQL Server database (where it went on a similar DW -> DM -> cube journey).
Why we chose VSTO for this:
- we had to use their spreadsheet's model, and they wanted the ability to modify those calculations at will without having to do code changes and without having to learn how to program
- that's basically it
Both approaches worked equally well but had various reasons for choosing them. The biggest one being flexibility of the format/structure of the data being pulled from Excel. If it's very well-defined and rigid, SSIS is an easy and low-user-interference way to do it. However, if they need to make a lot of changes, then an Office Interop platform (VSTO) might be the way to go.