Записать файл Excel XSSFWorkbook в поток ответов
У меня есть эта веб-страница при нажатии кнопки, она считывает данные и сохраняет файл в папку xyz.
я не хочу этого Я хочу загрузить его через браузер Chrome.
как отправить ответ ниже?
Ошибка в строке response.getOutputStream().write(outputStream);
Спасибо
public void exportCOAExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
//works well. save excel file to desktop
XSSFWorkbook workbook = new XSSFWorkbook ();
FileOutputStream outputStream = new FileOutputStream("C:\\Users\\user\\Desktop\\revenue.xls");
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
//trying to get browser to download the file
response.setContentType("text/xls");
response.setHeader("Content-disposition", "attachment;filename=" + "a.xls");
/************problematic line************/
response.getOutputStream().write(outputStream);
response.getOutputStream().flush();
}
1 ответ
Вы можете написать workbook
непосредственно к ответу outputstream
,
XSSFWorkbook workbook = new XSSFWorkbook();
response.setContentType("text/xls");
response.setHeader("Content-disposition", "attachment;filename=" + "a.xls");
try (OutputStream outputStream = response.getOutputStream()) {
workbook.write(outputStream);
}