There isn't anything such as a "JSF database". JSF apps can use databases (or not), but JSF itself doesn't get involved with databases.
One of the simplest ways to output an Excel spreadsheet is to format a CSV text file and set the MIME type of the output to "excel". I don't remember the exact value, but it's going to look roughly like "x-application/vnd-xls" or something of that sort. The output itself won't be an XLS file, but Excel will automatically know what to do with a CSV file.
If you actually want to output something in "Excel" format - whether it's traditional XLS or XML XML, you need some heavyweight support. The Apache Poi project is good for that.
In either event, JSF is designed to output HTML, and neither of the 2 "Excel formats" nor CSV are HTML. So you're better off using a
servlet or JSP to do the Excel output. Since JSF session-scope beans are actually just ordinary Servlet session objects, you can do your data entry using JSF to edit a session object (backing bean), then have your display servlet/JSF reference that session object to produce the output.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.