使用ExcelWriter導出數據到Excel


1.引入hutool的pom依賴

  <dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.1.4</version>
  </dependency>

 2.工具類代碼

 1 public class ExcelExportUtils {
 2 
 3     public static void  exportExcelByResponse(ExcelWriter excelWriter, HttpServletResponse response, String fileName, HttpServletRequest request) throws IOException {
 4         String userAgent = request.getHeader("USER-AGENT");
 5         response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
 6             if(StringUtils.contains(userAgent, "MSIE")||StringUtils.contains(userAgent, "Trident") || StringUtils.contains(userAgent,"Edge")){//IE 瀏覽器
 7                 fileName = URLEncoder.encode(fileName,"UTF8");
 8             }else{//火狐,google等其他瀏覽器
 9                 fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
10             }
11             response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
12             //客戶端不緩存
13             response.setCharacterEncoding("UTF-8");
14             response.addHeader("Pargam", "no-cache");
15             response.addHeader("Cache-Control", "no-cache");
16             Workbook workbook = excelWriter.getWorkbook();
17             ServletOutputStream outputStream = response.getOutputStream();
18             workbook.write(outputStream);
19             workbook.close();
20             outputStream.close();
21     }
22 }

3.業務調用

 1 @Override
 2 public void exportDailyReportDetailExcel(ReportDetailVO reportDetailVO, HttpServletResponse response, HttpServletRequest request) {
 3         ExcelWriter bigWriter = ExcelUtil.getBigWriter();
 4         try {
 5             // 導出數據
 6             List<ReportDetailVO> reportDetailVOList = statisticalReportMapper.getDailyReportDetailList(reportDetailVO);
 7             // 設置列寬
 8             bigWriter.setColumnWidth(0, 15);
 9             bigWriter.setColumnWidth(1, 10);
10             bigWriter.setColumnWidth(2, 10);
11             bigWriter.setColumnWidth(3, 20);
12             bigWriter.setColumnWidth(4, 20);
13             bigWriter.setColumnWidth(5, 15);
14             // 導出列名,對應實體類屬性名
15             bigWriter.addHeaderAlias("companyName", "單位");
16             bigWriter.addHeaderAlias("deptName", "部門");
17             bigWriter.addHeaderAlias("nickName", "姓名");
18             bigWriter.addHeaderAlias("idCard", "身份證");
19             bigWriter.addHeaderAlias("address", "身份證地址");
20             bigWriter.addHeaderAlias("phone", "聯系電話");
21             bigWriter.setOnlyAlias(true);
22             bigWriter.write(reportDetailVOList);
23         } catch (Exception e) {
24             e.printStackTrace();
25             response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
26         }
27         try {
28             ExcelExportUtils.exportExcelByResponse(bigWriter, response, "報備統計" + reportDetailVO.getSearchDate(), request);
29         } catch (IOException e) {
30             throw new BaseFrameException(1, "導出失敗", false);
31         }
32     }
33 }

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM