/**
* 復制sour里屬性不為空的值到obje為空的屬性
*
* @param obje
* 目標實體類
* @param sour
* 源實體類
* @param isCover
* 是否保留obje類里不為null的屬性值(true為保留源值,屬性為null則賦值)
* @return obje
*/
public static Object Copy(Object obje, Object sour, boolean isCover) {
Field[] fields = sour.getClass().getDeclaredFields();
for (int i = 0, j = fields.length; i < j; i++) {
String propertyName = fields[i].getName();
Object propertyValue = getProperty(sour, propertyName);
if (isCover) {
if (getProperty(obje, propertyName) == null
&& propertyValue != null) {
Object setProperty = setProperty(obje, propertyName,
propertyValue);
}
} else {
Object setProperty = setProperty(obje, propertyName,
propertyValue);
}
}
return obje;
}
/**
* 給bean賦值
*
* @param bean
* @param propertyName
* @param value
* @return
*/
private static Object setProperty(Object bean, String propertyName,
Object value) {
Class clazz = bean.getClass();
try {
Field field = clazz.getDeclaredField(propertyName);
Method method = clazz.getDeclaredMethod(
getSetterName(field.getName()),
new Class[] { field.getType() });
return method.invoke(bean, new Object[] { value });
} catch (Exception e) {
}
return null;
}
/**
* 得到值
*
* @param bean
* @param propertyName
* @return
*/
private static Object getProperty(Object bean, String propertyName) {
Class clazz = bean.getClass();
try {
Field field = clazz.getDeclaredField(propertyName);
Method method = clazz.getDeclaredMethod(
getGetterName(field.getName()), new Class[] {});
return method.invoke(bean, new Object[] {});
} catch (Exception e) {
}
return null;
}
/**
* 得到setter方法
*
* @param propertyName
* 變量名
* @return
*/
private static String getSetterName(String propertyName) {
// String method = "set" + propertyName.substring(0, 1).toUpperCase() +
// propertyName.substring(1);
String method;
if (propertyName.length() > 1
&& Character.isUpperCase(propertyName.charAt(1))) {
method = "set" + propertyName;
} else {
method = "set" + propertyName.substring(0, 1).toUpperCase()
+ propertyName.substring(1);
}
return method;
}
/**
* 根據變量名得到get方法
*
* @param propertyName
* @return
*/
private static String getGetterName(String propertyName) {
String method;
if (propertyName.length() > 1
&& Character.isUpperCase(propertyName.charAt(1))) {
method = "get" + propertyName;
} else {
method = "get" + propertyName.substring(0, 1).toUpperCase()
+ propertyName.substring(1);
}
return method;
}
public static Object getCellFormatValue(Cell cell) {
Object cellValue = null;
if (cell != null) {
// 判斷cell類型
switch (cell.getCellType()) {
case NUMERIC: {
cellValue = String.valueOf(cell.getNumericCellValue());
break;
}
case FORMULA: {
// 判斷cell是否為日期格式
if (DateUtil.isCellDateFormatted(cell)) {
// 轉換為日期格式YYYY-mm-dd
// cellValue = cell.getDateCellValue();
cellValue = new SimpleDateFormat("yyyy-MM-dd").format(cell
.getDateCellValue());
} else {
// 數字
cellValue = String.valueOf(cell.getNumericCellValue());
}
break;
}
case STRING: {
cellValue = cell.getRichStringCellValue().getString();
break;
}
default:
cellValue = "";
}
} else {
cellValue = "";
}
return cellValue;
}
/**
* 獲得取值位置單元格。
*
* @param sh
* @param point
* @param labColIndex
* @param labRowIndex
* @param currentrow
* @return
*/
private static Cell getCell(Sheet sh, String point, int labColIndex,
int labRowIndex, int currentrow) {
int colIndex = -1;
int rowIndex = -1;
if (point.equalsIgnoreCase("N")) {
colIndex = labColIndex;
rowIndex = currentrow;
}
if (point.equalsIgnoreCase("U")) {
colIndex = labColIndex;
rowIndex = labRowIndex - 2;
}
if (point.equalsIgnoreCase("D")) {
colIndex = labColIndex;
rowIndex = labRowIndex;
}
if (point.equalsIgnoreCase("L")) {
colIndex = labColIndex - 1;
rowIndex = labRowIndex - 1;
}
if (point.equalsIgnoreCase("R")) {
colIndex = labColIndex + 1;
rowIndex = labRowIndex - 1;
}
if (point.equalsIgnoreCase("C")) {
colIndex = labColIndex;
rowIndex = labRowIndex - 1;
}
Row row = sh.getRow(rowIndex);
if (row != null) {
return row.getCell(colIndex);
}
return null;
}
public static Object getMergedRegionValue(Sheet sheet, int row, int column) {
int sheetMergeCount = sheet.getNumMergedRegions();
for (int i = 0; i < sheetMergeCount; i++) {
CellRangeAddress ca = sheet.getMergedRegion(i);
int firstColumn = ca.getFirstColumn();
int lastColumn = ca.getLastColumn();
int firstRow = ca.getFirstRow();
int lastRow = ca.getLastRow();
if (row >= firstRow && row <= lastRow) {
if (column >= firstColumn && column <= lastColumn) {
Row fRow = sheet.getRow(firstRow);
Cell fCell = fRow.getCell(firstColumn);
return CellUtil.getCellValue(fCell, true);
}
}
}
return null;
}
- 服務組件
- sca-register注冊配置中心
- sca-gateway服務網關
- sca-auth認證授權服務
- sca-upms權限管理服務
- sca-quartz定時任務服務
- sca-monitor系統監控服務
- sca-commservie通訊前置服務
- sca-sentinel限流熔斷服務
- sca-codegen代碼生成服務
- sca-message消息發送服務
- sca-rule規則引擎服務
- sca-workflow工作流引擎服務
- sca-report報表服務
- ELK日志服務
- SkyWalking鏈路跟蹤
- Prometheus監控
- 技術組件
- sca-common-swagger(聚合文檔)
- sca-common-log(系統日志)
- sca-common-sentinel(熔斷限流)
- sca-common-feign(Feign接口調用)
- sca-common-sequence(分布式發號器)
- sca-common-gray(灰度發布)
- sca-common-security(授權認證)
- sca-common-datasource(動態數據源)
- sca-common-data(數據庫及緩存)
- sca-common-oss(文件服務)
- sca-common-xss(XSS安全過濾)
- sca-common-test(微服務單元測試)
- sca-common-test-alone(單體應用單元測試)
- sca-common-memdb(內存數據庫)
- 日志脫敏
- Pdf文檔轉換及預覽
- IDE組件
- IDE技術組件介紹
- FastJson技術組件類
- 對象轉string技術組件
- JDBC操作技術組件類
- SQL查詢(完整SQL)技術組件
- 關閉連接技術組件
- 執行預編譯SQL(update)技術組件
- 數據分頁查詢技術組件
- 數據刪除技術組件
- 數據批量插入技術組件
- 數據插入技術組件
- 數據更新技術組件
- 標準數據查詢方法(單表)技術組件
- 獲取序列號技術組件
- 行數統計技術組件
- 調用存儲過程技術組件
- 預編譯SQL查詢(參數)
- 集合操作技術組件類
- Set和List類型互轉技術組件
- 交集技術組件
- 增加元素(批量)技術組件
- 增加元素技術組件
- 差集技術組件
- 并集技術組件
- 替換元素技術組件
- 集合刪除(下標)技術組件
- 集合刪除(元素)技術組件
- 集合清空技術組件
- 金額處理技術組件類
- 乘技術組件
- 元轉換為分技術組件
- 減技術組件
- 刪除千分符技術組件
- 加技術組件
- 取金額絕對值技術組件
- 字符串轉BigDecimal技術組件
- 是否為0技術組件
- 金額格式化技術組件
- 金額比較技術組件
- 金額舍入技術組件
- 金額轉大寫技術組件
- 除技術組件
- Redishash操作的組件集合
- 刪除字段技術組件
- 字段是否存在技術組件
- 設置字段值(覆蓋)技術組件
- 獲取字段值技術組件
- 設置字段值(不覆蓋)技術組件
- 批量設置字段值技術組件
- 批量獲取字段值技術組件
- 獲取字段數量技術組件
- 獲取字段名稱列表技術組件
- 獲取字段值列表技術組件
- 獲取字段和值列表技術組件
- Redis_Key操作技術組件類
- 獲得redisTemplate技術組件
- 重命名key技術組件
- 清空Redis技術組件
- key是否存在技術組件
- 取消過期時間技術組件
- 獲取數據結構類型技術組件
- 設置過期時間(毫秒)技術組件
- 設置固定過期時間技術組件
- 剩余存活時間(秒)技術組件
- 刪除(批量)技術組件
- 刪除(單個)技術組件
- 移動key到指定db技術組件
- 集合排序(正序)技術組件
- Redis_List操作組件操作類
- 插入(尾部)技術組件
- 插入(頭部)技術組件
- 列表長度技術組件
- 截取區間列表元素技術組件
- 保留列表元素技術組件
- 獲取列表元素(按下標)技術組件
- 設置列表元素(按下標)技術組件
- 刪除元素(按值出現次數)技術組件
- 移除并返回元素(頭部)技術組件
- 移除并返回元素(尾部)技術組件
- 已有列表插入(尾部)技術組件
- 已有列表插入(頭部)技術組件
- 已有列表插入(按位置)技術組件
- 配置中心技術組件類
- 獲取Nacos配置內容技術組件
- 通訊前置技術組件類
- 異步應答技術組件
- 組報文(前置)技術組件
- 解報文(前置)技術組件
- 調用第三方交易技術組件
- 調試輸出技術組件類
- 輸出日志(debug)技術組件
- 輸出日志(warn)技術組件
- 輸出日志(error)技術組件
- 輸出日志(info)技術組件
- 編解碼處理技術組件類
- BCD編碼技術組件
- BCD解碼技術組件
- Base64編碼技術組件
- Base64解碼技術組件
- 服務調用技術組件類
- 交易調用(分布式)技術組件
- 交易調用(第三方系統)技術組件
- 服務調用(rest服務名)技術組件
- 服務調用(ip-port)技術組件
- 日期時間技術組件類
- 當前時間(date)技術組件
- 當前時間(字符串)技術組件
- 當前時間(毫秒)技術組件
- 日期格式檢查技術組件
- 日期比較技術組件
- 日期相加技術組件
- 格式化日期技術組件
- 獲取日歷字段技術組件
- 計算時間差(Date)技術組件
- 計算時間差(字符串)技術組件
- 轉換日期對象技術組件
- 文件操作技術組件類
- MD5計算簽名技術組件
- ZIP文件壓縮技術組件
- ZIP文件解壓縮技術組件
- 寫文件內容技術組件
- 創建文件技術組件
- 創建文件目錄技術組件
- 文件刪除技術組件
- 文件合并技術組件
- 文件大小技術組件
- 文件存在檢查技術組件
- 文件拷貝技術組件
- 文件查找技術組件
- 讀文件內容技術組件
- 讀文件行技術組件
- 數據庫操作技術組件類
- 切換數據源技術組件
- 刪除(BatchIds)技術組件
- 刪除(Entity)技術組件
- 刪除(ID)技術組件
- 刪除(columnMap)技術組件
- 回滾上一事務技術組件
- 回滾全部事務技術組件
- 開啟事務技術組件
- 執行指定方法技術組件
- 提交上一事務技術組件
- 提交全部事務技術組件
- 新增數據技術組件
- 更新(Entity)技術組件
- 更新(ID)技術組件
- 查詢(BatchIds)技術組件
- 查詢(ID)技術組件
- 查詢(Objects)技術組件
- 查詢(columnMap)技術組件
- 查詢(list)技術組件
- 查詢(map)技術組件
- 查詢(分頁)技術組件
- 查詢(單條)技術組件
- 查詢(總條數)技術組件
- 清理數據源技術組件
- 數據字典技術組件類
- 平臺字典技術組件
- 應用字典技術組件
- 銀行字典技術組件
- 平臺內置組件技術組件類
- switch選擇器技術組件
- 從異步組件中獲取數據技術組件
- 初始化線程池技術組件
- 判斷異步組件是否已完成技術組件
- 當期線程休眠技術組件
- 獲取異常信息到容器技術組件
- 獲取環境變量技術組件
- 獲取系統變量技術組件
- 表達式判斷技術組件
- 設置全局錯誤技術組件
- 隨機正整數技術組件
- 對象操作技術組件類
- map轉對象技術組件
- 創建list技術組件
- 創建實體類對象(空對象)技術組件
- 創建實體對象(賦值)技術組件
- 反序列化對象技術組件
- 對象屬性賦值技術組件
- 對象序列化成數組技術組件
- 獲取對象類型名稱技術組件
- 獲得對象字段值技術組件
- 獲得對象屬性及值列表技術組件
- Redis_Set操作技術組件類
- 添加元素技術組件
- 獲取所有元素技術組件
- 移除指定元素技術組件
- 隨機移除并返回(一個)技術組件
- 隨機移除并返回(多個)技術組件
- 集合元素數量技術組件
- 是否包含指定元素技術組件
- 隨機返回元素(一個)技術組件
- 隨機返回元素(多個)技術組件
- Redis_String操作技術組件類
- 設置值(覆蓋)技術組件
- 獲取值技術組件
- 獲取值(批量)技術組件
- 字符串追加值技術組件
- 設置值(不覆蓋)技術組件
- 設置值(帶過期時間:秒)技術組件
- 覆蓋部分值技術組件
- 截取區間字符串技術組件
- 賦值并返回舊值技術組件
- 值長度技術組件
- Redis_ZSet操作技術組件類
- ZSet添加元素技術組件
- 獲取區間集合元素(正序按下標)技術組件
- 獲取區間集合元素(倒序按下標)技術組件
- 移除集合元素技術組件
- 增加元素的排序值技術組件
- 獲取元素排名(正序)技術組件
- 獲取元素排名(倒序)技術組件
- ZSet集合元素數量技術組件
- 獲取元素排序值技術組件
- 統計區間元素數量技術組件
- 移除區間元素(按排名)技術組件
- 移除區間元素(按排序值)技術組件
- 容器操作技術組件類
- 取容器深度技術組件
- 容器刪除(按value)技術組件
- 容器變量刪除(保留keys)技術組件
- 容器變量刪除(刪除單個key)技術組件
- 容器變量刪除(刪除多個key)技術組件
- 容器變量賦值技術組件
- 容器變量賦值(批量)技術組件
- 獲取容器變量值技術組件
- 容器變量拷貝技術組件
- 容器變量獲取(批量)技術組件
- 容器清空技術組件
- 容器多層次賦值技術組件
- Redis計算操作組件類
- 減(整數)技術組件
- 減1技術組件
- 加(整數)技術組件
- 加1技術組件
- 加(浮點數)技術組件
- hash字段加(整數)技術組件
- UUID和ID技術組件類
- 生成UUID技術組件
- 生成ID技術組件
- 批量生成ID技術組件
- 公共方法源碼
- 安全組件技術組件類
- 3DES加密技術組件
- 3DES解密技術組件
- DES加密技術組件
- DES解密技術組件
- MD5十進制字符串技術組件
- MD5計算簽名技術組件
- 獲取CRC16碼技術組件
- excel技術組件類
- 獲取工作簿技術組件
- 獲取工作簿(文件名)技術組件
- 工作簿寫文件技術組件
- sheet數技術組件
- sheet行數技術組件
- 工作簿數據行數技術組件
- sheet列表技術組件
- 獲取sheet技術組件
- 創建工作簿(xlsx)技術組件
- 創建工作簿(指定格式)技術組件
- 工作簿64編碼技術組件
- 文件是否超出限制技術組件
- 文件是否超出限制(文件名)技術組件
- 輸出文件地址技術組件
- 新建日期文件夾技術組件
- 截取文件路徑技術組件
- 工作簿清理技術組件
- 打開Excel文件技術組件
- 取Excel列數據技術組件
- 取Excel單元格技術組件
- 取Excel行列數技術組件
- 取Excel行數據技術組件
- 公共方法
- 字符串技術組件類
- 字符串切割技術組件
- 字符串去空格技術組件
- 字符串是否包含技術組件
- 字符串截取技術組件
- 統計字符數技術組件
- 統計字節數技術組件
- 以子字符串開始技術組件
- 以子字符串結尾技術組件
- 字符串轉大寫技術組件
- 字符串轉小寫技術組件
- 是否包含全角字符技術組件
- 字符串拼接技術組件
- 字符串連接技術組件
- 字符串替換技術組件
- 字符串正則表達式替換技術組件
- 字符串非空技術組件
- 字符串補齊技術組件
- 正則表達式匹配技術組件
- 字符串編碼轉換技術組件
- 字符串查找定位技術組件
- 變量操作技術組件類
- 字段檢查(長度范圍)技術組件
- 正則表達式檢查技術組件
- 數字檢查(大小區間)技術組件
- 變量字段檢查(類型、長度)技術組件
- 身份證號校驗技術組件
- 身份照15位轉18位技術組件
- 上傳下載技術組件類
- FTP文件上傳技術組件
- FTP文件下載技術組件
- SFTP文件上傳技術組件
- SFTP文件下載技術組件
- 自定義組件開發
- IDE技術組件包,技術組件類創建
- 新建、編輯IDE技術組件
- 過時組件介紹
- 技術組件API
- 新建普通java類
- 注冊技術組件
- 打包技術組件
- 前端控件