Java線上資料匯入匯出Excel
阿新 • • 發佈:2022-03-28
利用hutool 匯入匯出 Excel
匯入maven
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.20</version>
</dependency>
匯入Excel
public ResponseData uploadExcel(MultipartFile file) { try { ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); reader.addHeaderAlias(“Excel標題名稱”, “對應實體類別名”); List<Person> personList = reader.readAll(Person.class); personMapper.batchInsert(personList); return ResponseUtil.setData("success", "檔案匯入成功"); } catch (Exception e) { log.error("檔案匯入失敗 {}", e); return ResponseUtil.setErrorMsg("檔案匯入失敗"); } }
線上匯出 xls 格式 Excel
@SneakyThrows @Override public void downloadExcel(HttpServletResponse response) { List<Person> personList = personMapper.selectList(); ExcelWriter writer = ExcelUtil.getWriter(); writer.addHeaderAlias(“實體類欄位名”, “對應Excel標題名稱”); writer.setOnlyAlias(true); writer.write(personList, true); response.setContentType("application/vnd.ms-excel;charset=utf-8"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); // 注意這裡如果需要設定中文檔名,需要重新編碼 String filename = new String(“使用者表_”.getBytes(), "iso8859-1") + LocalDate.now().format(formatter) + ".xls"; response.setHeader("Content-Disposition", "attachment;filename=" + filename); ServletOutputStream out = response.getOutputStream(); writer.flush(out, true); writer.close(); IoUtil.close(out); }