From a5c8c30de8cd910e26f70a96b266298930a449b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=87=AF?= Date: Mon, 17 Feb 2025 17:02:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96excel=E5=8F=8Atxt=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InsturmentData/ExcelInstrumentData.cs | 75 ++++++++++++++----- .../InsturmentData/TXTInstrumentData.cs | 38 ++++++---- CnasSynchronusDAL/DAL/TXTDAL.cs | 4 +- 3 files changed, 82 insertions(+), 35 deletions(-) diff --git a/CnasSynchronusClient/InsturmentData/ExcelInstrumentData.cs b/CnasSynchronusClient/InsturmentData/ExcelInstrumentData.cs index 42ebaa5..c000b67 100644 --- a/CnasSynchronusClient/InsturmentData/ExcelInstrumentData.cs +++ b/CnasSynchronusClient/InsturmentData/ExcelInstrumentData.cs @@ -167,25 +167,32 @@ namespace CnasSynchronusClient DataRow drNew = dtCompine.NewRow(); foreach (DataColumn dc in dtCompine.Columns) { - if (dc.ColumnName.ToString().ToLower() == strDateColumn.ToLower()) + try { - DateTime dt = DateTime.Now; - if (DateTime.TryParse(dr[dc.ColumnName].ToString(), out dt)) + if (dc.ColumnName.ToString().ToLower() == strDateColumn.ToLower()) { - drNew[dc.ColumnName] = dr[dc.ColumnName].ToString(); + DateTime dt = DateTime.Now; + if (DateTime.TryParse(dr[dc.ColumnName].ToString(), out dt)) + { + drNew[dc.ColumnName] = dr[dc.ColumnName].ToString(); + } + else + { + DateTime dtTime = DateTime.ParseExact(dr[dc.ColumnName].ToString(), ExcelFormat.ExcelFileDateColumnFormat, new System.Globalization.CultureInfo("zh-CN", true)); + if (dtTime.ToString("HH:mm:ss") == "00:00:00") + drNew[dc.ColumnName] = dtTime.ToString("yyyy-MM-dd"); + else + drNew[dc.ColumnName] = dtTime.ToString("yyyy-MM-dd HH:mm:ss"); + } } else { - DateTime dtTime = DateTime.ParseExact(dr[dc.ColumnName].ToString(), ExcelFormat.ExcelFileDateColumnFormat, new System.Globalization.CultureInfo("zh-CN", true)); - if (dtTime.ToString("HH:mm:ss") == "00:00:00") - drNew[dc.ColumnName] = dtTime.ToString("yyyy-MM-dd"); - else - drNew[dc.ColumnName] = dtTime.ToString("yyyy-MM-dd HH:mm:ss"); + drNew[dc.ColumnName] = dr[dc.ColumnName]; } } - else + catch { - drNew[dc.ColumnName] = dr[dc.ColumnName]; + } } dtCompine.Rows.Add(drNew); @@ -204,17 +211,45 @@ namespace CnasSynchronusClient public override DataTable GetInstrumentDataStruct() { - return dataBaseService.GetInstrumentDataStruct( - new ExcelOpenParams + Dictionary excels = new Dictionary(); + + //读取数据 + foreach (var item in LstFileFullName) + { + try { - StrPath = StrLocalPath, - ExcelFileVersion = ExcelFormat.ExcelFileVersion, - autoSql = ExcelFormat.AutoSql - }, - new ConditionParams + Dictionary datas = dataBaseService.GetInstrumentData( + new ExcelOpenParams + { + StrPath = item, + ExcelFileVersion = ExcelFormat.ExcelFileVersion, + autoSql = ExcelFormat.AutoSql + }); + + foreach (var key in datas.Keys) + { + if (false == excels.ContainsKey(key)) + { + excels.Add(key, datas[key]); + } + else + { + foreach (DataRow dr in datas[key].Rows) + { + DataRow drNew = excels[key].NewRow(); + drNew.ItemArray = dr.ItemArray; + excels[key].Rows.Add(drNew); + } + } + } + } + catch { - TableName = strTableName - }); + + } + } + + return (0 < excels.Count) ? excels.First().Value : null; } } } diff --git a/CnasSynchronusClient/InsturmentData/TXTInstrumentData.cs b/CnasSynchronusClient/InsturmentData/TXTInstrumentData.cs index 97d8cc2..15d9084 100644 --- a/CnasSynchronusClient/InsturmentData/TXTInstrumentData.cs +++ b/CnasSynchronusClient/InsturmentData/TXTInstrumentData.cs @@ -166,33 +166,45 @@ namespace CnasSynchronusClient dtCompine = dataTables[0].Clone(); foreach (DataTable dt1 in dataTables) { - foreach (DataRow dr in dt1.Rows) + DataRow[] rows = dt1.Select(string.Format("{0}>'{1}'", strDateColumn, strDate)); + foreach (DataRow dr in rows) { DataRow drNew = dtCompine.NewRow(); foreach (DataColumn dc in dtCompine.Columns) { - if (dc.ColumnName.ToString().ToLower() == strDateColumn.ToLower()) + try { - DateTime dt = DateTime.Now; - if (DateTime.TryParse(dr[dc.ColumnName].ToString(), out dt)) + if (dc.ColumnName.ToString().ToLower() == strDateColumn.ToLower()) { - drNew[dc.ColumnName] = dr[dc.ColumnName].ToString(); + DateTime dt = DateTime.Now; + if (DateTime.TryParse(dr[dc.ColumnName].ToString(), out dt)) + { + drNew[dc.ColumnName] = dr[dc.ColumnName].ToString(); + } + else + { + DateTime dtTime = DateTime.ParseExact(dr[dc.ColumnName].ToString(), normalFileFormat.NormalFileDateColumnFormat, new System.Globalization.CultureInfo("zh-CN", true)); + if (dtTime.ToString("HH:mm:ss") == "00:00:00") + drNew[dc.ColumnName] = dtTime.ToString("yyyy-MM-dd"); + else + drNew[dc.ColumnName] = dtTime.ToString("yyyy-MM-dd HH:mm:ss"); + } } else { - DateTime dtTime = DateTime.ParseExact(dr[dc.ColumnName].ToString(), normalFileFormat.NormalFileDateColumnFormat, new System.Globalization.CultureInfo("zh-CN", true)); - if (dtTime.ToString("HH:mm:ss") == "00:00:00") - drNew[dc.ColumnName] = dtTime.ToString("yyyy-MM-dd"); - else - drNew[dc.ColumnName] = dtTime.ToString("yyyy-MM-dd HH:mm:ss"); + drNew[dc.ColumnName] = dr[dc.ColumnName]; } } - else + catch { - drNew[dc.ColumnName] = dr[dc.ColumnName]; + } } - dtCompine.Rows.Add(drNew); + + if (0 < $"{drNew[strDateColumn]}".CompareTo(strDate)) + { + dtCompine.Rows.Add(drNew); + } } } } diff --git a/CnasSynchronusDAL/DAL/TXTDAL.cs b/CnasSynchronusDAL/DAL/TXTDAL.cs index 6e76ec9..87eefe9 100644 --- a/CnasSynchronusDAL/DAL/TXTDAL.cs +++ b/CnasSynchronusDAL/DAL/TXTDAL.cs @@ -48,7 +48,7 @@ namespace CnasSynchronusDAL { DataTable dt = new DataTable(); try - { + { switch (t.TxtFileMode) { case "1": @@ -65,7 +65,7 @@ namespace CnasSynchronusDAL case "3": dt = ReadFileThirdth.ReadTableData(t.StrPath); break; - } + } } catch (Exception ex) {