Просто используйте сервлет. Поток response.getOutputStream()
в POI HSSF для записи рабочей книги. Самый важный бит - заголовок ответа Content-Disposition
. Если вы установите attachment
, то в браузере появится диалог Сохранить как .
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=name.xls");
WritableWorkbook workBook = Workbook.createWorkbook(response.getOutputStream());
// ...
Затем пусть URL-адрес загрузки указывает на этот сервлет, если необходимо, с некоторыми параметрами запроса или информацией о пути.