1. 程式人生 > 其它 >Java線上資料匯入匯出Excel

Java線上資料匯入匯出Excel

利用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

匯出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);
    }