easypoi入門:Excelエクスポート機能の実装

学習元: http://www.afterturn.cn/doc/easypoi.html

オープンソースアドレス: https://gitee.com/lemur/easypoi

https://gitee.com/lemur/easypoi-spring-boot-starter

Mavenプロジェクトに依存関係を追加

<dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.4.0</version>
        </dependency>

View Codeエクスポート対象のデータエンティティにアノテーションを追加

/**
     * 氏名
     */
    @Excel(name="氏名")
    private String fullName;
    /**
     * 生年月日
     */
    @Excel(name="生年月日",format="yyyy-MM-dd",databaseFormat="yyyyMMddHHmmss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthDate;
    /**
     * 性別(1:男性 2:女性)
     */
    @Excel(name="性別",replace= {"男性_1","女性_2"},suffix="性")
    private Integer gender;
    /**
     * メールアドレス
     */
    @Excel(name="メールアドレス")
    private String emailAddress;
    /**
     * 電話番号
     */
    @Excel(name="電話番号")
    private String phoneNumber;
@GetMapping("/exportExcel")
    public void downloadExcelFile(ModelMap model, HttpServletRequest request,
            HttpServletResponse response) {
        //Office Excelのバージョンを考慮する必要があります。2007では百万データをエクスポート可能;2003は6万までで、それを超えると空白になります。大量データの場合は、sheet分割または条件分割を推奨
        List<Customer> customerData = customerService.getExcelData(null);//データベースからデータをクエリ
        //List<Customer> customerData = new ArrayList<>();
        //new ExportParams(String title,String sheet,String suffix);それぞれ表題、シート名、ファイルタイプ
        ExportParams exportConfig = new ExportParams("顧客情報","顧客リスト",ExcelType.XSSF);
        exportConfig.setFreezeCol(8);//固定列(分割線/列数に関わらず、左右スクロールバーをドラッグしても常に表示される列)
        exportConfig.setStyle(ExcelExportStylerColorImpl.class);//スタイル設定、カスタム実装IExcelDataHandler<T>
        model.put(NormalExcelConstants.DATA_LIST, customerData);//データ
        model.put(NormalExcelConstants.CLASS, Customer.class);//タイプ
        model.put(NormalExcelConstants.PARAMS, exportConfig);//Excelパラメータ
        model.put(NormalExcelConstants.FILE_NAME, "顧客情報");
        
        PoiBaseView.render(model, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);//戻り値なしでダウンロード
    }

タグ: EasyPoi Excelエクスポート Java アノテーション Spring MVC

6月9日 00:04 投稿