フルバージョンEXCELエクスポート(大フレームSpringCloudビジネスやSpringbootのA)

ここeasypoiです

最初は瓶パッケージに導入しました

<! -エクセル- > 
<依存性>
<のgroupId> cn.afterturn </のgroupId>
<たartifactId> easypoiベース</たartifactId>
<バージョン> $ {easypoi.version} </バージョン>
</依存>
<依存>
<のgroupId> cn.afterturn </のgroupId>
<たartifactId> easypoiウェブ</たartifactId>
<バージョン> $ {easypoi.version} </バージョン>
</依存>
<依存性>
<のgroupId> cn.afterturn </のgroupId >
<たartifactId> easypoiアノテーション</たartifactId>
<バージョン> $ {easypoi.version} </バージョン>
</依存>
<依存性>
<のgroupId> org.apache.poi </のgroupId>
<たartifactId> POI </たartifactId>
<バージョン> 4.1.1 </バージョン>
</依存>
2.业务代码
(1)サービスコードインタフェースレイヤ
/ ** 
*エクスポートリストを取得します
* @param jsonParam
* @return
* @throws例外は、
* /
地図<文字列、オブジェクト> getDownloadAllStaffWorkers(JSONObject jsonParam)が例外をスローします。
(2)は、クラスコードが達成serviceImpl 
、我々は最初のサーバーとバックエンドの買収にファイルをアップロードする必要があるため一部の赤、その後、URLの前端部に戻りました。General're歓迎
@Override 
パブリックマップの<string、オブジェクト> getDownloadAllStaffWorkers(JSONObject jsonParam)は例外{スロー
列workerName = jsonParam.getString( "workerNameを");
ストリングworkerCardNum = jsonParam.getString( "workerCardNum")。
ストリングworkerPhone = jsonParam.getString( "workerPhone")。
ロングallStaffWorkerTypeId = jsonParam.getLong( "allStaffWorkerTypeId");
ストリングworkerCode = jsonParam.getString( "workerCode")。
ロングSYSID = jsonParam.getLong( "SYSID");
文字列clzName = "员工表"。
ストリングはsessionToken = jsonParam.getString( "はsessionToken")。




Example.Criteria基準= example.createCriteria()。
//是否有效:1有效2无效
criteria.andEqualTo( "ISENABLED"、ConstantsConfig.IS_ENABLED_YES)。
//是否删除:1未删除2已删除
criteria.andEqualTo( "isDeleted"、ConstantsConfig.IS_DELETED_NO)。
criteria.andEqualTo( "SYSID"、SYSID)。
(!Strings.isNullOrEmpty( "workerName")){もし
criteria.andLike( "workerName"、workerName)。
}
{IF(Strings.isNullOrEmpty(workerCardNum)!)
criteria.andEqualTo( "workerCardNum"、workerCardNum)。
}
(Strings.isNullOrEmpty(workerPhone)!){もし
criteria.andEqualTo( "workerPhone"、workerPhone)。
}
(!Strings.isNullOrEmpty(String.valueOf(allStaffWorkerTypeId))){IF
criteria.andEqualTo( "allStaffWorkerTypeId"、allStaffWorkerTypeId);
}
(Strings.isNullOrEmpty(workerCode)!){IF
criteria.andEqualTo( "workerCode"、workerCode)。
}
リスト<AllStaffWorkers> allStaffWorkersList = allStaffWorkersMapper.selectByExample(実施例);
//データを導出
)(= HSSFWorkbookブック新しい新しいHSSFWorkbookを;
//テーブル宣言
HSSFSheetシート= workbook.createSheet( "社員情報テーブルを");
//テーブルを設定します幅デフォルト
; sheet.setDefaultColumnWidth((ショート)30)
//ファイル名をエクスポートする必要が
文字列をfileNameに= clzName + ".XLS";
int型たrowNum = 1;
//輸出Excelスプレッドシートのヘッド
getWorkerSex()== 2){ workerSex = "女"。 }そうしないと{















workerSex = "";
}
ROW1 = sheet.createRow(たrowNum)。
row1.createCell(0).setCellValue(allStaffWorkers.getWorkerName())。
row1.createCell(1).setCellValue(allStaffWorkers.getWorkerPhone())。
row1.createCell(2).setCellValue(allStaffWorkers.getWorkerCardNum())。
row1.createCell(3).setCellValue(workerSex)。
//组织管理表
ロングallStaffOrgId = allStaffWorkers.getAllStaffOrgId();
AllStaffOrg allStaffOrg =新しいAllStaffOrg();
allStaffOrg.setAllStaffOrgId(allStaffOrgId)。
allStaffOrg.setIsDeleted(ConstantsConfig.IS_DELETED_NO)。
allStaffOrg.setIsEnabled(ConstantsConfig.IS_ENABLED_YES)。
AllStaffOrg allStaffOrg1 = allStaffOrgMapper.selectOne(allStaffOrg)。

