Another good load generator is Grinder. While JMeter is basically GUI-based, the Grinder is (Python-)script-based and has just a GUI for distribution the run over different machines and starting/stopping load generation.
AFAIK there is no direct Excel file support in JMeter, but at least CSV, which can be exported from Excel. See http://jakarta.apache.org/jmeter/userma … Set_Config
For the definition of test data or synthesization of production data, I wrote Benerator, which is (among many other things) able to import Excel files and provide its data to other applications, but itself has no web app invocation functionality. So you would need to combine it programmatically with another tool.
JMeter gives you the fastest result by clicking together what you need, but functionality is limited. With Grinder you have more control at the price of having to write client code, but you can easily plug in with Java tools like POI or Benerator for accessing data from Excel files.