You can't output HTML and binary contents during the same request. You have to split it up into two requests, for example by displaying a HTML page that tells the user that the xls was created, and includes a link to the download location.
That means that you have to store one of them (either xls or the status message) somewhere on disc between the requests.