【问题标题】:write XSSFWorkbook excel file to response stream将 XSSFWorkbook excel 文件写入响应流
【发布时间】:2018-05-27 15:34:54
【问题描述】:

我有这个网页 单击按钮时,它会读取数据并将文件保存到位置 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();

}

【问题讨论】:

    标签: java excel response


    【解决方案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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-15
      • 2012-08-08
      • 1970-01-01
      • 2023-03-12
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多