I will start my answer with a strong recommendation to not do this! =)
Exporting to Excel will be easy because your database is consistent and abides by certain rules and logic.
If you let a user modify an Excel file, let them upload it, and then try to parse it and update a database, you're asking for a lot of headaches.
Here is how you might think about doing it:
- First I would let them upload the file. Not sure what you're using for that, but it's the obvious start.
- Next I would create a job to import the Excel file into the database. If it's SQL Server, I would import it with an SSIS job as an example. The goal is to bring it in to your database in a temporary table.
- Write some code to read from the temporary table (which is your recently imported Excel data) and do validations. Validate the field names are correct, the data types are correct, etc.
- Write code to import the data from the temporary table to your master table(s). You only do this after you've verified programatically the imported file is good.
- Make sure you lock down Excel as much as possible. Lock the sheet(s) so the user can't modify your data entry template. Try to do validations in Excel so they don't use values that are wrong. (For example, if you have an enumeration, make sure they stick to it instead of putting in free form text.)
The real problem with this approach is that users are crazy and they will not follow your template or guidelines. I would expect to spend a lot of time debugging bad imports.
It's not an option to make a simple web application to let them add/edit data? That way you would have more control over their input. Excel potentially gives them too much power.
(Then again you can make forms with VBA in Excel to maybe restrict their input.)