linwe
2024-08-09 8b7258c9427882bb1798f1502eaa35184c6e374e
src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java
@@ -169,18 +169,34 @@
      ExcelUtil.export(response, "投票人员" + DateUtil.time(), "投票人员数据表", list, UserTopicsExcel.class);
   }
   /**
    * 导出Excel文件的方法。
    * 该方法用于将用户主题数据导出为Excel格式,供用户下载。
    *
    * @param response 用于设置HTTP响应,包括内容类型和文件名等信息。
    * @param userTopics 包含要导出的数据的用户主题视图对象。
    * @return 该方法不返回任何内容,而是将数据直接输出到HTTP响应的输出流中。
    */
   @GetMapping("/exportDataIndex")
   public void exportExcel(HttpServletResponse response,UserTopicsVO userTopics) {
      try (OutputStream out = response.getOutputStream()) {
         response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
         response.setCharacterEncoding("utf-8");
         String fileName = URLEncoder.encode("投票人员", "UTF-8").replaceAll("\\+", "%20");
         response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
         userTopicsService.handleExcel(out,userTopics);
         out.flush();
      } catch (Exception e) {
         logger.error(e.getMessage(),e);
      }}
   public void exportExcel(HttpServletResponse response, UserTopicsVO userTopics) {
       try (OutputStream out = response.getOutputStream()) {
           // 设置响应的内容类型为Excel文件
           response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
           // 设置响应的字符编码为UTF-8
           response.setCharacterEncoding("utf-8");
           // 编码文件名,并替换+号为%20,以兼容URL下载
           String fileName = URLEncoder.encode("投票人员", "UTF-8").replaceAll("\\+", "%20");
           // 设置响应头,指示浏览器以附件形式下载文件,并设置文件名
           response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
           // 调用服务层处理Excel数据的写入
           userTopicsService.handleExcel(out, userTopics);
           // 刷新输出流
           out.flush();
       } catch (Exception e) {
           // 记录异常信息
           logger.error(e.getMessage(), e);
       }
   }
}