Ok , display the category names first , onselect of category you need to display report name (ajax calls) , on select of report name and date(choose date from the calendar) and on submit( you need to pass the report name and selected date) you need to generate Excel (Apache POI).
Your work is on totally doing the Operation as mentioned above and writing a template to generate Excel.
If you need help let me know.
Fail Open == Fail Close,using JSF 2 . Spring as Major