Well, for the table display with sorting I'd look into this component...
http://myfaces.apache.org/tomahawk/extDataTable.html The excel export is a pretty good idea. At my day job we're doing that for some reports, so now you got me thinking.
A custom component would probably work, but I was thinking you could also write a standard function to handle this.
1) Bind the table to a bean propery
2) Have a link that calls an 'exportExcel' function or something similar
3) Get the DataModel and the column children
4) Loop through the data model rows, then through the column children for each row, and build the file (JExcel or apache's POI)
How to deliver the file I'm not too clear on. From what I've read you can short circuit the response writting, so your action handler function can just write the excel file. I do not know if that's true but I think it'll work.