1. 程式人生 > >Easypoi模版匯出excel

Easypoi模版匯出excel

@Controller
@RequestMapping(value = "exportexcel")
public class ExportExcelTest {
    @RequestMapping(value="exportexceltest")
    @ResponseBody
    public String exportExcelTest(HttpServletResponse response){
        // 獲取workbook物件
        Workbook workbook = exportSheetByTemplate() ;
        // 判斷資料
        if(workbook == null) {
            return "fail";
        }
        // 設定excel的檔名稱
        String excelName = "測試excel" ;
        // 重置響應物件
        response.reset();
        // 當前日期,用於匯出檔名稱
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String dateStr = "["+excelName+"-"+sdf.format(new Date())+"]";
        // 指定下載的檔名--設定響應頭
        response.setHeader("Content-Disposition", "attachment;filename=" +dateStr+".xls");
        response.setContentType("application/vnd.ms-excel;charset=UTF-8");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        // 寫出資料輸出流到頁面
        try {
            OutputStream output = response.getOutputStream();
            BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
            workbook.write(bufferedOutPut);
            bufferedOutPut.flush();
            bufferedOutPut.close();
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "success";
    }

    /**
     * 模版單sheet匯出示例
     * @return
     */
    public Workbook exportSheetByTemplate(){
        // 查詢資料,此處省略
        List list = new ArrayList<>();
        int count1 = 0 ;
        EasyPOIModel easyPOIModel11 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("張三","男",20)) ;
        EasyPOIModel easyPOIModel12 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("李四","男",17)) ;
        EasyPOIModel easyPOIModel13 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("淑芬","女",34)) ;
        EasyPOIModel easyPOIModel14 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("仲達","男",55)) ;
        list.add(easyPOIModel11) ;
        easyPOIModel11 = null ;
        list.add(easyPOIModel12) ;
        easyPOIModel12 = null ;
        list.add(easyPOIModel13) ;
        easyPOIModel13 = null ;
        list.add(easyPOIModel14) ;
        easyPOIModel14 = null ;
        // 設定匯出配置
        // 獲取匯出excel指定模版
        TemplateExportParams params = new TemplateExportParams("d:/專案測試資料夾/easypoiExample.xlsx");
        // 標題開始行
        params.setHeadingStartRow(0);
        // 標題行數
        params.setHeadingRows(2);
        // 設定sheetName,若不設定該引數,則使用得原本得sheet名稱 
        params.setSheetName("班級資訊");
        // 匯出excel
        return ExcelExportUtil.exportExcel(params, EasyPOIModel.class,list, new HashMap<>());
    }
}