Well, the default buffered content creates some byte[]-Array and some content type (is the mime type for excel "application/msexcel"? Am not 100% sure, please check). And you may pass a file name as well (method: passClientFileName()). So if it is word or excel or whatever - does not matter!
So, yes, create your byte[] with Apache POI on server side and make it available as buffered content.
Regards, Björn
btw: when using content type "application/octet" then browsers will always download the document (and not try to open it via plugins)