From 179ace046094b9d84a8596ea78c9702390d5a56b Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期四, 25 三月 2021 15:34:44 +0800
Subject: [PATCH] fix(bug修复): excel导出日期处理

---
 febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java |   72 +++++++++++++++++++++++++++++++++---
 1 files changed, 66 insertions(+), 6 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 3f5b6e7..de94684 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
@@ -29,11 +29,11 @@
 	 * @return
 	 * @throws IOException
 	 */
-	public List<List<Object>> getListByExcel(InputStream in, String fileName) throws Exception {
+	public static List<List<Object>> getListByExcel(InputStream in, String fileName) throws Exception {
 		List<List<Object>> list = null;
 
 		// 创建Excel工作薄
-		Workbook work = this.getWorkbook(in, fileName);
+		Workbook work = getWorkbook(in, fileName);
 		if (null == work) {
 			throw new Exception("创建Excel工作薄为空!");
 		}
@@ -79,8 +79,8 @@
 		// 遍历当前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
@@ -95,13 +95,73 @@
 	}
 
 	/**
+	 * 描述:获取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>>>();
+		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) {
+					// 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);
+		}
+		
+		return returnList;
+	}
+
+	/**
 	 * 描述:根据文件后缀,自适应上传文件的版本
 	 * 
 	 * @param inStr,fileName
 	 * @return
 	 * @throws Exception
 	 */
-	public Workbook getWorkbook(InputStream inStr, String fileName) throws Exception {
+	public static Workbook getWorkbook(InputStream inStr, String fileName) throws Exception {
 		Workbook wb = null;
 		String fileType = fileName.substring(fileName.lastIndexOf("."));
 		if (excel2003L.equals(fileType)) {
@@ -121,7 +181,7 @@
 	 * @return
 	 */
 	@SuppressWarnings("deprecation")
-	public Object getCellValue(Cell cell) {
+	public static Object getCellValue(Cell cell) {
 		try {
 			Object value = null;
 

--
Gitblit v1.8.0