エクスポート・データベースを達成するためのフレームワークjfinal

Mavenの

<依存> 
    <groupIdを> org.apache.poi </ groupIdを> 
    <たartifactId> POI </たartifactId> 
    <バージョン> 3.17 </バージョン> 
</依存関係>

 フロントエンドコード

<P配向= "左"> <a href="/admin/customer/export">导出数据する</a>

  ツール

パッケージcom.jfinal.club._admin.customer。

インポートのjava.io.File;
輸入java.io.FileNotFoundException。
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException;
輸入java.text.SimpleDateFormatの。
輸入java.util.Date;
輸入はjava.util.List;
輸入java.util.Map; 

輸入org.apache.poi.hssf.usermodel.HSSFCell;
輸入org.apache.poi.hssf.usermodel.HSSFRow。
輸入org.apache.poi.hssf.usermodel.HSSFSheet。
輸入org.apache.poi.hssf.usermodel.HSSFWorkbook; 

輸入com.jfinal.kit.PathKit。
輸入com.jfinal.plugin.activerecord.Db。
輸入com.jfinal.plugin.activerecord.Record; 

パブリック クラスCustomerExcelExportUtil { 

    プライベート 静的 最終列FILEPATH = PathKit.getWebRootPath()+ File.separator + "アップロード" + File.separator。

    公共の 静的な文字列のgetTitle(){ 
        日付 = 新しい日付(); 
        SimpleDateFormatのDATEFORMAT = 新しいてSimpleDateFormat( "YYYY-MM-DD" ); 
        文字列のタイトル = FILEPATH + dateFormat.format(日付)+ "_统计用户表.XLS" リターンのタイトル。
    }


    パブリック 静的ファイルのセーブファイル(MAP <文字列、文字列> headData、文字列SQL、ファイルファイル){
         // ワークブック作成 
        HSSFWorkbook HSSFWorkbook = 新しい新しいHSSFWorkbook();
         // シート:略称テーブルを
         // 行:表の行
         // ブックのワークシートを作成 
        HSSFSheet HSSFSheet = hssfWorkbook.createSheet();
         // 行作成 
        HSSFRow hssfSheet.createRow行を=(0 );
         // 配置された列ヘッダを作成するために、細胞を作成 
        HSSFCellセル= ヌル;
         // 初期のインデックス
        int型 rowIndexに= 0 ;
         int型= 0 cellIndex ; 

        // ヘッダ行作成 
        行= hssfSheet.createRow(rowIndexプロパティ); 
        rowIndexには ++ ;
         // タイトル横断
        のために(文字列H:headData.keySet()){
             // 行を作成 
            セルを= row.createCell(cellIndex) ;
             // インデックスがインクリメント 
            ++ cellIndexを;
             // 列の挿入タイトルで
            cell.setCellValue(headData.get(H)); 
        } 

        // すべての行を取得:コラム 
        一覧<記録>リストを= Db.findは、( "顧客から選択します*" ); 
        レコードレコード = NULL; 

        IF(!一覧= nullが){
             // レコードの数にすべてのレコードを取得するどのように多くの行を作成
            するためにint型 ;)私ははlist.sizeを(<;私は= 0私は++ ){  = hssfSheet.createRow(rowIndexプロパティ)。
                 // 彼のパーティに代わってすべての行にレコードを取得 
                、レコード= list.get(I);
                 // 次の行のインデックス 
                rowIndexに++ ;
                 // 新しい行のインデックスを更新し 
                cellIndexを0 = ;
                 // 便利な転送に基づき、そこにすべてのレコードでヘッダに来て、その後、Nラインを作成
                するための(列H:headData.keySet()){ 
                    細胞= row.createCell(cellIndex)。
                    cellIndex ++ ;
                    // 按照每条记录匹配数据 
                    cell.setCellValue(record.get(H)== nullの ""?:record.get(H).toString()); 
                } 
            } 
        } 
        試みる{ 
            たFileOutputStream fileOutputStreane = 新しいたFileOutputStream(ファイル)。
            hssfWorkbook.write(fileOutputStreane)。
            fileOutputStreane.flush(); 
            fileOutputStreane.close(); 

        } キャッチ(にFileNotFoundException電子){
            e.printStackTrace(); 
        } キャッチ(IOExceptionを電子){ 
            e.printStackTrace(); 
        } 
        戻りファイル。
    } 
}

コントローラ

公共 ボイドエクスポート(){ 
        文字列は、SQL = "* from` customer`選択" 
        地図 <文字列、文字列> = titleData 新しい新規のHashMap <文字列、文字列>(); // ヘッダを用い、続い 
        titleData.putを( "UID" "顧客ID" ); 
        titleData.put( "PID"、 "親ID" ); 
        titleData.put( "ログインID"、 "ログイン" ); 
        titleData.put( "TEL"、 "電話番号" ); 
        titleData .put( "レベル"、 "顧客レベル" ); 
        titleData.put( "ステータス"、 "アカウントステータス" )。
        titleData.put(「本名」、「本名」)。); 
        titleData.put( "ntasks"、 "总任务数" ); 
        titleData.put("extasks"、 "タスクの状態" ); 
        titleData.put( "cassets"、 "チェーン資産" ); 
        titleData.put( "Reson"、 "ロックの量" ); 
        titleData.put( "djprice"、「凍結量" ); 
        titleData.put( " zgkc ""買いだめ" ); 
        titleData.put( " XZC ""新規ユーザ登録" ); 
        titleData.put( " mrtz ""日常の総投資額" ); 
        titleData .put( "CREATED_TIME"、 "作成日時" ); 
        ファイルファイル = 新しい新しいファイル(CustomerExcelExportUtil.getTitle());
        ファイル = CustomerExcelExportUtil.saveFile(titleData、SQL、ファイル)。
        この.renderFile(ファイル); 
    }

あなたはそれをエクスポートするデータベーステーブルにSQLファイルのようなツールを変更します

おすすめ

転載: www.cnblogs.com/fanxu3/p/11484299.html