записать файл Excel XSSFWorkbook в поток ответов - PullRequest
0 голосов
/ 27 мая 2018

У меня есть эта веб-страница при нажатии кнопки, она считывает данные и сохраняет файл в папку 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 Ответ

0 голосов
/ 27 мая 2018

Вы можете написать 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...