From 65f1296728ac4a2c207d411b50659af683628413 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期五, 30 七月 2021 09:22:39 +0800
Subject: [PATCH] fix: 导入新员工时也同步写一条入职记录

---
 febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java |   92 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 84 insertions(+), 8 deletions(-)

diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
index f73ff68..126e63c 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
@@ -8,6 +8,8 @@
 import java.util.Date;
 import java.util.List;
 
+import cn.hutool.core.util.StrUtil;
+import com.esotericsoftware.minlog.Log;
 import org.apache.poi.hssf.usermodel.HSSFDataFormat;
 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -24,7 +26,7 @@
 
 	/**
 	 * 描述:获取IO流中的数据,组装成List<List<Object>>对象
-	 * 
+	 *
 	 * @param in,fileName
 	 * @return
 	 * @throws IOException
@@ -79,14 +81,14 @@
 		// 遍历当前sheet中的所有行
 		/*
 		 * int countCellNum = 0; for (int j = sheet.getFirstRowNum(); j <=
-		 * sheet.getLastRowNum(); j++) { row = sheet.getRow(j); if (row == null
-		 * || row.getFirstCellNum() == j) { if (row != null) countCellNum =
+		 * sheet.getLastRowNum(); j++) { row = sheet.getRow(j); if (row == null ||
+		 * row.getFirstCellNum() == j) { if (row != null) countCellNum =
 		 * row.getLastCellNum(); continue; }
-		 * 
+		 *
 		 * // 遍历所有的列 List<Object> li = new ArrayList<Object>(); for (int y = row
 		 * .getFirstCellNum(); y <= countCellNum; y++) { cell = row.getCell(y);
 		 * li.add(this.getCellValue(cell));
-		 * 
+		 *
 		 * } list.add(li); }
 		 */
 
@@ -95,8 +97,82 @@
 	}
 
 	/**
+	 * 描述:获取IO流中的数据,组装成List<List<List<Object>>>对象,多个sheet
+	 *
+	 * @param in,fileName
+	 * @return
+	 * @throws IOException
+	 */
+	public static List<List<List<Object>>> getMulitListByExcel(InputStream in, String fileName) throws Exception {
+		List<List<Object>> list = null;
+
+		// 创建Excel工作薄
+		Workbook work = getWorkbook(in, fileName);
+		if (null == work) {
+			throw new Exception("创建Excel工作薄为空!");
+		}
+		List<List<List<Object>>> returnList = new ArrayList<List<List<Object>>>();
+		try {
+            for (Sheet sheet : work) {
+                Row row = null;
+                Cell cell = null;
+
+                list = new ArrayList<List<Object>>();
+                if (sheet == null) {
+                    continue;
+                }
+                // 取得Excel的总列数,总行数
+                int columns = 0;
+                Row firstRow = sheet.getRow((short) 0);
+                if (firstRow != null) {
+                    columns = firstRow.getPhysicalNumberOfCells();
+                }
+
+                int rows = sheet.getPhysicalNumberOfRows();
+                List<Object> dataRow = null;
+
+                // 首行为定义标题的行,数据从第2行开始
+                for (int i = 1; i < rows; i++) {
+                    dataRow = new ArrayList<Object>();
+                    // 获取行
+                    row = sheet.getRow(i);
+                    if (row == null) {
+                        break;
+                    }
+
+                    cell = row.getCell(0);
+                    if (StrUtil.isBlank(getCellValue(cell).toString())) {
+                        break;
+                    }
+
+                    if (row != null) {
+                        // columns=row.getPhysicalNumberOfCells();//不在这里设置,通过firstRow来获取列数信息。
+                        for (int j = 0; j < columns; j++) {
+                            // 获取某行某列的某一个单元格
+                            cell = row.getCell(j);
+
+                            // 往dataRow存值
+                            dataRow.add(getCellValue(cell));
+                        }
+                        list.add(dataRow);
+                    } else {
+                        list.add(new ArrayList<>());
+                    }
+                }
+
+                work.close();
+                returnList.add(list);
+            }
+        } catch (Exception e){
+            Log.error(e.getMessage());
+        }
+
+		return returnList;
+	}
+
+	/**
 	 * 描述:根据文件后缀,自适应上传文件的版本
-	 * 
+	 *
 	 * @param inStr,fileName
 	 * @return
 	 * @throws Exception
@@ -116,7 +192,7 @@
 
 	/**
 	 * 描述:对表格中数值进行格式化
-	 * 
+	 *
 	 * @param cell
 	 * @return
 	 */
@@ -187,4 +263,4 @@
 
 	}
 
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0