需要在response中添加  response.addHeader("content-length",length);
length代表文件长度 获取wb长度的方法
ByteArrayOutputStream baos = new ByteArrayOutputStream();
wb.write(baos); 
int length = baos.size();
response.addHeader("content-length",length+"");

完整方法如下
public static void downloadExcel(HttpServletResponse response,Workbook wb,String fileName) throws Exception{
   try {
      response.setHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes("utf-8"),"iso-8859-1"));
      response.setContentType("application/ynd.ms-excel;charset=UTF-8");
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      wb.write(baos);
      int length = baos.size();
           response.addHeader("content-length",length+"");
      OutputStream out=response.getOutputStream();
      wb.write(out);
      out.flush();
      out.close();
   } catch (IOException e) {
      e.printStackTrace();
   }
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