row1.createCell(4).setCellValue(allStaffOrg1.getOrgCode())。
row1.createCell(5).setCellValue(allStaffOrg1.getOrgName())。
row1.createCell(6).setCellValue(allStaffOrg1.getParentId())。
//工种表
allStaffWorkerTypeId = allStaffWorkers.getAllStaffWorkerTypeId()。
(もし!allStaffWorkerTypeId = NULL){
AllStaffWorkerType allStaffWorkerType =新しいAllStaffWorkerType();
allStaffWorkerType.setAllStaffWorkerTypeId(allStaffWorkerTypeId)。
allStaffWorkerType.setIsDeleted(ConstantsConfig.IS_DELETED_NO)。
allStaffWorkerType.setIsEnabled(ConstantsConfig.IS_ENABLED_YES)。
AllStaffWorkerType allStaffWorkerType1 = allStaffWorkerTypeMapper.selectOne(allStaffWorkerType)。
row1.createCell(7).setCellValue(allStaffWorkerType1.getWorkerTypeName())。
row1.createCell(8).setCellValue(allStaffWorkerType1.getWorkerTypeName())。
{}そう
続けます。
}
//字典表
ロングdictId = allStaffWorkers.getDictCommId()。
(もし!dictId = NULL){
DictComm dictComm =新しいDictComm();
dictComm.setDictId(dictId)。
dictComm.setIsDeleted(ConstantsConfig.IS_DELETED_NO)。
dictComm.setIsEnabled(ConstantsConfig.IS_ENABLED_YES)。
DictComm dictComm1 = dictCommMapper.selectOne(dictComm)。
row1.createCell(9).setCellValue(dictComm1.getDictName())。
たrowNum ++;
{}そう
続けます。
}
}
/ *バイト[] fileByte = workbook.getBytes(); / *
ByteArrayOutputStream OS =新しいByteArrayOutputStream();
workbook.write(OS)。
os.toByteArray();

)(workbook.close。
文字列httpUrl = NULL;
文字列filePathに= NULL;
文字列のURL = NULL;
試す{
URL = FastDFSUtils.getDoUpload(はsessionToken、ファイル名、os.toByteArray())。
}キャッチ(例外e){
ERRLOG( "getDownloadAllStaffWorkers"、ErrorCodeMsg.UNKNOWN_ERROR.getMessage( )、 " ファイルのダウンロードサービスのアドレスが空になってしまう");
スロー新しい新AttemptException(ErrorCodeMsg.UNKNOWN_ERRORは、 "ファイルのダウンロードサービスのアドレスが空の取得");
}
(StringUtils.isNotEmpty IF (URL)){
jSONObject jsonObject = JSONObject.parseObject(URL)、
文字列データ= jsonObject.getString( "データ");
jSONObjectのDataObject = JSONObject.parseObject(データ);
HTTPUrl = dataObject.getString( "HTTPUrl");
filePathに= dataObject.getString( "filePathに");
IF(StringUtils.isEmpty(filePathに)){
ERRLOG( "getDownloadTrainStuEnroll"、ErrorCodeMsg.UNKNOWN_ERROR.getMessage()、 "ファイルサービスは、2を空にダウンロードしてください");
;新しいAttemptException(ErrorCodeMsg.UNKNOWN_ERROR、 "ファイルのダウンロードサービスをゲット空白2")投げる
}
}
のSystem.out.println(URLを);
;地図<文字列、オブジェクト> =新しい新しい地図のHashMap <>()
(map.put "URL"、ファイルサーバ+ "/" + filePathに);
map.put( "attname"は、ファイル名);
リターンマップ;
}
(3)コントローラコードの層。
/ ** 
*下载员工
* @paramリクエスト
* @param jsonParam
* @param requestUser
* @return
* @throws例外
* /
@PostMapping( "/ getDownloadAllStaffWorkers")
公共ResponseStructのgetDownloadAllStaffWorkersを(HttpServletRequestのリクエスト、RequestBody JSONObject jsonParam @、@ ModelAttribute RequestUser requestUser)は例外{スロー
ロングSYSID = requestUser.getSysidを();
ストリングはsessionToken = request.getHeader(ConstantsConfig.ACCESS_TOKEN_KEY)。
jsonParam.put( "SYSID"、SYSID)。
jsonParam.put( "はsessionToken"、はsessionToken)。
地図<文字列、オブジェクト>マップ= allStaffWorkersInterface.getDownloadAllStaffWorkers(jsonParam)。
リターンResponseStruct.success(マップ);
}

注:フロントエンドのフレームワークVUEの建築家は、アカウントに、ファイルの全体的な管理を取るので、最初にそこのサーバーにファイルをアップロードしてから処理さfastdns必要があるため。書面による事前のシンプル。お気に入りのスポットのようにありがとうございます!

 

おすすめ

転載: www.cnblogs.com/shxkey/p/12408150.html