Upload files to create nodes
Maximum flexibility:

I would use the Migrate module. It has CSV support, and there's even direct spreadsheet support in the works. Migrate documentation.

It will require some coding, yes, and Migrate module is not the easiest module to get a grip on, so if you're new to coding, you may need some help with that, but I think it's by far the best solution.

Easier implementation:

The Feeds module claims that it can


  Import or aggregate CSV files


I haven't used that particular piece of functionality myself, but from previous use of Feeds, I'm under the impression that this could be configured from the UI, and thus wouldn't require any code. Feeds documentation.