You could create a dataflow with a script task in the middle. Read the data from the spreadsheet, evaluate in the script, and then store in the destination. Alternatively, you could load all of the data into the database and then validate. In most cases, you can dump the sheet into a table of large varchar fields. Then you can process, validate, etc. from there and copy the good data to another table via dataflow task. We have found that to be easier in some cases because we are more familiar with querying and validating table data rather than spreadsheet data.