Java can do pretty much anything you want it to do if you've got the programming skills. "etc" are probably fairly flexible too.
However, I think your primary problem is looking at your situation in terms of spreadsheets. That's an antiquated and restricted view on the world.
Your original description
I am in the middle of a largish 'suite' for a local organisation to allow monthly bookings sheets to be prepared and accessed and invoices to be raised from them and other functions.
Is the sort of thing that can easily be done in a database driven web application, or any client-side language if you want to run some sort of app locally on machines.
I think you need to look a little more into the power that a database can give you. A properly designed and implemented database schema can provide data input/output to suit your needs.
Afterall, "invoices to be raised from them" is just formatting of output data from a query, and "montly booking sheets" are just a bunch of input forms.
Or is there some more to this story you're not telling us ?