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ファイルのようなツールを変更します