From 129879f45b1b59f8e1b26c766a80d50f371be385 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 08 九月 2023 18:21:56 +0800
Subject: [PATCH] 人员信息导入

---
 VueWebCoreApi/Tools/ImportExcel.cs |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/VueWebCoreApi/Tools/ImportExcel.cs b/VueWebCoreApi/Tools/ImportExcel.cs
index a3c206b..c6f0b4f 100644
--- a/VueWebCoreApi/Tools/ImportExcel.cs
+++ b/VueWebCoreApi/Tools/ImportExcel.cs
@@ -1273,5 +1273,52 @@
             return table.Rows.Count;
         }
         #endregion
+
+
+        #region
+        public static List<ExcelErro> InportExcelToTableListErro(List<DataTable> excelTable)
+        {
+            List<ExcelErro> list = new List<ExcelErro>();
+            for (int i = 0; i < excelTable.Count; i++)
+            {
+                var emptyColumn = excelTable[i].Columns.Cast<DataColumn>().FirstOrDefault(
+                    column => column.ColumnName.Contains("*") && excelTable[i].AsEnumerable().Any(row => row.IsNull(column))
+                    );
+
+                if (emptyColumn != null)
+                {
+                    int columnIndex = excelTable[i].Columns.IndexOf(emptyColumn);
+                    int rowIndex = excelTable[i].AsEnumerable().ToList().FindIndex(row => row.IsNull(emptyColumn));
+                    ExcelErro erro = new ExcelErro();
+                    erro.RoeNumber = (rowIndex + 1).ToString();
+                    erro.ErrorField = emptyColumn.ColumnName;
+                    erro.ErrorCont = "妯℃澘琛ㄥご甯�*鐨勫垪涓瓨鍦ㄧ┖鍊�,绗�" + (rowIndex + 1).ToString() + "琛�,蹇呭~瀛楁锛�"+ emptyColumn.ColumnName +"涓虹┖";
+                    list.Add(erro);
+                }
+                var duplicateColumn = excelTable[i].Columns.Cast<DataColumn>().FirstOrDefault(
+                    column => column.ColumnName.Contains("鍞竴") && excelTable[i].AsEnumerable().GroupBy(row => row[column]).Any(group => group.Count() > 1));
+                if (duplicateColumn != null)
+                {
+                    int columnIndex = excelTable[i].Columns.IndexOf(duplicateColumn);
+                    var duplicateRows = excelTable[i].AsEnumerable()
+                        .Where(row => row[duplicateColumn] != DBNull.Value)
+                        .GroupBy(row => row[duplicateColumn])
+                        .Where(group => group.Count() > 1)
+                        .SelectMany(group => group.ToList())
+                        .ToList();
+                    foreach (var row in duplicateRows)
+                    {
+                        ExcelErro erro = new ExcelErro();
+                        erro.RoeNumber = excelTable[i].Rows.IndexOf(row).ToString();
+                        erro.ErrorField = emptyColumn.ColumnName;
+                        erro.ErrorCont = "妯℃澘琛ㄥご甯�(鍞竴)鐨勫垪涓瓨鍦ㄩ噸澶嶅��,绗�" + excelTable[i].Rows.IndexOf(row).ToString() + "琛�,蹇呭~瀛楁锛�" + duplicateColumn.ColumnName + "閲嶅";
+                        list.Add(erro);
+                        
+                    }
+                }
+            }
+            return list;
+        }
+        #endregion
     }
 }

--
Gitblit v1.9.3