@GetMapping("/exportScore") public void exportScore(HttpServletResponse response) throws Exception { // 從資料庫查詢出所有的資料 List<Score> list = scoreService.getScoreAll(); // 透過工具類建立writer 寫出到磁碟路徑 // ExcelWriter writer = ExcelUtil.getWriter(filesUploadPath + "/使用者資訊.xlsx"); // 在記憶體操作,寫出到瀏覽器 ExcelWriter writer = ExcelUtil.getWriter(true); //自定義標題別名 writer.addHeaderAlias("id", "使用者名稱"); writer.addHeaderAlias("exercise_id", "運動名稱"); writer.addHeaderAlias("score", "評分值"); writer.addHeaderAlias("time", "評分時間"); // 一次性寫出list內的物件到excel,使用預設樣式,強制輸出標題 writer.write(list, true); // 設定瀏覽器響應的格式 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); // 對檔名進行URL編碼,解決中文檔名亂碼問題 String fileName = URLEncoder.encode("運動質量評價資訊", "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); // 獲取響應的輸出流 ServletOutputStream out = response.getOutputStream(); // 將excel內容寫出到響應流 writer.flush(out, true); // 關閉輸出流和writer out.close(); writer.close(); }